(docker run -tdi -p 59000:22 -p 59001:8888 --name guanjun1 --privileged=true registry.cn-hangzhou.aliyuncs.com/mkmk/jupyter:gestureguanjun init)&&(docker exec -d guanjun1 /bin/bash -c "cd /home/jupyterfiles && nohup /usr/local/python3/bin/jupyter notebook --allow-root &")
一、思路说明
本次比赛主要采用初级+次级模型的方法来进行训练与识别。初级模型有三个,其中两个是基于CNN的模型,另外一个是基于LightGBM的模型。在初级模型训练完成后,将其预测的概率作为次级模型的特征,用于训练次级模型以及生成最后的结果。具体模型的网络结果和特征可以阅读代码,其中有详细的注释。
二、训练过程
在训练时,首先调整好三个初级模型,其中包括做特征、调参等,尽量提升模型的预测精度。然后采用三个初级模型来生成次级模型的训练集特征和测试集特征(stacking集成用)。最后用生成的特征调试次级模型,并且生成最后的结果。
该文件主要介绍source文件夹中的代码结构:
(1)model文件夹:用于存储训练好的模型文件,本次比赛每个模型都采用了10折交叉验证,每种模型对应有10个模型文件。由于LightGBM训练较快就未进行存储,只存储了两种CNN网络的训练模型。
(2)stacked feature文件夹:存储由初级模型生成的特征数据,本次比赛利用这些数据进行stacking集成。
(3)test文件夹:测试集文件。
(4)train文件夹:训练集文件。
(5)baseline_cnn_1.ipynb文件:初级模型1,基于CNN的模型。
(6)baseline_cnn_2.ipynb文件:初级模型2,基于CNN的模型。
(7)baseline_lightgbm.ipynb文件:初级模型3,基于LGB。
(8)stacking.ipynb文件:次级模型,基于神经网络。
(9)sub_cnn_1.csv:初级模型1生成的提交文件。
(10)sub_cnn_2.csv:初级模型2生成的提交文件。
(11)sub_lightgbm.csv:初级模型3生成的提交文件。
(12)sub_stacking.csv:次级模型生成的提交文件。