今天我们使用pandas进行泰坦尼克号幸存情况的分析,我们希望从掌握的数据中能发现一些规律性的东西,来解释什么样的旅客更容易活下来?¶

import pandas as pd

df=pd.read_csv("data/titanic_train.csv")

df.head()




泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_缺失值


1 旅客幸存率的分析¶


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_数据_02


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_数据分析_03


2 生存关键因素分析


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_数据分析_04


从现有的数据型变量之间的相关性分析,Pclass,Fare与生存率的相关度很高


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_缺失值_05


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_数据_06


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_数据分析_07


年龄因素对生存率的影响


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_数据分析_08


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_数据_09


年龄因素不是非常明显的相关因素,但是我们也能明显的看出,在15岁以下这个区间,还是有大量的旅客活了下来(未成年人被优待)。所以我们对年龄段进行分割,看看是否有明显的特征。

这里我们使用了pandas的分区函数,将年龄数据划分为10个年龄段。


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_泰坦尼克号数据挖掘案例_10


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_泰坦尼克号数据挖掘案例_11


14岁以下的旅客生存率明显高于其它年龄段!

但是我们还有一些因素没有被包括进来,这些因素是非数字化的因素,包括Sex,Cabin和Embarked,它们没有被量化,而且有些还有确实值。这些因素或许也包含了重要信息,我们需要再对他们进行处理,加入到数据分析的过程中。

性别对生存率的影响


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_缺失值_12


女性更容易活下来

仓位对生存率的影响


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_泰坦尼克号数据挖掘案例_13


很显示,有些客舱的生存率还是很高的。


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_数据分析_14


客舱比较多,但也能清楚的看到,有些客舱生存率还是非常高的。这可能与这些仓位便于逃生有关。为了更加清晰地了解客舱对生存率的影响,我们还可以对相同统计结果的客舱进行合并(因为船舱是一种编号,所以合并相同数据分布的船舱不影响数据分析的结果)。¶


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_泰坦尼克号数据_15


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_数据分析_16


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_泰坦尼克号数据_17


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_缺失值_18


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_数据_19


这样我们就更清楚的看到哪些船舱生存率较高了,它们分别是01,02,03,12,04


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_缺失值_20


泰坦尼克号数据挖掘案例 数据分析泰坦尼克号_缺失值_21


这个图很有意思了,生存率竟然和登船地点有关系了,在C港登船的旅客生存率更高!

原因就不好解释了,可能在C港登船的女性或小孩子较多,也可能高等级乘客多。

进一步的工作

  • 在上述分析中,Age,Cabin和Embarked字段存在大量缺失值,影响了我们的数据分析结果。在后续的课程中我们将学习缺失值的填补方法,届时我们的分析结果会有明显的改观
  • 可视化分析能够帮助我们直观的洞察数据中蕴含的大量有价值的信息,但可视分析对于更为复杂规律的发现还是力有不逮。从数据中发现更有价值的规律,还需要我们使用更为强大的数据挖掘技术,比如我们可以建立泰坦尼克号旅客生存预测模型,来预测每位旅客的生存情况。这个需求目前在kaggle上已经有发布,最高的预测准确度已经达到90%以上。设想一下,如果我们在日常工作生活中,能够使用数据挖掘技术建立更多的预测模型,我们就可以在防震减灾、交通安全、医疗保健、经济建设等诸多领域有所贡献,用大数据技术来推进民生服务、经济发展和社会治理问题的解决。