附上题目链接:https://www.kaggle.com/c/house-prices-advanced-regression-techniques/leaderboard#score
最近在做机器学习方面的项目,因此把kaggle上的一些项目拿来练手。预测房价是我做的第一个题目,在这里分享一下做题过程中遇到的问题。
本次采用没有正则化项的正规方程法来拟合模型。
1. 数据处理
题目素材中给出了大量用文本来描述的特征,因此要转换成数字量。这其中分为两类,
(一) 例如“poolQc" ,"roofstyle"这样的类的特征标可以用来形容“质量好坏”或是“好的程度”,因此可以把这样的文本类型根据其所表达的“程度”映射成数字。用的是pandas包里的map函数,其本质是自动将选定的columns中的值转换成参数字典中的映射值。
housing['LotShape'] = housing['LotShape'].map({'Reg': 0, 'IR1': 1, 'IR2': 2, 'IR3': 3})
(二) 另外一部分类的特征标不能反映程度的好坏,这样的columns我们可以采用独热编码(或者叫转化成哑变量),但是非常坑的是kaggle网站把test和train分成两个文件给出,而这两个文件的中有好几个类的并不包括所有的特征标,这就不能简单的对train或者test进行独热编码,需要在处理的时候把所有的特征标可能性都列出。 详细做法可以参照 : https://blog.csdn.net/qq_43404784/article/details/89486442
(三) train文件和test文件的特征处理方式要相同
2. 模型改进
我的做法进行预测后提交到kaggle后的分数是0.191多,看了下高分的做法,发现不仅可以使用原材料中给出的特征,还可以根据实际经验将特征进行组合或事丢弃,这方面深挖了也会涉及很多东西,以后有时间接着更新