赞
踩
竞赛地址:https://www.kaggle.com/c/titanic
文末有源代码、实验报告以及该代码需要的数据(train.csv和test.csv)
泰坦尼克号的沉没是历史上最臭名昭著的海难之一。
1912年4月15日,在她的处女航中,被普遍认为“沉没”的RMS泰坦尼克号与冰山相撞后沉没。不幸的是,船上没有足够的救生艇供所有人使用,导致2224名乘客和机组人员中的1502人死亡。
尽管幸存有一些运气,但似乎有些人比其他人更有可能生存。
在这一挑战中,我们要求您建立一个预测模型来回答以下问题:“什么样的人更有可能生存?” 使用乘客数据(即姓名,年龄,性别,社会经济阶层等)
作者:东北大学软件工程1704张志浩
我们知道了总的数据一共有1309行,也知道了每个特征的数据类型,很多数据都出现了缺失,总结一下:
1、Age缺失 263个,不算多,处理数据
2、Survived缺失418个,不用处理,因为test.csv中的数据本来就是没有Survived的。
3、Cabin缺失1014个,缺失太多,丢弃这个特征
4、Fare缺失1个
5、Embarked缺失2个
在数据中出现缺失或者错误的Value是很正常的事,一些预测模型可以很好的处理缺失数据,如神经网络(neural networks),有些则需要单独处理他们。但是我们使用的随机森林(Random Forest)来做预测模型,随机森林(自身并不能对付缺失数据,所以我们需要对缺失值单独进行处理。
Age(年龄)有263个缺失项,就简单地用平均值来填充,并看看填充前后的直方图:
Fare(票价)只有1个缺失项,直接用平均值填充:
可以看出票价集中在10左右,幸存的人的票价平均在48。
可视化
得到Pclass与Survived的关系,可以看出Pclass为3的生存率很低,我们试试把它的Dummy Variables去掉:
我只使用了离差标准化,其他的没有离差标准化准确率高,注释掉的代码是我没有使用的方法
从图中可以看出Q影响较小,删去
我得到n_estimators=26,max_depth=6,最优
我试了几乎所以的模型,但是只有随机森林的准确率最高,可能我处理得到的数和这个模型比较匹配
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。