二手车交易价格预测——建模与调参

环境:Pycharm、python3.7

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import OneHotEncoder
import lightbgm as lgb
from sklearn.metrics import mean_absolute_error
from sklearn.model_selection import GridSearchCV

可以用网格法来调LightGBM的参数:

# 该参数为个人已经调好的参数,并不是非常完美
params = {
    'boosting_type':'gbdt',
    'objective':'regression',
    'metric':{'mae'},
    'num_leaves':150,
    'min_child_weight':8,
    'max_depth':16,
    'min_data_in_leaf':2,
    'learning_rate':0.01,
    'feature_fraction':0.3,
    'bagging_fraction':0.85,
    'bagging_freq':5,
    'lambda_l1':1,
    'lambda_l2':0.5,
    'min_gain_to_split':0.2,
    'num_thread':12,
    'is_unbalance':True
}
# 此处省略数据分析和预处理过程,之前两节已经做过
# 将训练集划分为训练和测试两部分(经过5折交叉验证后)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.1, random_state = 4)
# 转换为符合lightgbmd的Dataset数据类型
lgb_train = lgb.Dataset(X_train, y_train)
# 最佳迭代50000,开始训练
gbm = lgb.train(params, lgb_train, num_boost_round = 50000)
# 网格调参
parameters = {'objective': objective , 'num_leaves': num_leaves, 'max_depth': max_depth}
model = lgb
clf = GridSearchCV(model, parameters, cv=5)
clf = clf.fit(train_X, train_y)
print(clf.best_params_)
# 此处省略数据分析和预处理过程,之前两节已经做过
# 训练完毕后,得到训练部分的结果
pre = gbm.predict(X_test)
# 用评分标准 MAE 对训练部分的结果做测试
score = mean_absolute_error(y_test, pre)
print("The score is : ", score)
# 对测试集进行预测,得到预测结果
preds = gbm.predict(y_test)
# 将结果输出到 .csv 文件中
pr = pd.DataFrame(preds, columns = ['price'])
pr.to_csv("used_car_testA_submission.csv", index = False)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值