python决策树预测学生成绩等级
极客范儿 人气:01.数据准备
1.1 引入头文件
写入头文件之前,需要下载安装所必须的依赖包。有的无法使用pip安装的内容,使用手动导入依赖的方式.
1.2 把student_1.csv数据拖入代码的同一文件夹下,同时读取文件中的数据
1.3 特征选取
课件中选取16个特征值,这里我采用了所有的特征值进行处理。
2.数据处理
2.1 对G1、G2、G3处理
对于离散值进行连续处理,同时设置lambda函数计算G1、G2、G3。
2.2 同样对Pedu参数进行连续值处理
2.3 由于数据集中每个参数差异比较大,所以这里把特征参数统一改为数字形式
2.4 对于当前处理过的数据集,划分训练集和测试集,并设置好随机种子等其他参数
3.训练得到的模型
3.1 决策树
3.1.1 开始对训练集中的数据进行训练
训练完的模型用来设置图像参数进行可视化展现。
3.1.2 利用已经训练好的模型来预测G3的值
对训练好的模型进行打分。
3.1.3 对模型中的参数进行优化,输出优化后最好的分数
3.1.4 优化后的模型来绘制决策树
输出优化后的分数。
3.2 集成学习
重新划分数据集用于训练模型。
3.2.1 Decision Tree
这里采用集成学习的多个决策树方式进行训练模型,以及模型的评估。
3.2.2 Bagging算法
这里采用集成学习的Bagging算法进行训练模型,对模型做出分数估测。
3.2.3 这里采用集成学习的Random Forest算法进行训练模型,对模型做出分数估测
3.2.4 这里采用集成学习的AdaBoost算法进行训练模型,对模型做出分数估测
3.2.5 这里采用集成学习的GBDT算法进行训练模型,对模型做出分数估测
4.评价结果:
模型 | 得分 |
---|---|
决策树(优化前) | 0.806 |
决策树(优化后) | 0.848 |
多个决策树 | 0.831 |
Bagging | 0.890 |
Random Forest | 0.882 |
AdaBoost | 0.806 |
GBDT | 0.865 |
5.结论分析
根据决策树和集成学习两大类的训练模型可以看出:两种方式实现各有千秋,同样由优缺点。
决策树在优化参数前后预测结果有了较明显的提升,并且有可视化的图片便于观察。集成学习中的Bagging算法对于预测结果是最好的,随之的得分情况也是最高。但是AdaBoost算法的表现就相对不够。
加载全部内容