数据挖掘-二手车价格预测 Task04:建模调参

模型调参部分

利用xgb进行五折交叉验证查看模型的参数效果
## xgb-Model
xgr = xgb.XGBRegressor(n_estimators=120, learning_rate=0.1, gamma=0, subsample=0.8,\
        colsample_bytree=0.9, max_depth=7) #,objective ='reg:squarederror'

scores_train = []
scores = []

## 5折交叉验证方式
sk=StratifiedKFold(n_splits=5,shuffle=True,random_state=0)
for train_ind,val_ind in sk.split(X_data,Y_data):
    
    train_x=X_data.iloc[train_ind].values
    train_y=Y_data.iloc[train_ind]
    val_x=X_data.iloc[val_ind].values
    val_y=Y_data.iloc[val_ind]
    
    xgr.fit(train_x,train_y)
    pred_train_xgb=xgr.predict(train_x)
    pred_xgb=xgr.predict(val_x)
    
    score_train = mean_absolute_error(train_y,pred_train_xgb)
    scores_train.append(score_train)
    score = mean_absolute_error(val_y,pred_xgb)
    scores.append(score)

print('Train mae:',np.mean(score_train))
print('Val mae',np.mean(scores))

定义xgb和lgb模型函数
def build_model_xgb(x_train,y_train):
    model = xgb.XGBRegressor(n_estimators=150, learning_rate=0.1, gamma=0, subsample=0.8,\
        colsample_bytree=0.9, max_depth=7) #, objective ='reg:squarederror'
    model.fit(x_train, y_train)
    return model

def build_model_lgb(x_train,y_train):
    estimator = lgb.LGBMRegressor(num_leaves=127,n_estimators = 150)
    param_grid = {
        'learning_rate': [0.01, 0.05, 0.1, 0.2],
    }
    gbm = GridSearchCV(estimator, param_grid)
    gbm.fit(x_train, y_train)
    return gbm

切分数据集(Train,Val)进行模型训练,评价和预测
## Split data with val
x_train,x_val,y_train,y_val = train_test_split(X_data,Y_data,test_size=0.3)

print('Train lgb...')
model_lgb = build_model_lgb(x_train,y_train)
val_lgb = model_lgb.predict(x_val)
MAE_lgb = mean_absolute_error(y_val,val_lgb)
print('MAE of val with lgb:',MAE_lgb)

print('Predict lgb...')
model_lgb_pre = build_model_lgb(X_data,Y_data)
subA_lgb = model_lgb_pre.predict(X_test)
print('Sta of Predict lgb:')
Sta_inf(subA_lgb)

print('Train xgb...')
model_xgb = build_model_xgb(x_train,y_train)
val_xgb = model_xgb.predict(x_val)
MAE_xgb = mean_absolute_error(y_val,val_xgb)
print('MAE of val with xgb:',MAE_xgb)

print('Predict xgb...')
model_xgb_pre = build_model_xgb(X_data,Y_data)
subA_xgb = model_xgb_pre.predict(X_test)
print('Sta of Predict xgb:')
Sta_inf(subA_xgb)


模型总结

1.线性回归模型

https://zhuanlan.zhihu.com/p/49480391

2.决策树模型

https://zhuanlan.zhihu.com/p/65304798

3.GBDT模型

https://zhuanlan.zhihu.com/p/45145899

4.XGBoost模型

https://zhuanlan.zhihu.com/p/86816771

5.LightGBM模型

https://zhuanlan.zhihu.com/p/89360721

参考链接:https://blog.csdn.net/ExcaliburUlimited/article/details/105260194

https://blog.csdn.net/hinker/article/details/105243306

数据挖掘-二手车价格预测 Task04:建模调参相关推荐

  1. 【算法竞赛学习】二手车交易价格预测-Task4建模调参

    二手车交易价格预测-Task4 建模调参 四.建模与调参 Tip:此部分为零基础入门数据挖掘的 Task4 建模调参 部分,带你来了解各种模型以及模型的评价和调参策略,欢迎大家后续多多交流. 赛题:零 ...

  2. #数据挖掘--第3章:建模调参之支持向量机SVM初体验

    #数据挖掘--第3章:建模调参之支持向量机SVM初体验   序言:本系列博客面向初学者,只讲浅显易懂易操作的知识.   基础知识准备:   一.我们在进行训练之前,常常要对样本进行归一化.标准化或正则 ...

  3. 【数据挖掘】心跳信号分类预测 之 建模调参 —— 学习笔记(四)

    目录 四.建模调参 4.1 内容简介 4.2 模型原理与性质概述 4.2.1 分类模型 4.2.2 时间序列模型 4.2.3 推荐教材 4.3 模型对比与性能评估 4.3.1 逻辑回归 4.3.2 决 ...

  4. 数据挖掘二手车价格预测 Task05:模型融合

    模型融合是kaggle等比赛中经常使用到的一个利器,它通常可以在各种不同的机器学习任务中使结果获得提升.顾名思义,模型融合就是综合考虑不同模型的情况,并将它们的结果融合到一起.模型融合主要通过几部分来 ...

  5. 数据挖掘-二手车价格预测 Task03:特征工程

    一.特征工程理论: 常见的特征工程包括: 一.导入数据 import warnings warnings.filterwarnings('ignore') import pandas as pd im ...

  6. 数据挖掘-二手车价格预测 Task02:数据分析

    Task02:数据分析 1.EDA数据探索性分析 读取文件 import warnings warnings.filterwarnings('ignore') import pandas as pd ...

  7. 二手车价格预测-模型stacking融合

    模型融合是比赛后期一个重要的环节,大体来说有如下的类型方式. 1简单加权融合: 回归(分类概率):算术平均融合(Arithmetic mean),几何平均融合(Geometric mean): 分类: ...

  8. 「建模调参」之零基础入门数据挖掘

    Datawhale 作者:徐韬 ,Datawhale优秀学习者 摘要:对于数据挖掘项目,本文将学习如何建模调参?从简单的模型开始,如何去建立一个模型:如何进行交叉验证:如何调节参数优化等. 建模调参: ...

  9. 【零基础入门数据挖掘】-建模调参

    Datawhale 作者:徐韬 ,Datawhale优秀学习者 摘要:对于数据挖掘项目,本文将学习如何建模调参?从简单的模型开始,如何去建立一个模型:如何进行交叉验证:如何调节参数优化等. 建模调参: ...

最新文章

  1. getname java_关于java:只获取类Class.getName()的名称
  2. Android Camera设置setPreviewCallback实现onPreviewFrame接口实时截取每一帧视频流数据
  3. dedecms 如何调用多个不同栏目的文章_SEO排名,同一篇文章,在多个栏目,如何处理?...
  4. 如何学习开源系统有感(一)
  5. Git远程和分支管理
  6. android-async-http 源码分析
  7. delphi 调用dll 整形返回值_VS2015 编写C++ DLL库及C++、 C#、python 调用
  8. Android 向右滑返回,退出当前activity
  9. string类的erase函数属于stl吗_探索STL容器:vector
  10. 闭式系统蒸汽管径推荐速度_空调水系统设计、空调风系统设计要点
  11. 【图像处理基础知识】python+opencv显示中文
  12. j2ee中的2什么意思
  13. flex弹性布局教程-02-容器display设置为flex
  14. discuz手机端默forum.php,discuz手机wap版模板开发方式简述
  15. Winform开发框架之通用Windows摄像头调用拍照--SNF快速开发平台3.3-Spring.Net.Framework...
  16. GTD时间管理学习day01---基本原理
  17. 设计模式六大原则之--依赖倒置原则(DIP)
  18. R语言|散点图 ———R语言数据可视化系列(一)
  19. 移动硬盘,U盘出现USBC病毒乱码恢复的可能性分析
  20. 汇编:assembly (intel x86/x86_64)

热门文章

  1. android压缩图片,并将其转化成base64提交到服务器
  2. 第14讲 转换与比较指令
  3. Android Studio稍微较新的版本下载
  4. 元数据驱动设计 —— 设计一套用于API数据检索的灵活引擎
  5. JSP内置对象实现表的增删查改
  6. ASP.NET的HTTP请求处理方法?
  7. PLM 问卷调查表-A 关于公司
  8. 【BFS】LeetCode 130. Surrounded Regions
  9. tensorflow获取可用GPU设备
  10. 第七章:Servlet