首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python数据挖掘-泰坦尼克号获救预测——唐宇迪老师直播回顾

http://www.abcplus.com.cn/course/58/task/153/show

Python最常使用的工具包

Numpy-科学计算库主要用来做矩阵运算,咱们的数据就是行(样本)和列(特征)组成的,数据本身就是一个矩阵。

Pandas-数据分析处理库Pandas是Python处理数据简洁化的秘诀之所在,有了Pandas,很复杂的操作也可以用一行代码解决。

Matplotlib-可视化库无论是分析还是建模,需要依靠它把结果和过程可视化的展示出来。

Scikit-Learn-机器学习库非常实用的机器学习算法库,基本包含了咱们能用上的所有机器学习算法。 而且还有很多预处理和评估的模块,可以后续自己挖掘。

数据处理流程

(一)数据读取

读取数据并进行展示

统计数据各项指标

明确数据规模与要完成任务

读取数据:

整体情况:

显然,这次事故中没有多少乘客幸免于难。

在训练集的891名乘客中,只有大约350人幸存下来,只有38.4%的机组人员在空难中幸存下来。我们需要从数据中挖掘出更多的信息,看看哪些类别的乘客幸存下来,哪些没有。

我们将尝试使用数据集的不同特性来检查生存率。比如性别,年龄,登船地点等,但是首先分析下数据的特征。

(二)特征理解分析

单特征分析,逐个变量分析其对结果的影响

多变量统计分析,综合考虑多种情况影响

统计绘图得出结论

数据特征分为:

离散值:性别(男,女),登船地点(S,Q,C)

连续值:年龄,船票价格

可以看出船上的男人比女人多得多。但是,获救的女性人数几乎是男性的两倍。女人在船上的生存率是75%左右,而男性在18-19%左右。(这样看来,让妇女和儿童先走,确有其事)

这是建模的一个非常重要的特性,接下来将要用到。

我们可以清楚地看到,船舱等级为1的被给予很高的优先级而救援。尽管数量在Pclass 3乘客高了很多,但存活数是非常低的,大约25%。

对于Pclass 1来说存活是63%左右,而Pclass 2大约是48%。我们几乎可以得出结论,在危机来临时金钱和地位可能决定你的生存概率。

那这些又和性别有关吗?接下来我们再来看看船舱等级和性别对结果的影响。

我们用factorplot这个图,看起来更直观一些。

我们可以很容易地推断,Pclass 1女性生存是95-96%,如94人中只有3个女性在Pclass 1没获救。

显而易见的是,不论PClass,女性优先考虑。可见Pclass也是一个重要的特征。

(三)数据清洗与预处理

对缺失值进行填充

特征标准化/归一化

筛选有价值的特征

分析特征之间的相关性

缺失值填充

·平均值

·经验值

·回归模型预测

·剔除掉

正如我们前面看到的,年龄特征有177个空值。为了替换这些缺失值,我们可以给它们分配数据集的平均年龄。

但问题是有许多不同年龄的人,所以需要找到一个合适的年龄段。

我们可以检查名字特征。根据这个特征,我们可以看到名字有像先生或夫人这样的称呼,这样我们就可以把先生和夫人的平均值分配给各自的组。

特征相关性的热度图:

首先要注意的是,只有数值特征进行比较。

正相关:如果特征A的增加导致特征B的增加,那么它们呈正相关。值1表示完全正相关。

负相关:如果特征A的增加导致特征B的减少,则呈负相关。值-1表示完全负相关。

现在让我们说两个特性是高度或完全相关的,所以一个增加导致另一个增加。这意味着两个特征都包含高度相似的信息,并且信息很少或没有变化。这样的特征对我们来说是没有价值的。

那么我们应该同时使用它们吗?在制作或训练模型时,我们应该尽量减少冗余特性,因为它减少了训练时间和许多优点。

现在,从上面的图,我们可以看到,特征不显著相关。

(四)建立模型

特征数据与标签准备

数据集切分

多种建模算法对比

集成策略等方案改进

当我们得到一个具有特征的数据集时,是不是所有的特性都很重要?可能有许多冗余的特征应该被消除,我们还可以通过观察或从其他特征中提取信息来获得或添加新特性。

年龄特征

正如前面提到的,年龄是连续的特征,在机器学习模型中存在连续变量的问题。

如果说通过性别来组织或安排体育运动,我们可以很容易地把他们分成男女分开。

如果说按他们的年龄分组,你会怎么做?如果有30个人,可能有30个年龄值。

我们需要对连续值进行离散化来分组。

乘客的最大年龄是80岁,所以80/5=16。

机器学习建模

我们从EDA部分获得了一些见解。但是,我们不能准确地预测或判断一个乘客是否会幸存或死亡。现在我们将使用一些很好的分类算法来预测乘客是否能生存下来:

1)logistic回归

2)支持向量机(线性和径向)

3)随机森林

4)k-近邻

5)朴素贝叶斯

6)决策树

7)神经网络

效果图如下:

昨天的互动题目,小伙伴们都知道答案了嘛?看这里哟~

题目回顾:在数据挖掘与机器学习要解决的实际问题中以下哪项才是最核心的?

A:数据预处理

B:建立机器学习模型

C:特征工程

D:数据可视化

答案:特征工程是最核心的一部分,也是我们的核心竞争力。

当然,这几个选项在解决问题中都是十分重要,不可或缺的。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171222G0J02A00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券