泰坦尼克号生存预测(python)

1 数据探索

对数据进行一个整体的理解

1.1 查看数据都有一些什么特征

import pandas as pd
import seaborn as sns
%matplotlib inline
titanic = pd.read_csv(‘G:\\titanic\\train.csv‘)titanic.sample(10)

获取数据的10行记录进行观察,初步了解数据的组成,可以看到Age、Cabin里面是存在缺失值的,在进一步理解数据的统计量后再进行数据处理,观察各特征的最大最小值等,可以发现这些数据比较合理,不存在特别的异常值。

print(titanic.describe())#查看常用的统计量

2 数据分析\处理

Name和Ticket依据基本认知来看,与乘客是否有机会存活相关不大,因此暂时不理会这两个特征。由于Cabin这一个特征缺失值比较多,参考价值低,因此同样暂时搁置。

2.1 Sex特征处理

Sex分为female和male,但是一些算法模型只能识别数字,所以将他们分别用0和1表示

titanic.Sex = titanic.Sex.replace("male",1)
titanic.Sex = titanic.Sex.replace("female",0)

2.2 Age特征处理

Age这里存在缺失值,有年纪记录的有714行,这里使用age的平均数来进行填充缺失值

titanic.Age = titanic["Age"].fillna(titanic.Age.mean())

2.3 Embarked特征处理

将Embarked的S C Q分别替换为0 1 2

titanic.Embarked = titanic.Embarked.replace("S",0)
titanic.Embarked = titanic.Embarked.replace("C",1)
titanic.Embarked = titanic.Embarked.replace("Q",2)

查看Embarked特征统计量发现,他存在缺失值,这里用众数进行替换缺失值

titanic.Embarked = titanic["Embarked"].fillna(0)

3 特征工程

通过热力图观察各特征与Survived之间的相关性

info = ["Survived","PassengerId","Pclass","Sex","Age","SibSp","Parch","Fare","Embarked"]
sns.heatmap(titanic[info].corr(),annot =True,vmin = 0, vmax = 1)

根据热力图可以看出Pclass、Sex、Fare、Embarked与Survived相关性比较强,所以将这些特征代入机器学习模型中进行学习

4 模型学习/评估

import numpy as np
from sklearn import linear_model
from sklearn.model_selection import cross_val_scorex = titanic[["Pclass","Sex","Age","Fare","Embarked"]]y = titanic["Survived"]

这里采用交叉检验的方法,最后取平均值来对模型进行评估

4.1 逻辑回归

lm = linear_model.LogisticRegression()
scores = cross_val_score(lm,x,y,cv = 5,scoring = "accuracy")
print(np.mean(scores))

4.2 k近邻

from sklearn import neighbors
knn = neighbors.KNeighborsClassifier(10,weights = "uniform")
scores = cross_val_score(knn,x,y,cv = 5,scoring = "accuracy")
print(np.mean(score)

4.3 决策树

from sklearn import tree
dt = tree.DecisionTreeClassifier()
scores = cross_val_score(dt,x,y,cv = 5,scoring = "accuracy")
print(np.mean(scores))

4.4 随机森林

from sklearn import ensemble
rf = ensemble.RandomForestClassifier(50)
scores = cross_val_score(rf,x,y,cv = 5,scoring = "accuracy")
print(np.mean(scores))

4.5 GBDT

gbdt = ensemble.GradientBoostingClassifier()
scores = cross_val_score(gbdt,x,y,cv = 5,scoring = "accuracy")
print(np.mean(scores))

5 总结

经过数据探索、数据处理、常用机器学习模型比较,最后可以发现GBDT在泰坦尼克号生存预测上面表现最好,准确率能达到82%以上。 

原文地址:https://www.cnblogs.com/islvgb/p/9567074.html

时间: 2024-08-30 10:56:53

泰坦尼克号生存预测(python)的相关文章

泰坦尼克号生存预测分析

此文发表在简书,复制过来,在下方放上链接. https://www.jianshu.com/p/a09b4dc904c9 泰坦尼克号生存预测 1.背景与挖掘目标 “泰坦尼克号”的沉没是历史上最臭名昭著的海难之一.1912年4月15日,泰坦尼克号在处女航中与冰山相撞后沉没,2224名乘客和机组人员中有1502人死亡.这场耸人听闻的悲剧震惊了国际社会,并导致了更好的船舶安全条例. 造成沉船事故的原因之一是没有足够的救生艇供乘客和机组人员使用.虽然在沉没中幸存了一些运气,但一些人比其他人更容易生存,如

泰坦尼克号生存预测

从Kaggle官网下载数据:train .test. 赛事描述: 泰坦尼克号的沉没是历史上最臭名昭著的沉船之一.1912年4月15日,泰坦尼克号在处女航时与冰山相撞沉没,2224名乘客和船员中有1502人遇难.这一耸人听闻的悲剧震惊了国际社会,并导致更好的船舶安全法规.船难造成如此巨大的人员伤亡的原因之一是船上没有足够的救生艇供乘客和船员使用.虽然在沉船事件中幸存下来是有运气因素的,但有些人比其他人更有可能存活下来.比如妇女.儿童和上层阶级. 在此次比赛中,我们需要参赛者预测哪一类人更有可能存活

机器学习第一步——用逻辑回归及随机森林实现泰坦尼克号的生存预测

1.实验背景 本次实验是Kaggle上的一个入门比赛——Titanic: Machine Learning from Disaster.比赛选择了泰坦尼克号海难作为背景,并提供了样本数据及测试数据,要求我们根据样本数据内容建立一个预测模型,对于测试数据中每个人是否获救做个预测.样本数据包括891条乘客信息及获救情况,测试数据有418条乘客信息.样本数据的样例如下: Passenger:乘客唯一识别id Survived:是否存活,0为否,1为是 Pclass:船舱等级,1.2.3等 Name:姓

利用python进行泰坦尼克生存预测——数据探索分析

最近一直断断续续的做这个泰坦尼克生存预测模型的练习,这个kaggle的竞赛题,网上有很多人都分享过,而且都很成熟,也有些写的非常详细,我主要是在牛人们的基础上,按照数据挖掘流程梳理思路,然后通过练习每一步来熟悉应用python进行数据挖掘的方式. 数据挖掘的一般过程是:数据预览-->数据预处理(缺失值.离散值等)-->变量转换(构造新的衍生变量)-->数据探索(提取特征)-->训练-->调优-->验证 1 数据预览 1.1 head() 预览数据集的前面几条数据可以大致

Python机器学习:泰坦尼克号获救预测一

数据集下载地址: https://github.com/fayduan/Kaggle_Titanic/blob/master/train.csv 视频地址: http://study.163.com/course/courseLearn.htm?courseId=1003551009#/learn/video?lessonId=1004052093&courseId=1003551009 一.项目概要 1.应用 模式识别.数据挖掘(核心).统计学习.计算机视觉.语言识别.自然语言处理 2.模式.

用不同方法在R中进行泰坦尼克号幸存者预测练习

现有数据维度:PassengerId survival 生存 0 = No, 1 = Yespclass 票类 社会经济地位,1 = Upper, 2 = Middle, 3 = Lowersex 性别 Age 年龄 sibsp 兄弟姐妹/配偶在泰坦尼克号上 parch 父母/孩子在泰坦尼克号上 ticket 票号fare 客运票价 cabin 舱位数量embarked 始发港 C = Cherbourg, Q = Queenstown, S = Southampton 读取数据,可知船上共有8

数据挖掘竞赛kaggle初战——泰坦尼克号生还预测

1.题目 这道题目的地址在https://www.kaggle.com/c/titanic,题目要求大致是给出一部分泰坦尼克号乘船人员的信息与最后生还情况,利用这些数据,使用机器学习的算法,来分析预测另一部分人员最后是否生还.题目练习的要点是语言和数据分析的基础内容(比如python.numpy.pandas等)以及二分类算法. 数据集包含3个文件:train.csv(训练数据).test.csv(测试数据).gender_submission.csv(最后提交结果的示例,告诉大家提交的文件长什

kaggle入门之Titanic生存预测

比赛说明 RMS泰坦尼克号沉没是历史上最臭名昭着的沉船之一.1912年4月15日,在她的处女航中,泰坦尼克号在与冰山相撞后沉没,在2224名乘客和机组人员中造成1502人死亡.这场耸人听闻的悲剧震惊了国际社会,并为船舶制定了更好的安全规定. 造成海难失事的原因之一是乘客和机组人员没有足够的救生艇.尽管幸存下沉有一些运气因素,但有些人比其他人更容易生存,例如妇女,儿童和上流社会. 在这个挑战中,我们要求您完成对哪些人可能存活的分析.特别是,我们要求您运用机器学习工具来预测哪些乘客幸免于悲剧. 目标

科比投球预测-python实例

曲线拟合多重共线性虚拟变量"导致的多重共线性在机器学习中的影响大吗?老师我在网上下的 kaggle 的数据解压失败了 老师重点讲解一下随机森林和SVM还有adaboost tensorflow 陈杰链接:http://pan.baidu.com/s/1i4PNJlr 密码:fz7e 简述一下多重共线性在机器学习中的影响? 数据来了怎么提特征极坐标 欧式距离:每个特征相减的平方再根号,woc是数学后来在加数据的方法? 数据:训练集(demo).测试集(测试demo是否正确)独热编码:one-hot