目录
1. 加载数据
首先需要导入我们的训练数据
import pandas as pd
train_data = pd.read_table('./data/train.txt') # 这里是导入训练数据,我采用的是相对路径查看文件
2. 划分数据集
机器学习模型中对于训练模型需要训练集和测试集,这个需要我们自己进行划分,这里可以调用train_test_split进行数据集的划分
from sklearn.model_selection import train_test_split
X = train_data.iloc[:, :-1]
# X
y = train_data['target'] # y为目标数据,也就是我们最后要预测的数据。
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3) # 这里的0.3是将训练数据划分开,其中训练集:测试集=7:3
3. 将数据转换为Dataset格式
lgb_train = lgb.Dataset(X_train, y_train)
lgb_eval = lgb.Dataset(X_test, y_test, reference = lgb_train)
4. 参数设置
对模型的参数进行设置
params = {
'boosting_type': 'gbdt', # 用于指定弱学习器的类型,默认值为 ‘gbdt’
'objecttive': 'regression', # 用于指定学习任务及相应的学习目标,“regression”,使用L2正则项的回归模型(默认值)
'metric': 'auc', # 评判指标
'max_bin': 255,
'learning_rate': 0.1, # 学习率
'num_leaves': 64, # 指定叶子的个数,默认值为31,大会更准,但可能过拟合
'max_depth': -1, # 指定树的最大深度,默认值为-1,表示不做限制,合理的设置可以防止过拟合。
'feature_fraction': 0.8, # 构建弱学习器时,对特征随机采样的比例,防止过拟合
'bagging_freq': 5,
'bagging_fraction': 0.8,
'min_data_in_leaf': 21,
'min_sum_hessian_in_leaf': 3.0,
'header': True # 数据集是否带表头
}
5. 模型训练
进行模型训练
gbm = lgb.train(params, lgb_train, valid_sets = lgb_eval, num_boost_round = 250)
6. 模型预测
对想要预测的数据进行预测
# 这里的X_test是要预测的数据,得到的y_pre是预测结果
y_pred = gbm.predict(X_test, num_iteration=gbm.best_iteration)
7. 预测结果保存
将预测结果保存到本地
# 先将预测的结果转化为DataFrame的格式
pre = pd.DataFrame(y_pred)
# 这里可以保存为csv、txt等格式,index=False是不用保存索引, header=None是不用保存列名
pre.to_csv('./result/pre001.csv', index = False, header = None)
任务完成,★,°:.☆( ̄▽ ̄)/$:.°★ 。
水平一般,能力有限,如有问题,感谢各位的不吝赐教。