- 学习框架:零基础入门数据挖掘-菜鸟的学习路径
- 这是一个菜鸟的数据挖掘实战记录,目的是快速入门数据挖掘,少走弯路。内容上,由于自己的确是菜得不行,所以在跟随入门级比赛:二手车价格预测进行实战中,会重点叙述学习方法和思路,并补充其他学习资料。
- 内容预计分为六篇正文,本篇是第一篇正文,介绍赛题与具体学习方法。
目录
1. 学习重点
- 了解一个数据挖掘项目的基本流程
- 赛题理解的目的与方法
- 各评价指标的适用范围
2.赛题理解
2.1赛题概况
要求通过给定的二手车数据集,预测二手车交易价格。
数据集来自某交易平台的二手车交易记录,总数据量超过40w,包含31列变量信息,其中15列为匿名变量。为了保证比赛的公平性,将会从中抽取15万条作为训练集,5万条作为测试集A,5万条作为测试集B,同时会对name、model、brand和regionCode等信息进行脱敏。
2.2数据概况
了解数据的性质有利于对数据的理解和后续分析。这一步看数据有哪些、表示什么意思,由于包括类型数据在内的所有数据都脱敏成了数字形式(即label encoding),还需要了解数字含义。
Tip:匿名特征,就是未告知数据列所属的性质的特征列。
数据预览
比赛一般提供两个数据集:
- used_car_train.csv: 这是训练集部分,包含变量信息与价格。
- used_car_test.csv: 这是测试集部分,与训练集类似,但没有价格信息(需要建模预测),一般样本数较少。
我们看一下训练集(train)的数据:
Field | Description |
---|---|
SaleID | 汽车ID,唯一编码 |
name | 汽车交易名称,脱敏 |
regDate | 汽车注册日期,如20160101 |
model | 车型编码,已脱敏 |
brand | 汽车品牌,已脱敏 |
bodyType | 车型:豪华轿车:0,微型车:1,厢型车:2,大巴车:3,敞篷车:4,双门汽车:5,商务车:6,搅拌车:7 |
fuelType | 燃油类型:汽油:0,柴油:1,液化石油气:2,天然气:3,混合动力:4,其他:5,电动:6 |
gearbox | 变速箱:手动:0,自动:1 |
power | 发动机功率:范围[0,600] |
kilometer | 汽车已行驶历程:单位万km |
notRepairedDamage | 汽车有尚未修复的损坏:是:0,否:1 |
regionCode | 所在地区编码,已脱敏 |
seller | 销售方:个体:0,非个体:1 |
offerType | 报价类型:提供:0,请求:1 |
creatDate | 汽车上市时间,开始售卖时间 |
v0~v14共15个匿名变量 | (根据汽车的评论、标签等大量信息得到的embedding向量)【人工构造 匿名特征】 |
price | 汽车交易价格(预测目标) |
为什么要预览数据
- 准备数据清洗:通过了解数据格式,可初步判断哪些信息对预测价格无用,在数据清洗时直接删掉(比如SaleID,name)
- 区分数据类型:至少将数值型和类别型区分开(数值型:发动机功率、汽车行驶里程…,类别型:车型、燃油类型、变速箱…),区分是因为后续对不同类型数据的处理方式不同。比如:类别型数据可能需要独热(One-Hot-Encoding,介绍点此),对数值型和类别型缺失值的处理也不同。
在这一步,我们看到了30个数据字段,15个匿名的不知道含义就先放着,先从有含义的15个中排除SaleID和name这两个无用字段,并区分数值型和类别型字段。
2.3 赛题分析
赛题分类
由目前给出的信息,得知比赛任务是根据现有的训练集,建立一个模型,对测试集中每一个样本的价格进行预测。此处有个重点需要注意:一般数据挖掘类型分为分类和回归两种,这里要预测的价格是连续型的,所以属于回归任务,预测时使用回归预测模型(Regressor系列)进行预测,评价时用回归任务评估指标。
数据挖掘的基本过程——“捏泥人”
大概的处理框架为:
- 导入数据集,观察数据特征,为数据清洗做准备
- 对数据进一步挖掘
- 建立回归分析模型
- 按照一定标准对模型进行评价选择
- 预测结果
这样一个过程是数据挖掘的基本过程,可以理解为“捏泥人”,数据就是原材料泥土,预测目标就是捏个好泥人。首先要将“原材料”中的杂质去掉,即去除数据中无益于预测价格的部分;然后通过揉搓使泥土质地更适合塑型,就是进一步数据挖掘;对泥人进行造型就相当于数据建模;最后要评价这个泥人捏得怎么样,你可以说它羊毛上猥琐得可爱,或者动作上非常传神,不同的评判标准下对泥人的评级不同,即用评价指标对模型进行评价。
3. 评价指标
3.1 评价指标介绍
了解了数据和大概步骤,在开始干活前,当然还要搞明白怎么样才算是把活干好了,即评价指标。
赛题已经给出了一个评价指标:MAE(Mean Absolute Error)
MAE值越小说明模型预测越准确。
3.2 其他评价指标
除了赛题中给出的这个指标外,我们也可以大概了解一下其他用于分类或者回归的评价指标:
- 回归预测的常见评估指标 :平均绝对误差(Mean Absolute Error, MAE)、均方误差(Mean Squared Error, MSE), 平均绝对百分误差(Mean Absolute Percentage Error, MAPE), 均方根误差(Root Mean Squared Error), R2(R-Square),具体算法参见这里
这些指标可以直接从sklearn库中调取:
from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error
- 分类预测的常见评估指标:accuracy score, 精准率,召回率, F1值, ROC-AUC曲线等,混淆矩阵等,具体区别参见此处,之后会单出一篇对各类指标适用范围对比总结。
同样可以直接从sklearn中调包:
from sklearn.metrics import accuracy_scorec, precision_score, recall_score, f1_score, auc, confusion_matrix
4. 总结
本篇相当于热身环节,观察了下数据情况,在2.3中用“捏泥人”比喻数据挖掘的步骤进行讲解,并初步介绍了几大衡量指标,想要进一步探索数据的大佬们请参见Overfitting is watching you小队赛题理解。
准备好后,我们会按数据探索性分析、数据清洗、特征工程、建模调参和模型融合五个步骤开启正式旅程。
下一篇讲述数据探索性分析,以该比赛为例说明回归型数据处理的重点和相应手法。又是新的挑战啦,各位再见!
5. 参考资料
Overfitting is watching you小队赛题理解
什么是one hot编码?为什么要使用one hot编码?
Datawhale 零基础入门数据挖掘-Task1 赛题理解