本文是《从零开始学python数据分析与挖掘》的第二章学习心得,相关数据可以从对应的官方数据库获取。
提供给你的只有一份收入相关的xlsx,你需要通过里面的数据进行年收入的预测。
首先读取数据,查看是否存在缺失值。对于存在缺失值的,一般有如下方法进行处理:
删除法 :若缺失比例非常小删除法较为合理。
替换法 :若缺失为离散型考虑用众数替换;数值型则考虑用均值或中位数替换缺失值。
插补法 :基于未缺失的变量预测缺失变量的值,如常见的回归插补法、多重插补法、拉格朗日插补法等。
此处用众数进行替换。
接下来可以对处理完缺失值的数据进行查看。因为看数据没有看图更直观,所以我们通过绘图模块将数据进行可视化,然后输出对应图形。
下面分别是数据的分布图和对比图。
1.重编码
对于离散型变量,其中的字符型变量是不能直接用来建模的,因此需要对这些变量进行重编码。重编码的方法有很多种,比如:将字符型的值转换为整数型的值、哑变量处理(0-1变量)、One-Hot热编码等。本文采用“字符转数值”方法。
2.拆分数据集
数据拆分,将数据拆分为训练集和测试集,一般比例为75%和25%。
3.默认参数的模型构建
本文使用两种模型,K近邻和GBDT。在真实案例中也是如此,使用多种分类器进行建模,通过比较最终选择一个更好拟合数据的模型。
4.进行网格搜索
对两种模型分别进行网格搜索
5.模型预测与评估
验证模型的好坏有多种方法。
对预测的连续变量来说,常用的衡量指标有均方误差(MSE)和均方根误差(RMSE);
对预测的分类变量来说,常用的衡量指标有混淆矩阵中的准确率、ROC曲线下的面积AUC、K-S值等。
本文用了混淆矩阵比较得分和AUC两种方法。
可以看到,通过混淆矩阵的方法,K近邻模型在测试集上的准确率低于GBDT,通过AUC的方法也可以比较出来。
【如果有同学有这种疑问,K近邻在训练集上的准确率是高于GBDT的,可以去看下我的另一篇博客,https://blog.csdn.net/qq_43504141/article/details/126877344,里面有详细的解答】