《动手学深度学习》学习笔记------3.16. 实战Kaggle比赛:房价预测(一)

《动手学深度学习》学习笔记------3.16. 实战Kaggle比赛:房价预测

预处理

有的特征是 连续数值,例如:MSSubClass;有的特征是离散数值,例如:SaleType。
对上述两类特征分别使用如下方法进行预处理:
(1)连续数值特征的预处理
标准化(standardization):将该特征的每个值先减去均值μ,再除以σ标准差。对于缺失的特征值,替换成该特征的均值。
(2)离散数值特征的预处理
将离散数值转成指示特征。
假设特征MSZoning里面有几个不同的离散值FV、RH、RL、RM等,那么这一步转换将去掉MSZoning特征,并新加几个特征MSZoning_FV、MSZoning_RH、MSZoning_RL和MSZoning_RM等,其值为0或1。
如果一个样本原来在MSZoning里的值为RL,那么转换之后MSZoning_RL=1且MSZoning_RM=0。
对于ID = 112的样本,MSZoning属性的取值为 RL,转换之后,MSZoning_RL = 1,并且其他相关属性取值 为0。
对于ID = 115的样本,MSZoning属性的取值为 FV,转换之后,MSZoning_FV = 1,并且其他相关属性取值 为0。

《动手学深度学习》学习笔记------3.16. 实战Kaggle比赛:房价预测(一)
《动手学深度学习》学习笔记------3.16. 实战Kaggle比赛:房价预测(一)

对数均方根误差

《动手学深度学习》学习笔记------3.16. 实战Kaggle比赛:房价预测(一)

另一种常用的评价指标是 均方根误差
《动手学深度学习》学习笔记------3.16. 实战Kaggle比赛:房价预测(一)
两者之间的关系:
对数均方根误差 相当于 先把数据求log,然后再求 均方根误差。

假设我们设计了两种算法,它们的预测结果如下:

真值 算法1的预测值 算法2的预测值
样本1 500 501 508
样本2 2 9 3

如何评价 算法1和算法2哪个更好?

评价准则 算法1的误差 算法2的误差 哪个算法好?
均方根误差 5 5.7 算法1更好
对数均方根误差 1.06 0.29 算法2更好

可以看到,与 均方根误差相比,采用对数均方根误差
(1)当y较大时,可以容忍更大的误差。
(2)当y较小时,期望得到更精确的预测。