7000字,Python数据分析:泰坦尼克号中女生更容易生还?

本文使用Python进行泰坦尼克号数据挖掘,分析乘客生还情况。研究发现,女性、头等舱乘客、小孩生还概率较高。通过数据预处理、特征工程和多种机器学习模型(如逻辑回归、SVM、随机森林)的对比,揭示决策树和随机森林在该问题上表现最优。
摘要由CSDN通过智能技术生成

作者 | Peter
来源 | 尤而小屋

Titanic数据是一份经典数据挖掘的数据集,本文介绍的是kaggle排名第一的案例分享。原notebook地址:

https://www.kaggle.com/startupsci/titanic-data-science-solutions

图片

排名

看下这个案例的排名情况:

第一名和第二名的差距也不是很多,而且第二名的评论远超第一名;有空再一起学习下第二名的思路。

通过自己的整体学习第一名的源码,前期对字段的处理很细致,全面;建模的过程稍微比较浅。

数据集文末会给出!

数据探索

导入库

导入整个过程中需要的三类库:

  • 数据处理

  • 可视化库

  • 建模库

# 数据处理
import pandas as pd
import numpy as np
import random as rnd

# 可视化
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline

# 模型
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC, LinearSVC
from sklearn.ensemble import RandomForestClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.linear_model import Perceptron
from sklearn.linear_model import SGDClassifier
from sklearn.tree import DecisionTreeClassifier

导入数据

导入数据后查看数据的大小

图片

字段信息

查看全部的字段:

train.columns

Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp',
       'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'],
      dtype='object')

下面是字段的具体含义:

  • PassengerId:用户id

  • survival:是否生还,0-否,1-是

  • pclass:舱位,1-头等舱,2-二等,3-三等

  • name:姓名

  • sex:性别

  • Age:年龄

  • sibsp:在船上的兄弟/配偶数

  • parch:在船上父母/孩子数

  • ticket:票号

  • fare:票价

  • cabin:Cabin number;客舱号

  • embarked:登船地点

字段分类

本案例中的数据主要是有两种类型:

  • 分类型Categorical: Survived, Sex, and Embarked. Ordinal: Pclass

  • 连续型Continous: Age, Fare. Discrete: SibSp, Parch

缺失值

查看训练集和测试集的缺失值情况:

同时也可以通过info函数来查数据的基本信息:

图片

数据假设

作者基于数据的基本信息和常识,给出了自己的一些假设和后面的数据处理和分析方向:

删除字段

  • 本项目主要是考察其他字段和Survival字段的关系

  • 重点关注字段:Age、Embarked

  • 删除字段:对数据分析没有作用,直接删除的字段:Ticket(票号)、Cabin(客舱号)、PassengerId(乘客号)、Name(姓名)

修改、增加字段

  • 增加Family:根据Parch(船上的兄弟姐妹个数) 和 SibSp(船上的父母小孩个数)

  • 从Name字段中提取Title作为新特征

  • 将年龄Age字段转成有序的分类特征

  • 创建一个基于票价Fare 范围的特征

猜想

  • 女人(Sex=female)更容易生还

  • 小孩(Age>?)更容易生还

  • 船舱等级高的乘客更容易生还(Pclass=1)

统计分析

主要是对分类的变量Sex、有序变量Pclss、离散型SibSp、Parch进行分析来验证我们的猜想

1、船舱等级(1-头等,2-二等,3-三等)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值