机器学习之随机森林算法在泰坦尼克号数据中分类实践(实验)
随机森林算法在泰坦尼克号数据中分类实践
1.实验目的
1)强化对分类问题的理解
2)学习分类算法的建模方法
2.实验要求
1)数据样本的写入及对应数据信息的探索
2)数据预处理(比如:填补缺失值)
3)分类算法建模:(实验步骤中至少包含以下两个部分,可更丰富详细)
- 与决策树算法进行交叉验证对比分析(画出准确率对比折线图,并进行描述性语言分析)
通过画学习曲线确定随机森林中n-esmator的最佳值
3.实验环境 基于windows平台完成,Python管理环境采用Anaconda。 |
4.实验方法和步骤(含设计) 1、获取数据并查看数据结构,导入相关的库,并利用read.csv从本地读取csv格式数据集 查看数据数据集的具体信息 从图中可以看出整个数据集有891个标本,11列,其中第0列是标签,第1-10列是特征,共计10个特征。其中特征列Age。Canbin,Embarked的空值不是889个,说明这三列存在缺失值。特征列Name,Sex,Cabin,Embarked的数据类型为object,不能直接作为特征是数据带入模型进行处理,需要进行特征编码。
2、数据的预处理 1、通过理解业务特征之间的关系,先删除跟标签完全无关的列 此时,数据集的特征列为7个,还有特征列Age, Embarked存在缺失值,特征列Sex, Embarked数据类型需要进行转换。
2.由于Age特征很重要,缺少的20%左右,可采用均值进行填补;特征Embarked只缺少2个缺失值,缺失值个数较少,可直接删除。
此时,整个数据集样本数从891个减少为889个,不存在缺失值,可进行下一步数据转换。
3.将分类变量转换为数值型变量, astype能够将一个 pandas对象转换为某种类型,和pplylint()不同,astype可以将文本类转换为数字,用这个方式可以很便捷地将二分类特征转换为0~1。
3、 划分数据集 1.按列名提取标签和特征矩阵,分别将特征矩阵命名为x,标签命名为y 2.按3: 7的比例将数据集划分为训练集和测试集,划分完成之后的训练集有622个样本 3.从上图可看出划分好之后的数据索引并没有按顺序排列,因此对数据索引进行修正 622 rows x 1 columns 修正好之后的数据索引则是按顺序从0-621,共622个训练样本。
4、建立初始模型:分别建立决策树和随机森林的两个初始模型,将模型的准确率分别命名为:Score_c0,Score_r0
初始状态下,随机森林算法的准确率比决策树高一点点。
5、分别对决策树算法,随机森林算法模型进行调参 1.调整决策树算法的max_depth 参数,画出对应学习曲线 考虑模型的复杂度和模型效果,从图中可以看到,当max_depth=3时,模型的准确率最高。
2.调整随机森林算法的n_ estimators 参数,画出对应学习曲线 在确定好的范围内,进一步细化学习曲线 通过学习曲线调参方法,随机森林 n_estimators=144 时,准确率最高 5.实验结果 通过以上模型调参结果,总结出模型的最佳参数如下,通过交叉验证得出模型最终的结果: 从实验结构可知,随机森林算法模型准确率最高
|
- 点赞
- 收藏
- 关注作者
评论(0)