Datawhale 零基础入门数据挖掘-二手车价格预测

Datawhale 零基础入门数据挖掘-Task1 赛题理解

今天开始参加天池和datawhale联合举办的二手车价格预测比赛,是对新手十分的友好的零基础数据挖掘比赛。接下来我们将这个比赛分为多个task,其中task1是赛题整体的理解把握,task2是EDA(也就是数据挖掘分析),task3是特征工程,task4是数据建模,task5是模型融合。
这也是我第一次参加数据挖掘类赛事,不求完全精深,但是求思维的广度得到扩展。就像“西瓜书”的作者所说,先对所学有一个总览,再来追求深度。这也和我们大脑的学习习惯有关,我们习惯简单且快速的学习,时间拖长了会让人有倦怠感,而学深便免不了会在一点处停驻很长时间,这也会让我们学习的愉悦感有所下降。话不多说,我们开始看赛题吧!

赛题理解

赛题如下:
地址:https://tianchi.aliyun.com/competition/entrance/231784/introduction?spm=5176.12281957.1004.1.38b02448ausjSX

赛题的理解可以粗略地分为以下部分:
1.赛题要求(和一些附加的条件)
1.1赛题预测目标
1.2赛题评价指标
2.粗览数据
3.赛题分析

1.赛题要求

1.1赛题预测目标

赛题以预测二手车的交易价格为任务。该数据来自某交易平台的二手车交易记录,总数据量超过40w,包含31列变量信息,其中15列为匿名变量。为了保证比赛的公平性,将会从中抽取15万条作为训练集,5万条作为测试集A,5万条作为测试集B,同时会对name、model、brand和regionCode等信息进行脱敏。

1.2赛题评价指标

本赛题的评价标准为MAE(Mean Absolute Error):

M A E = ∑ i = 1 n ∣ y i − y ^ i ∣ n MAE=\frac{\sum_{i=1}^{n}\left|y_{i}-\hat{y}{i}\right|}{n} MAE=ni=1nyiy^i 其中 y i y_{i} yi代表第 i i i个样本的真实值,其中 y ^ i \hat{y}_{i} y^i代表第 i i i个样本的预测值。

评估指标说明:
评估指标是对模型效果好坏与否的一个规范评分标准。(当然,评分标准并不唯一)

常用的评估指标:
分类算法:accuracy, [Precision,Recall,F-score,Pr曲线],ROC-AUC曲线
其中,accuracy可以表示预测出的正确的正样本占所有预测为正样本的比率,recall是预测出的正确的正样本占所有真正真样本的比率。因此,前者也叫查准率,后者叫查全率,是为了正样本查准或者全而统计的。
其中,f-score表示查准率和查全率的调和平均数,调和平均数更重视较小值,结果会更偏向于较小值,而fβ是加权调和平均数,当我们觉得查重率或者查准率更重要时,可以适当把β系数进行调整。

回归算法:平均绝对误差(Mean Absolute Error,MAE),均方误差(Mean Squared Error,MSE),平均绝对百分误差(Mean Absolute Percentage Error,MAPE),均方根误差(Root Mean Squared Error), R2(R-Square)

R2(R-Square)的公式为
( y i y_{i} yi表示真实值, y ^ i \hat{y}_{i} y^i表示预测值, y ‾ i \overline{y}_{i} yi表示样本均值。得分越高拟合效果越好。)
残差平方和 S S r e s = ∑ ( y i − y ^ i ) 2 SS_{res}=\sum\left(y_{i}-\hat{y}_{i}\right)^{2} SSres=(yiy^i)2 总平均值: S S t o t = ∑ ( y i − y ‾ i ) 2 SS{tot}=\sum\left(y_{i}-\overline{y}_{i}\right)^{2} SStot=(yiyi)2
得到 R 2 R^2 R2表达式为: R 2 = 1 − S S r e s S S t o t = 1 − ∑ ( y i − y ^ i ) 2 ∑ ( y i − y ‾ ) 2 R^{2}=1-\frac{SS_{res}}{SS_{tot}}=1-\frac{\sum\left(y_{i}-\hat{y}_{i}\right)^{2}}{\sum\left(y_{i}-\overline{y}\right)^{2}} R2=1SStotSSres=1(yiy)2(yiy^i)2 R 2 R^2 R2用于度量因变量的变异中可由自变量解释部分所占的比例,取值范围是 0~1, R 2 R^2 R2越接近1,表明回归平方和占总平方和的比例越大,回归线与各观测点越接近,用x的变化来解释y值变化的部分就越多,回归的拟合程度就越好。所以 R 2 R^2 R2也称为拟合优度(Goodness of Fit)的统计量。

经常说模型的方差,那模型的方差指的是什么呢?
首先,我们以训练数据为例,假设一个模型壳子(例如:线性模型),我浇灌一套数据进去,得出模型为 y = 2 x + 3 y=2x+3 y=2x+3,浇灌另一套数据进去,得出模型为 y = 2 x 2 + 3 x + 2 y=2x^{2}+3x+2 y=2x2+3x+2。这时我们说同一个模型(指的是某一类模型的一整个假设空间)在不同的数据下会生成不同的模型(此时指的是这一类模型的假设空间中的某一个模型),而这两个模型对训练它的数据的预测值与模型在叫做模型的方差,也叫模型的方差。
由上,模型的方差本质上就是这一类模型在不同数据集下训练并预测数据的方差的期望而每一个方差表示这一确定地由某个数据集训练出来的模型中预测值的离散程度,这些方差越集中,表示模型对不同数据集的拟合能力差异越小。

2.粗览数据

name - 汽车编码
regDate - 汽车注册时间
model - 车型编码
brand - 品牌
bodyType - 车身类型
fuelType - 燃油类型
gearbox - 变速箱
power - 汽车功率
kilometer - 汽车行驶公里
notRepairedDamage - 汽车有尚未修复的损坏
regionCode - 看车地区编码
seller - 销售方
offerType - 报价类型
creatDate - 广告发布时间
price - 汽车价格
v_0’, ‘v_1’, ‘v_2’, ‘v_3’, ‘v_4’, ‘v_5’, ‘v_6’, ‘v_7’, ‘v_8’, ‘v_9’, ‘v_10’, ‘v_11’, ‘v_12’, ‘v_13’,‘v_14’(根据汽车的评论、标签等大量信息得到的embedding向量)【人工构造 匿名特征】

3.赛题分析

  • 赛题需要什么背后的业务逻辑?
    • 赛题数据
      • 数据有什么关联,什么特征更有效?
      • 有其他的外部数据库运用吗?
  • 技术层面
    • 赛题数据
      • 用什么EDA、特征工程方法处理数据能减少算法损失(能挖掘出数据真实的关联)
    • 赛题算法
      • 哪些算法、融合方式可以选择

代码示例

//read_csv中的sep可以选择数据是以什么分割的,比如逗号,tab或者空格
Train_data = pd.read_csv(path+'train.csv', sep=' ')
Test_data = pd.read_csv(path+'testA.csv', sep=' ')
print('Train data shape:',Train_data.shape)
print('TestA data shape:',Test_data.shape)
## Precision,Recall,F1-score
// metrics库中有很多评价指标函数
from sklearn import metrics
y_pred = [0, 1, 0, 0]
y_true = [0, 1, 0, 1]
// pricision_score、recall_score、f1_score计算测试值和真实值之间的精准度、召回率、调和平均误差
print('Precision',metrics.precision_score(y_true, y_pred))
print('Recall',metrics.recall_score(y_true, y_pred))
print('F1-score:',metrics.f1_score(y_true, y_pred))
//auc是均衡测量精准度和召回率的的方法
print('AUC socre:',roc_auc_score(y_true, y_scores))
//MSE
print('MSE:',metrics.mean_squared_error(y_true, y_pred))
//RMSE
print('RMSE:',np.sqrt(metrics.mean_squared_error(y_true, y_pred)))
//MAE
print('MAE:',metrics.mean_absolute_error(y_true, y_pred))
//MAPE
print('MAPE:',mape(y_true, y_pred))
//R2-score
print('R2-score:',r2_score(y_true, y_pred))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值