学习数据分析也有段时间了,都只是使用一些简单图表来分析数据,本周将开启全新的学习旅程:机器学习(^_^偷笑)。
本次通过Kaggle所举办的泰坦尼克挑战赛 来机器学习分析并预测某一乘客的生存或死亡。Kaggle提供两部分数据,训练数据(train.csv)和测试数据(test.csv),我们通过对训练数据分析,构建一个模型,并用这个模型来加载预测数据,分析test.csv表中乘客生存或死亡。最后将分析结果导出提交到Kaggle上,Kaggle能根据你提交的数据评判得分并进行排名。
这是我提交的结果:
泰坦尼克号首航中与一座冰山相撞,事故造成2224名乘客和机组人员中的1502人死亡。大面积伤亡的原因之一是船上没有足够的救生艇供乘客和船员使用。尽管在沉船事故中幸存下来的人有一些运气成分,但有些人会比其他人更容易存活。
那么什么样的人在泰坦尼克号事件中更容易存活?
所以接下来,就是分析的过程了。
工欲善其事,必先利其器。所以按照惯例,我们先盘点下将使用到的工具
- Pandas Numpy
数据处理- Matplotlib、seaborn
数据可视化- sklearn
机器学习和预测建模- Jupyter Notebook
分析利器(也是本文写作的工具)
本次分析过程分为两部分进行,一是常规分析,二是机器学习分析。
直接去下篇:https://blog.csdn.net/wuzlun/article/details/80190331
# 导入本次用到的工具
# 使用该魔法,不用写plt.show()
%matplotlib inline
import warnings
# 忽略警告提示
warnings.filterwarnings('ignore')
warnings.filterwarnings('ignore', category=DeprecationWarning)
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号
# seaborn作为matplotlib的补充及扩展
import seaborn as sns
一、常规分析
通过对训练数据(train.csv)简单的分析,得出结论。
# 导入训练数据
data = pd.read_csv('./data/train.csv')
# 查看数据大小
# data.shape
print('训练数据有',data.shape[0],'行,',data.shape[1],'列')
# 观察数据结构,返回前6行
data.head(6)
训练数据有 891 行, 12 列
PassengerId | Survived | Pclass | Name | Sex | Age | SibSp | Parch | Ticket | Fare | Cabin | Embarked | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 0 | 3 | Braund, Mr. Owen Harris | male | 22.0 | 1 | 0 | A/5 21171 | 7.2500 | NaN | S |
1 | 2 | 1 | 1 | Cumings, Mrs. John Bradley (Florence Briggs Th… | female | 38.0 | 1 | 0 | PC 17599 | 71.2833 | C85 | C |
2 | 3 | 1 | 3 | Heikkinen, Miss. Laina | female | 26.0 | 0 | 0 | STON/O2. 3101282 | 7.9250 | NaN | S |
3 | 4 | 1 | 1 | Futrelle, Mrs. Jacques Heath (Lily May Peel) | female | 35.0 | 1 | 0 | 113803 | 53.1000 | C123 | S |
4 | 5 | 0 | 3 | Al |