记录我的第一次kaggle比赛。
在完成吴恩达的机器学习课程之后,迫不及待的就开始探索kaggle上的比赛。第一题自然就是就是泰坦尼克号。
在一开始,我以为泰坦尼克号的数据就像吴恩达课程的练习题中的数据一样“干净”。但很快,错误码便告诉我事实并非想象中的那样简单,kaggle上的数据集相对“脏”很多,有缺失值,有低贡献列。 于是我便开始搜索数据处理方法并开始对我的数据集进行处理。我删除掉了一些难以处理并且与生存率看似无关的一些特征、对登船地址进行独热编、填补缺失值、将所有数据转换为浮点数形式。之后,我的代码便能跑通了。
通过观察我的训练结果,我发现我的训练集准确率竟然低于我的测试集准确率,这是我在吴恩达的课程上所从未接触过的情况。 通过搜索,我发现这其实是很正常的现象,主要是因为我的训练循环数不足导致的,于是我便epochs到300,最后得到了84%左右的训练集和测试集误差。
之后我便对test文件进行预测并提交结果,最后发现我第一次的测试集正确率只有73.444%,检查代码之后发现是我没有在训练过程中加入正则化而导致的过拟合的问题。加上正则化之后我的正确率边上升到了75.119%