Titanic
1. 不要痴迷于使用复杂的模型,有时候使用简单模型效果更佳。
经过数据预处理和数据清洗之后,使用随机森林和逻辑回归两种模型。随机森林模型对象使用网格搜索进行十折验证进行调参。
两个模型对象的准确率:
logr | rf_grid | |
训练集 | 84.11% | 89.09% |
验证集 | 79.85% | 78.36% |
测试集 | 78.47% | 77.03% |
注:此处训练集和验证集是对train.csv数据使用train_test_split方法取得的。本质上都是训练集的数据。测试集的准确率是在Kaggle上提交预测之后返回的结果。
可以看到随机森林模型对象对训练集数据有更高的预测准确率,而在验证集和测试集上表现反倒不如逻辑回归模型对象好。
2. 不要把所有训练集的数据(包括训练集和验证集)喂给模型对象,否则容易出现过拟合现象。
我在尝试这样做后,测试集的准确率反而下降了一个百分点。
3. 训练集的数据规模不大的时候,数据清洗和模型对象的调参对最后准确率会有非常大的影响。
没有一种万能的公式去使用。唯一能够起到作用的是数据清洗和模型调优之前,真正做到对问题和数据有深刻的理解。