[比赛]二手车交易价格预测-建模调参

本文介绍了在二手车交易价格预测比赛中,如何进行建模和调参。内容涉及交叉验证的概念及其在训练过程中的作用,通过比较不同模型的表现选择最优模型,并展示了使用10折交叉验证和绝对误差评估模型准确性。最后,作者提到了在随机森林、LGB和XGB等模型上的贪心调参方法。
摘要由CSDN通过智能技术生成

1.交叉验证

在这里插入图片描述
首先说明交叉验证的含义,在使用训练集对参数进行训练的时候,经常会发现人们通常会将一整个训练集分为三个部分(比如mnist手写训练集)。一般分为:训练集(train_set),评估集(valid_set),测试集(test_set)这三个部分。这其实是为了保证训练效果而特意设置的。其中测试集很好理解,其实就是完全不参与训练的数据,仅仅用来观测测试效果的数据。而训练集和评估集则牵涉到下面的知识了。
因为在实际的训练中,训练的结果对于训练集的拟合程度通常还是挺好的(初始条件敏感),但是对于训练集之外的数据的拟合程度通常就不那么令人满意了。因此我们通常并不会把所有的数据集都拿来训练,而是分出一部分来(这一部分不参加训练)对训练集生成的参数进行测试,相对客观的判断这些参数对训练集之外的数据的符合程度。这种思想就称为交叉验证(Cross Validation)。

时间关系这次代码就不放了,之后有时间补充。

2.选择模型

这里借鉴了大佬的一个方法,觉得很精妙,就是先看一下所有模型的效果,再选择最优的几个进行详细建模。

我一般习惯建立一个字典, 把这些模型放到字典里面,然后分别进行交叉验证,可视化结果来判断哪个模型针对当前问题表现比较好, 这样从这里面选出3-4个进行下面的环节,也就是模型的调参工作。这里给出一个我常用的一个评估算法模型的一个框架, 在这里,采用10交叉验证来分离数据, 通过绝对值误差来比较算法的准确度, 误差越小,准确度越高。

他的代码如下,

num_folds = 10
seed = 7

# 把所有模型写到一个字典中
models = {
   }
models['LR'] = LinearRegression()
models['Ridge'] = Ridge()
models['LASSO'] = Lasso()
models['DecisionTree'] = DecisionTreeRegressor()
models['RandomForest'] = RandomForestRegressor()
models['GradientBoosting'] = GradientBoostingRegressor()
models['XGB'] = XGBRegressor(n_estimators = 100, objective='reg:squarederror')
models['LGB'] = LGBMRegressor(n_estimators=100)
#models['SVR'] = SVR()   # 支持向量机运行不出来

results = []
for key in models:
    kfold = KFold(n_splits=
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值