学习天池课程《机器学习实战进阶:泰坦尼克号乘客获救预测》有感
0 致谢及参考
感谢阿里云的天池AI系列课程,确实很多干货,本博客就是看了以下链接的内容有感,也是做一个学习记录。
https://tianchi.aliyun.com/notebook-ai/detail?spm=5176.12282042.0.0.1dce2042MmtR1e&postId=6772
https://tianchi.aliyun.com/course/
1 过去疑问
解决了我以前对数据分析的很多疑惑,可以说研究之后真的是有醍醐灌顶的感觉,其中包括的疑惑我这里先罗列出来:
- 如何对缺失值进行填充(特别是用其他的算法对缺失值填充)
- 如何去分析数据的关系,哪些变量对结果影响大,到底如何分析
- 如何把变量转化为sklearn(仅可处理数值变量)可处理的状态
- 如何处理连续变量,作为sklearn可处理的状态
- 分析数据的一些办法(相关性、分布图)
- 输入模型前对数据的一些处理方法(如正则化)
- 如何模型融合
- 如何将一层模型的输出值作为特征,作为下一层模型的输入特征
差不多以上就是我以前对数据分析的大部分疑惑,上面链接的教程都有提到,并且用了一些比较好的作图工具,比如seaborn包。
2 解决方法
- 缺失值的填充可以用
.fillna
方法快速填充,用其他的模型去填充用python实现也是非常简便的(比如随机森林) - 分析数据用python里面的
groupby
简单明了 - 把变量转为数值有两种方式:pandas里面的
get_dummies
和factorize
- 对于连续变量用pandas里面的
qcut
把连续变量分成几段(binning化),然后再factorize化或者dummies化都可以 - 就利用seaborn里的函数做相关性或数据分布图,很好看
- 一定要预处理比如正则化,还有去掉用处较小的变量(
Dataframe
直接使用drop
) - 可以直接均值融合
- 将上一层的每个模型对训练集的
X_tra
进行预测获得预测值Y_tra
的集合,并输出测试集的预测值Y_tex
(这里用N折的均值),因为这里用到了KFold重新构建。然后用Y_tra
作为第二层模型的训练的输入值,训练集真实的Y
值作为训练的输出值,进行训练。然后上一层的Y_tex
作为这一层模型的输入值进行最终的预测。
3 总结
- 最后还提到了学习曲线,可以观察模型处于什么样的状态。绘制起来也比较便捷,以下为图例:
- 最后还有一点心得就是,我能想到的很多东西其实都已经有现成的工具了,没必要自己再去写,用学会更广地去搜索资料达到事半功倍的效果。