[Kaggle竞赛] Ames房价回归预测Part2:多模型Stacking进行房价预测

Kaggle入门竞赛——房价预测问题:House Prices: Advanced Regression Techniques

Part1详见:[Kaggle竞赛] Part1:特征工程+利用XGBoost进行房价预测
内含数据初步分析、特征工程处理以及简单地用XGBoost实现预测的方法。本篇的模型stacking基于Part1所进行的分析与处理之上,如对整个赛题感兴趣的话请在阅读Part1之后再阅读本篇。

ydata_train = df_train.SalePrice.values
xdata_train = df1_train.drop("SalePrice",axis=1)
df1_test.drop("SalePrice",axis=1,inplace=True)
#数据集备份
xtrain = xdata_train
xtest = df1_test

Stacking

接下来会用到的包:

from sklearn.linear_model import ElasticNet, Lasso,  BayesianRidge, LassoLarsIC
from sklearn.ensemble import RandomForestRegressor,  GradientBoostingRegressor
from sklearn.kernel_ridge import KernelRidge
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import RobustScaler
from sklearn.base import BaseEstimator, TransformerMixin, RegressorMixin, clone
from sklearn.model_selection import KFold, cross_val_score, train_test_split
from sklearn.metrics import mean_squared_error
import xgboost as xgb
import lightgbm as lgb
#写个5折交叉验证用函数
n_folds = 5

def rmsle_cv(model):
    kf = KFold(n_folds, shuffle=True, random_state=42).get_n_splits(df1_train.values)#单独做fold划分训练集
    rmse= np.sqrt(-cross_val_score(model, df1_train.values, ydata_train, scoring="neg_mean_squared_error", cv = kf))#房价预测惯例取均方根误差
    return(rmse)

构建不同的基学习器,这里我们使用了LASSO Regression、Elastic Net Regression、Kernel Ridge Regression、Gradient Boosting Regression、XGBoost、LightGBM 共6个基学习器,其参数可先按经验初始值设定后GridSearch调参寻优(速度过慢),也可以考虑使用贝叶斯调参寻优,本文使用贝叶斯优化。

#    
lasso = make_pipeline(RobustScaler(), Lasso(alpha =0.0005, random_state=1))
ENet = make_pipeline(RobustScaler(), ElasticNet(alpha=0.0005, l1_ratio=.9, random_state=3))
KRR = KernelRidge(alpha=0.6, kernel='polynomial', degree=2, coef0=2.5
  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值