Kaggle竞赛 —— 房价预测 (House Prices)

  • 时间:
  • 浏览:0
  • 来源:神彩大发11选5_彩神大发11选5官方

这里主要的工作是避免缺失值,首先来看各特性的缺失值数量:

按表中进行排序:

比赛页面:https://www.kaggle.com/c/house-prices-advanced-regression-techniques

接下来建立3个多调参的辦法 ,应时刻牢记评估指标是RMSE,这麼 来过多打印出的分数也却说RMSE。

XgBoost

这种 比赛总的情况表却说让人79个特性后后 根据那此预测房价 (SalePrice),这其中既有离散型前会 连续性特性,后后 居于几瓶的缺失值。不过好在比赛方提供了data_description.txt这种 文件,中间对各个特性的含义进行了描述,理解了其中内容后对于大每种缺失值就都能顺利插补了。

经过漫长的多轮测试,最后选则了这3个模型:

Stacking的原理见下图:

\[\sqrt{\frac{\sum_{i=1}^{N}(y_i-\hat{y_i})^2}{N}}\]

首先定义RMSE的交叉验证评估指标:

一般认为新房子比较贵,老房子比较便宜,从图上看大致也是这种 趋势,后后 建造年份 (YearBuilt) 这种 特性居于较多的取值 (从1872年到2010年),直接one hot encoding会造成过于稀疏的数据,后后 在特性工程中会将其进行数字化编码 (LabelEncoder) 。

下面的那此特性多为表示XX面积,比如 TotalBsmtSF 表示地下室的面积,后后 3个多房子这种这麼 地下室,则缺失值就用0来填补。

PCA是非常重要的一环,对于最终分数的提升很大。后后 我新增的那此特性前会 和原始特性层厚相关的,这后后 意味较强的多重共线性 (Multicollinearity) ,而PCA恰也能 去相关性。后后 这里使用PCA的目的前会 降维,这麼 来过多 n_components 用了和3个多多差这麼 来过多的维度,这是我多方实验的结果,即前面加XX特性,中间再降到XX维。

我总共大致排了20多个特性,具体见完整性代码。

后后 是像图中那样的两层stacking,则是第一层3个模型,第二层3个多元模型。第一层模型的作用是训练得到3个多\(\mathbb{R}^{n×m}\)的特性矩阵来用于输入第二层模型训练,其中n为训练数据行数,m为第一层模型个数。

下面给出的那此特性都也能 用 “None” 来填补:

最终加了那此特性,这其中也包括了这麼 来过多某些的各种尝试:

我目前的得分是0.11421

后后 原始特性较多,这里只选则建造年份 (YearBuilt) 来进行可视化:

结果如下, 总的来说树模型普遍不如线性模型,后后 还是后后 get_dummies后带来的数据稀疏性,不过那此模型前会 没调过参的。

将在下文中一一说明。

使用了13个算法和5折交叉验证来评估baseline效果:

根据权重对各个模型加权平均:

后后 人们都人们都仔细观察一下data_description中间的内容励志的话 ,会发现这麼 来过多缺失值前会 迹可循,比如上表第3个多PoolQC,表示的是游泳池的质量,其值缺失代表的是这种 房子这种这麼 游泳池,后后 也能 用 “None” 来填补。

LotFrontage这种 特性与LotAreaCut和Neighborhood有比较大的关系,这麼 来过多这里用这种 个多特性分组后的中位数进行插补。

MSSubClass这种 特性表示房子的类型,将数据按其分组:

对我的分数提升最大的主要有两块:

对于离散型特性,一般采用pandas中的get_dummies进行数值化,但在这种 比赛中光3个多多后后 还缺陷,这麼 来过多下面我采用的辦法 是按特性进行分组,计算该特性每个取值下SalePrice的平均数与生位数,再以此为基准排序赋值,下面举个例子:

然而若只用SVR和Kernel Ridge3个多模型,则效果更好,看来是某些好多个模型拖后腿了。。

分数为0.10768,比任何单个模型都好。

参加比赛首不能自己做的事是了解其评价指标,后后 一现在现在结束了了就搞错了到最后后后 就白费功夫了-。- House Prices的评估指标是均方根误差 (RMSE),这是常见的用于回归那此的现象的指标 :

举例Lasso的调参:

LinearRegression

将原始特性进行组合通常能产生意想也能了的效果,然而这种 数据集中原始特性有这麼 来过多,不后后 所有都一一组合,这麼 来过多这里先用Lasso进行特性筛选,选出较重要的某些特性进行组合。

最后的结果提交,我用了Lasso,Ridge,SVR,Kernel Ridge,ElasticNet,BayesianRidge作为第一层模型,Kernel Ridge作为第二层模型。

最现在现在结束了了我用get_oof的辦法 将第一层模型的特性矩阵提取出来,再和原始特性进行拼接,最后的cv分数下降到了0.1018,然而在leaderboard上的分数却变差了,看来这种 辦法 会意味过拟合。

猜你喜欢

【急】女生学考古系有前途吗?就业难吗?需要克服的问题有什么?

不一定的,冷门只是 是因为用世俗的眼光看,社会尚未过度关注。事实上,越是热门的,越是千军万马过独木桥,越是冷门的,越没法学校跟风竞争,竞争的毕业生越少,越容易好在行业内就业。

2020-02-28

盗墓笔记里闷油瓶的来历是什么

苗族首领为哪几种要刺瞎陈皮阿四的眼睛?是是不是他看到哪几种被委托人不该看的东西?是不以后那枚蛇眉铜鱼?还有,朋友儿否其他同学太好云彩和闷油瓶前一天就认识和熟悉?阴山古楼这一

2020-02-28

机器学习实战篇——用卷积神经网络算法在Kaggle上跑个分

这是本问最难的每项,作用实际上要是对数据进行避免,转加带TensorFlow读得懂的数据。从AI学习笔记——卷积神经网络(CNN)的文章中大伙儿儿知道,一张图片有有一几个 维

2020-02-28

文艺复兴时期中国是什么朝代

展开完整性明朝(1368年―1644年)是中国历史上最后另2个 由汉族建立的大一统王朝,共传十六帝,享国二百七十六年。文艺复兴(Renaissance)是指趋于稳定在14

2020-02-27

德国文艺复兴时期的雕塑是怎样的?

展开完正蒂尔曼·里门施奈德(TirmanRiemenschneider,约1455—1531)是德国文艺复兴时期成就最卓著的雕塑家,为德国留下了一批雕刻精品,他的风格仍然属于晚

2020-02-27