Kaggle_01_Titanic

1. 数据处理

简单分为三种:缺失数据处理、新特征生成和数据归一化

1.1 缺失数据处理:

(1) 直接丢掉 - 原数据量较大,缺失数据量较小,丢掉几条数据一般无妨

(2) 用平均数 - 用其他特征基本与本条差不多的数据的平均数,适合连续数据

(3) 用中位数 - 用其他数据的中位数,适合连续数据

(4) 用众数 - 用其他数据的众数,适合离散分类型数据

(5) 模型预测 - 当该数据对最终结果的预测印象比较大的时候,需要更加准确的数据。

(6) 用没有出现过的值整体取代缺失值 - 这个不知道什么时候试用......但是在这个实验中来看,对Deck缺失值的补充,用这个方法好于用众数。

2.2 新特征的生成

用已有的数据去生成一个关联特征,一方面减少现有特征的数量(可以理解为降维,如实验中的family特征的提取 [Family = Parch + SibSp + 1]),另一方面可以从现有的数据中提取出更具代表性的数据(如实验中的Deck就是从cabin中提取出来的)。

2.3 数据归一化

scale不在同一数量级上的特征,可能最后影响分类器的性能,如实验中的age和fare。

2. 分类器选择

分类器实验了Linear Regression, Radom Forest, Decision Tree和XGBoost。

结果如下:

No1. Linear Regression - 0.78947

No2. Radom Forest - 0.77512

No3. XGBoost - 0.74641

No4. Decision Tree - 0.67464

我的实验kernel在这里:https://www.kaggle.com/shenglei/first-try-in-titanic/

欢迎指导,不知道数据处理上还有没有可以提升的地方。

3. 集成学习--stacking

Kaggle_01_Titanic_第1张图片

Ensemble的kernel在这里:https://www.kaggle.com/shenglei/second-try-in-titanic-with-ensemble-stacking/

4. 总结

同样的特征处理方法,不同的训练模型,集成学习的确有提升效果。

No1. Stacking - 0.79426

No2. Linear Regression - 0.78947

No3. Radom Forest - 0.77512

No4. XGBoost - 0.74641

No5. Decision Tree - 0.67464

你可能感兴趣的:(Kaggle_01_Titanic)