Kaggle竞赛--Titanic:Machine Learning from Disaster

 

1 案例介绍

泰坎尼克号遇难。已知部分船员的个人信息和是否幸存,来预测其他船上人的存活情况。

1.1 数据分析

我们所要做的第一步是观察和分析数据,这里使用Pandas 进行处理。

 

可以判断

  1. 一共有12列,第一列是ID,第二列是分类标签,因此是十个特征,一个二分类标签。
  2. 多个特征含有空值。Age列空值很多,且是重要属性;Cabin列空值很多,可能是非重要属性;Embarked 只有两个空值
  3. 可能的主要特征:Pclass(船舱等级)可能代表了主人的地位;Sex(性别)可能更会得到帮助;Age 可能儿童会优先照顾,老年人体力较弱可能更危险
  4. 可能的次要特征:Name 里面或许能挖掘到主人的身份;其他的特征更不明显
  5. 可能的组合特征:我知道一个类别和这个类别存活的情况,我可以添加各个类别的‘存活率’,这其实是拿一个特征和Survived 这个标签组合;当然还有特征间的各种组合,后续可以尝试组合
  6. 训练样本只有891条,如果特征构造的过多,可能会出现过拟合;因此随机复制训练样本来增加训练数据,或许是一个方法

1.2 解决思路

分类器的选择:

常用分类器有:LR、CART、SVM、RandomForest、GBDT;各分类的特点有待研究

在一种分类器的情况下:

  1. 特征数据分为标量和标称两种,挑选适合该分类器类型的数据特征,或者是将其转化为符合该分类器类型的数据特征;(据经验可知:随机森林是处理标量和标称混合特征表现较好的算法;GBDT 适合标量类型数据.....)
  2. 特征选择的顺序是由简至繁,由重要到非重要,由一元到组合,一点点改进,才能发现哪些属性真正起作用。本例中首先要考虑 Age, Pclass, Sex, SibSp,Parch

在多种分类器组合的情况下:

  1. 采用多种分类器去预测,最后将各个分类器的预测结果通过投票组合
  2. 每一种分类器可以只取适合自身的部分特征,也可以取全部特征;本例中采用LR、RandomForest、SVM 处理全部特征,GBDT处理二值特征

2 特征选择

 对案例大概分析之后,开始进行特征处理了!

2.1 缺失值处理

  1. 对于数据样本量大,而缺失行不多,可以选择删除这些行数据
  2. 对于属性列不重要,而缺失行很多,可以选择删除这些列数据
  3. 更多情况下,是对缺失值赋值,1、赋均值、众数等 2、找一个模型来拟合这些缺失值(最好数据样本量大)
  4. 本例中Age 可以取均值或者拟合;Cabin 空值为-1 非空为1;Embarked 取众数

2.2 特征数据类型变换

  1. 对于已是二值数据,但其数据类型为String型,将其转换为int型,本例中有Sex
  2. 对于标称数据,我们可以将其转换为二值数据,本例中有 Pclass,Embarked
  3. 对于连续型数据,可以离散化,进行分段处理或者直接变成二值数据;而分段处理之后又变成了标称数据,还是可以继续转换为二值数据,本例中有Age,Fare
  4. 对于连续型数据,也可以标准化;

2.3 特征组合

  1. 特征组合的目的是通过将一元特征的结合,获得特征之间两两内在的联系
  2. 特征组合之间会特征量会大量增加,1、可以采取一些方法去除高度相关的变量;2、进行特征筛选

2.4 特征筛选

  • 对于各类分类器,在使用sklearn进行训练之后,产生一个feature_importances属性,通过这个属性,能得到各个属性的重要程度的值,进而筛选出前k个。

3 模型评价

3.1 交叉检验

我们在进行机器学习过程中,首先会把数据集分为两部分:训练数据集和验证数据集;要判断 一个模型的优秀程度,我们将训练数据集上训练得到的模型,代入到验证数据集上去验证,从而得到一个验证结果;但我们不能仅仅划分一次数据集,而是要随机的 多划分几次;从而每次都得到一个结果;再求其均值,就可以作为对模型的评价了。对于每一次的评价指标是:

4 模型调试

当进行了上述两个步骤,就可以对各个分类器进行训练了。

4.1 增加数据样本

由于本例中数据样本较少,一些特征应该表现出的信息不能被机器学习到,因此可以考虑随机复制样本来增加样本数量

4.2 模型参数设置

在训练过程中,对各个分类器中的参数需要不断进行调整和优化;如SVM中惩罚因子,randomForest中森林中子树个数等等,可以先设置几个值,通过一个循环变量来选择出最合适的参数。

4.3 分类器组合

在各个分类器均通过模型评价指标来达到最佳分类效果之后,可以将各分类器对测试数据集的输出结果进行投票,然后得到最佳的输出结果。

posted @ 2015-10-18 15:30  走那条小路  阅读(1203)  评论(0编辑  收藏  举报