# 数据准备
train_dataset = pd.read_csv("./train.csv") # 原始训练数据。
test_dataset = pd.read_csv("./test.csv") # 原始测试数据(用于提交)。
submit = pd.DataFrame() # 定义提交的最终数据。
submit["序号"] = test_dataset["序号"] # 对齐测试数据的序号。
MAE_scores = dict() # 定义评分项。
# 模型训练
pred_labels = list(train_dataset.columns[-34:]) # 需要预测的标签。因为要预测的是温度,所以是后三十四个
train_set, valid_set = train_test_split(train_dataset, test_size=0.2) # 拆分数据集。train_dataset是要划分的数据集,test_size是测试集的比例,默认为0.2(即20%的数据用于测试)
# 设定 LightGBM 训练参,查阅参数意义:https://lightgbm.readthedocs.io/en/latest/Parameters.html
lgb_params = {
'boosting_type': 'gbdt',#梯度提升树
'objective': 'regression',#回归
'metric': 'mae',#评估指标为平均绝对误差MAE
'min_child_weight': 5,#控制每个叶子节点上的最小样本权重总和,用于防止过拟合
'num_leaves': 2 ** 5, #2的5次方,每棵决策树有32个结点
较大的num_leaves值可以增加模型的复杂度,从而提供更强大的拟合能力,但也可能导致过拟合。相反,较小的num_leaves值可以减少模型的复杂度,从而降低过拟合的风险,但可能会降低模型的表达能力。
'lambda_l2': 10,#指定L2正则化项的权重,用于控制模型的复杂度。较大的值可以防止过拟合。
'feature_fraction': 0.8,#指定每次迭代中随机选择的特征比例,用于加速训练并降低过拟合的风险
'bagging_fraction': 0.8,#指定每次迭代中随机选择的样本比例,用于加速训练并降低过拟合的风险
'bagging_freq': 4,
'learning_rate': 0.05, #学习率控制每次迭代中模型参数的更新幅度。较小的学习率可以使模型更稳定,但可能需要更多的迭代次数
'seed': 2003,
'nthread' : 16,
'verbose' : -1,
}
标签:精读,baseline,AI,模型,dataset,train,拟合,test,csv
From: https://www.cnblogs.com/dk2154/p/17586320.html