Task4:建模和调参
1、读取数据:
正常的读取数据流程是读取一个模型数据,然后对数据进行建模处理——即分离数据集,分成训练集和测试集;目的是为了利用交叉验证对模型性能进行评估。教程就是采用的这个正常的流程。
data_train =pd.read_csv(’…/train.csv’)
data_test_a = pd.read_csv(’…/testA.csv’)
data_train = reduce_mem_usage(data_train)
data_test_a = reduce_mem_usage(data_test_a)
X_train=data_train.drop([‘id’,‘issueDate’,‘isDefault’,], axis=1)
X_test=data_test_a.drop([‘id’,‘issueDate’], axis=1)
y_train = data_train.isDefault
2、建模
模型有很多种,我就不粘贴教程了,直接采用教程的Lightgbm模型开始搬砖。这个模型需要对上面提到的训练集数据进行划分,分成训练集和验证集,然后开始其他操作,步骤如下:
对训练集数据进行划分,分成训练集和验证集;
使用训练集数据进行模型训练;
对验证集进行预测;
计算AUC评价模型。
最后使用5折交叉验证对模型进行性能评估。
3、调参
模型建立完成后就要优化参数,一般有贪心调参、网格调参和贝叶斯调参。这里总结下贝叶斯调参的步骤:
定义优化函数(rf_cv)
建立模型
定义待优化的参数
得到优化结果,并返回要优化的分数指标
这样就得到优化后的参数啦!
4、确定最终模型
参数优化完成后,我们可以根据优化后的参数建立新的模型,降低学习率并通过cv函数寻找最优模型迭代次数;使用该迭代次数和优化参数建立最终模型,并用5折交叉验证进行模型评估;
通过5折交叉验证可以发现,模型迭代次数在13000次的时候会停之,那么我们在建立新模型时直接设置最大迭代次数为13000,并使用验证集进行模型预测和计算ACU;