案例介绍
数据分析;解决思路;
特征选择
缺失值处理;特征值类型变换;特征组合;特征筛选;
模型调试
模型参数设置;
案例介绍
泰坎尼克号遇难。已知部分船员的个人信息和是否幸存,来预测其他船上人的存活情况。
数据分析
我们所要做的第一步是观察和分析数据,这里使用Pandas 进行处理。
可以判断
- 一共有12列,第一列是ID,第二列是分类标签,因此是十个特征,一个二分类标签。
- 多个特征含有空值。Age列空值很多,且是重要属性;Cabin列空值很多,可能是非重要属性;Embarked 只有两个空值
- 可能的主要特征:Pclass(船舱等级)可能代表了主人的地位;Sex(性别)可能更会得到帮助;Age 可能儿童会优先照顾,老年人体力较弱可能更危险
- 可能的次要特征:Name 里面或许能挖掘到主人的身份;其他的特征更不明显
- 可能的组合特征:我知道一个类别和这个类别存活的情况,我可以添加各个类别的‘存活率’,这其实是拿一个特征和Survived 这个标签组合;当然还有特征间的各种组合,后续可以尝试组合
- 训练样本只有891条,如果特征构造的过多,可能会出现过拟合;因此随机复制训练样本来增加训练数据,或许是一个方法
解决思路
分类器的选择:
常用分类器有:LR、CART、SVM、RandomForest、GBDT;各分类的特点有待研究
在一种分类器的情况下:
- 特征数据分为标量和标称两种,挑选适合该分类器类型的数据特征,或者是将其转化为符合该分类器类型的数据特征;(据经验可知:随机森林是处理标量和标称混合特征表现较好的算法;GBDT 适合标量类型数据.....)
- 特征选择的顺序是由简至繁,由重要到非重要,由一元到组合,一点点改进,才能发现哪些属性真正起作用。本例中首先要考虑 Age, Pclass, Sex, SibSp,Parch
在多种分类器组合的情况下:
- 采用多种分类器去预测,最后将各个分类器的预测结果通过投票组合
- 每一种分类器可以只取适合自身的部分特征,也可以取全部特征;本例中采用LR、RandomForest、SVM 处理全部特征,GBDT处理二值特征
特征选择
Kaggle竞赛--Titanic:Machine Learning from Disaster
原文:http://www.cnblogs.com/tosouth/p/4889599.html