一.赛题理解
1.赛题分析
赛题为二手车交易价格预测,附上链接
点击这里哦
主要任务是要求我们根据所给数据,进行特征构建后预测二手车交易价格,所以本质上是一个回归问题。
1.1数据形式
总数据量超过40w,包含31列变量信息,其中15列为匿名变量(匿名向量,就是未告知数据列所属的性质的特征列向量)。为了保证比赛的公平性,将会从中抽取15万条作
为训练集,5万条作为测试集A,5万条作为测试集B,同时会对name、model、brand和regionCode等信息进行脱
敏。
1.2预测指标
本赛题的评价标准为MAE(Mean Absolute Error):
同时课堂也总结了一些常见问题的评价指标:
分类算法常见的评估指标如下:
(1)对于二类分类器/分类算法,评价指标主要有accuracy(accuracy=(TP+TN)/(TP+FP+TN+FN)), [Precision,Recall,F-score,Pr曲线],ROC-AUC
曲线。
precision、recall、PR curve、F1
查准率Precision和查全率Recall是一对矛盾的度量,一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。例如,我们只要将所有样本都判断为正例,则查全率即为1,但是查准率却很低,反之亦然。
P-R curve(如上图所示)可以直观的看出模型在样本上的查全率与查准率之间的关系。在比较两个分类模型的优劣时,如果一个模型C的P-R curve被另一个模型A完全包围,则我们认为模型A的性能要由于模型C。当两个模型的P-R curve曲线相交时,我们可以通过判断曲线下面积或者precision=recall时的取值大小来判断模型的优劣,取值大的模型较优。
当然,在实际应用时,用来判断模型好坏的指标并不是上述所说的曲线下面积或者
p
r
e
c
i
s
i
o
n
=
r
e
c
a
l
l
precision=recall
precision=recall时的取值,而是
F
1
,
F
β
F_1,F_\beta
F1,Fβ。
F
1
F_1
F1是基于查准率与查全率的调和平均:
F
β
F_\beta
Fβ是基于查准率与查全率的加权平均:
ROC与AUC
ROC(Receiver Operating Characteristic)受试者工作特征曲线:与P-R curve一样,我们根据模型的分类结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出假正例率(FPR)与真正例率(TPR),分别以他们作为横纵坐标进行作图。
ROC曲线如下图所示:
IOU
IOU(intersection over unions)交并比是一种测量在特定数据集中检测相应物体准确度的一个标准。我们可以在很多物体检测挑战中,例如PASCAL VOC challenge中看多很多使用该标准的做法。IOU是衡量检测结果的一个指标,与具体的检测方法无关,如传统的HOG+SVM以及基于CNN的目标检测算法中都有该指标的应用。
为了计算IOU,我们需要两个数据:
一是人为在图片中标注出的目标框(ground-truth bounding boxes)
二是模型预测出的矩形框
此外,还有一个不常出现的mAP:
可以参考该博客:
点击此链接哦
(2)对于多类分类器/分类算法,评价指标主要有accuracy, [宏平均和微平均,F-score]。
宏平均和微平均参考此博客
(3)对于回归预测类常见的评估指标如下:
平均绝对误差(Mean Absolute Error,MAE),均方误差(Mean Squared Error,MSE),平均绝对百分
误差(Mean Absolute Percentage Error,MAPE),均方根误差(Root Mean Squared Error), R2(RSquare)
平均绝对误差(Mean Absolute Error,MAE):平均绝对误差,其能更好地反映预测值与真实值误差的实际情况,其计算公式如下:
(注意:主要原因是不会有幂次运算的影响)
均方误差(Mean Squared Error,MSE):其计算公式为:
R2(R-Square)的公式为: 残差平方和:
总平均值:
最后
(注意:
R
2
R^2
R2用于度量因变量的变异中可由自变量解释部分所占的比例,取值范围是 0~1,
R
2
R^2
R2 越接近1,表明回归平方和占
总平方和的比例越大,回归线与各观测点越接近,用x的变化来解释y值变化的部分就越多,回归的拟合程度就越
好。所以
R
2
R^2
R2也称为拟合优度(Goodness of Fit)的统计量。)
1.3 赛题分析
1.2.4. 分析赛题
- 此题为传统的数据挖掘问题,通过数据科学以及机器学习深度学习的办法来进行建模得到结果。
- 此题是一个典型的回归问题。
- 主要应用xgb、lgb、catboost,以及pandas、numpy、matplotlib、seabon、sklearn、keras等等数据挖掘常
用库或者框架来进行数据挖掘任务。 - 通过EDA来挖掘数据的联系和自我熟悉数据
注意:几个算法的相关原理会之后的课程中学习,在此先不做说明。
2.代码:
进入代码运行
3 总结