sklearn 相关性分析_练习泰坦尼克号数据分析

dda063af66187c31205b8e9800f4264e.png

在kaggle 上下载泰坦尼克号数据,完成数据挖掘部分的作业。泰坦尼克号是许多数据科学和机器学习的新手比较喜欢选择的案例。

数据说明:

泰坦尼克号的沉没是历史上最臭名昭着的沉船之一。 1912年4月15日,在她的处女航中,泰坦尼克号在与冰山相撞后沉没,在2224名乘客和机组人员中造成1502人死亡。这场耸人听闻的悲剧震惊了国际社会,并导致了更好的船舶安全规定。

造成海难失事的原因之一是乘客和机组人员没有足够的救生艇。尽管幸存下沉有一些运气因素,但有些人比其他人更容易生存,比如女人,孩子和上流社会。

在这个任务中,我们对原始数据进行分析,看看到底哪些人更容易存活。然后用机器学习的工具来预测哪些乘客幸免于难。

数据导入:

e1e7551ffdfdc1690b2b69845148ea31.png

显示前两行数据:

88241e2229bf61f479f111809debbd03.png

一共有12个特征,其中5个特征是字符串。

用describe函数显示数据基本信息:

65619a41f9b275753cdb2a990029b998.png

可以看出与ID相比,年龄字段只有714个值,是有缺失的。

缺失只可以删除,插值,这里选择用平均值填充年龄:

dbf1799e543b5cfa65a0e7dcecc8a203.png

查看性别类型,发现只有两类male、female,用0和1替代:

61d63720ab5c0fb50c1e3e96ce81fc9b.png

查看Embarked的情况,结果有S、C、Q、nan四类,说明有缺失值,查看数据,发现大多数都是S值,于是用S值填充缺失值。最后将字符串数值化。

252ff83e6c1b75fb521c89d1290911cb.png

8499cd8387dd1ed896326c91894bb15a.png

先选取'Pclass','Sex','Age','SibSp','Parch','Fare','Embarked'七个特征进行建模,用python库sklearn进行预测,选取交叉检验:

57b6fde99d11d7b26d601f2074fbbadd.png

线性模型:

ad2b6087445afbc82ac8261e3a153a21.png

模型预测结果,准确率为26%,效果不好,比随便猜还差,随便猜也有50%的准确率。

逻辑回归:

0f979cde94c6de3a4baec8fad7b9a1bf.png

准确率为78%,勉强过的去。

随机森林:

0c09d679063108dee768b1c089177ad3.png

随机森林模型准确率也为78%

改变随机森林的参数:

7512080ddb8c010962c3ba7a04fbfcb4.png

改变随机森林模型的参数后,模型的预测的准确率上升为82%,有明显的提升,说明在数据挖掘建模过程中,模型参数设置很重要。

在之前的建模过程中,利用现有的参数进行分析。在接下来,试着去尝试用新的特征向量来建立模型。

将原来的特征:SibSp、Parch合并为FamilySize,增加一个特征名字长度nameLength,好像在欧美,名字长度和社会地位有一定关系。

ee35f5e911a6c10fd4d8ef19231b75c0.png

增加一个名字称呼的变量Title,查看数据中的Title:

079f228b4cb8a576e6606c57266de7f9.png

后面8个比较少,考虑了一下,将'Lady', 'Countess','Capt', 'Col','Don', 'Dr', 'Major', 'Rev', 'Sir', 'Jonkheer', 'Dona'用rare取代。在将其数字化"Mr": 1, "Miss": 2, "Mrs": 3, "Master": 4, "Rare": 5。

d26c03ce7c197feae90bb8f4108a5723.png

完成结果:

7d4fc21684f95da3c9bcea2e30b65d2a.png

将票价分为四类:

d5a5fbb82caeacc504ee67f4a761bbb8.png

然后将票价用0、1、2、3取代,便于建模:

484b7a7cf4d4f4c96d7a4bd4a1003570.png

同样的操作,将年龄分类,在用数字代替:

8efd202a51fde37521e5104bc07e9340.png

3a33e6c7a4c4284bdde2b06350191f6c.png

处理结果:

65243de7bc6da9f2e8d33ba3ab3e4e47.png

重新选取数据建模:

c12f7b2d54635557657b574fe12f8dbb.png

去掉特征:passengerid,name,ticket,cabin,sibsp,categoricalage,categoricalfare七个特征。得到结果:

ea655f7fad627407341d0f5a309811ee.png

数据可视化:

cdf0bd4924779871c382e339d552f6e6.png

特征相关性:

43bc25a4163fcf69830cce5629616834.png

从Pearson Correlation图可以知道,选择的特征没有强烈相关。 从将这些特征提供到学习模型中的观点来看,这是很好的,因为这意味着我们的训练集中没有太多冗余或多余的数据。

分析选取特征对存活率的重要程度:

af8f33b6df0c79919e0ef40dfef3fa54.png

结果如下:

02a268c8903a4df5b532d5089ec3ffde.png

从图中可以看出,Pclass ,Sex ,Fare ,NameLength ,Title五个特征比较重要,所以建模选取这五个特征。

开始建模,定义训练集与测试集:

6c6118d90f71448e5b42fcb362f0566f.png

SVC模型:

e6496b46f8e2a09e3059ce5b779a9166.png

结果准确率为78%。

线性SVC模型:

56252c3e00102fe5de135410466eaeca.png

结果准确率为75%。

随机森林:

392b75c10ec7d6d324d105a40ae81d7f.png

结果准确率为82%。

逻辑回归:

bd7649b763da71d18ffb55ce58c073a4.png

结果准确率为75%。

K邻近:

d8739a81382d35f7f9d9899e90598a57.png

结果准确率为76%.

XGBoost 模型:

a207ebdb4e99f645fc67dfe8381fab65.png

结果准确率为77%。

从分析结果来看,在理论上优秀的算法不一定在一个实际的案例中由于其他算法,在同样的数据预处理情况下,简单的算法可能表现更高的准确率,在本例中,进行新的特征创建和新特征融合的情况下,预测结果并没有得到明显的改善,这一点没有想明白。

当然,更好一点的可能是组合不同的分类器,并赋予不同分类器一定权重,让我们的分类器更“聪明”,比如构建人工神经网络,可能使得学习的结果更优异,当然这也需要更大的样本。

对于本例来说,研究泰坦尼克号中哪些人更有利存活,一者这是一个过时问题,二者是这个研究本身没有多大的实际意义,更多的是用来练习学到的知识。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值