二手汽车评估
数据集取自uci,对处理好的数据集分别进行逻辑回归、随机森林、knn、svm、GBDT分类建模,寻找较优的分类模型。
数据集特征描述:
buying | 买入价格(vhigh,high,med,low) |
---|---|
maint | 维护的价格(vhigh,high,med,low) |
doors | 门数(2,3,4,5更多) |
persons | 可乘人数(2,4,更多) |
lug_boot | 行李箱大小(small, med, big) |
safety | 安全性( low, med, high) |
assessment(目标变量) | 可接受性(unacc, acc, good, vgood) |
导入相关库:
从存储数据集的excel文件将数据集读入、输出数据集前五行。
数据集总共1728条观测、7个特征变量,没有缺失值、没有重复观测:
各特征变量数据类型:
需要对其编码处理才能投入建模。
编码:
除目标变量,其他变量经过编码都成int型,分割数据集,训练集:测试集=4:1
逻辑回归建模及对测试集进行分类并输出其准确率:
分类结果展示:
随机森林分类
训练集准确率、分类结果展示:
从输出结果看,构建的随机森林模型对测试集分类的准确率极高,达到98.55%,各类覆盖率及f1-score值也是相当高,观察真实类别与预测类别的热力图,对角线为预测准确,热力图对角线两侧预测错误的数目极少。
knn:
先使用交叉验证法探索最佳k值
绘制出不同k值下,训练集上的分类准曲率折线图,标出使准确率最高的k值,可知最佳k为6
根据最优k拟合knn模型并对测试集分类:
输出测试集分类准确率、覆盖率等信息:
svm:
自定义一些C值、gamma值,使用网格搜索法寻找较优的C值、gamma值,网格搜索使用2线程加快搜索速度:
返回最佳参数并拟合模型对测试集进行分类:
输出分类报告:
GBDT:
使用4线程的网格搜索法寻找较优的学习率以及分类器数量参数值:
通过搜索返回最优的参数值并利用其拟合GBDT模型:
对测试集进行分类,输出分类报告:
由结果可知构建的GBDT分类模型分类效果非常可观,准确率接近99%,各类别覆盖率也高达99%,将测试集真实类别与预测类别通过热力图可视化:
从热力图可以发现,含有346条观测的测试集上只有4条观测分类错误。
对比以上几类分类模型,GBDT分类效果最优,随机森林的分类效果也相当可观并且接近GBDT,从时间成本上看,GBDT参数调优花费了大量时间,而随机森林则耗费极短时间,因此,对于此二手汽车数据集分类,我个人会选择随机森林方法。
基于随机森林拟合的分类模型,各特征影响分类结果程度大小的可视化:
由图可得出结论:基于此数据集,购买者是否可接受一台二手车最大程度受此二手车的安全性能影响,符合人们驾车出门重视生命安全这一普遍观念,其次影响程度按可乘坐人数、买入的价钱、维护价格、行李箱大小、门数量递减。