Titanic 生存预测(上)

本文通过Titanic数据集介绍数据分析和机器学习流程,包括数据导入、探索、特征分析如年龄、票价分布、性别与生存率的关系等,揭示影响生存的因素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

欢迎来到我的学习记录博客

最近学习pandas的时候,体会到如果一直看大量教程,不仅磨灭学习热情还会有抓不住重点没有整体认识的感觉,不如直接上手实例数据,这样对数据分析甚至机器学习的整套流程以及pandas的常用功能都会有基本的了解。
所以我以Kaggle中经典的Titanic数据集数据分析作为我的第一篇优快云文章。

在这篇博客文章中,我将讲述在著名的泰坦尼克数据集上创建一个机器学习模型的整个过程,这个数据集被世界各地的许多人使用。它提供泰坦尼克号上乘客的命运信息,根据经济地位(等级)、性别、年龄和生存状况进行汇总。

RMS Titanic(背景)

皇家邮轮泰坦尼克号是一艘英国客轮,1912年4月15日凌晨沉没在北大西洋,在从南安普顿到纽约的处女航中撞上冰山。据估计,船上有2224名乘客和船员,超过1500人死亡,这是现代历史上和平时期最致命的商业海上灾难之一。泰坦尼克号是当时最大的水上游轮,也是白星航运公司运营的三艘奥林匹克级远洋客轮中的第二艘。
在这里插入图片描述

Importing the Libraries

#linear algebra
import numpy as np
#data processing
import pandas as pd
#data visualization
import seaborn as sns
from matplotlib import pyplot as plt
from matplotlib import style

#algorithms
from sklearn import linear_model
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.linear_model import Perceptron
from sklearn.linear_model import SGDClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.svm import SVC,LinearSVC
from sklearn.naive_bayes import GaussianNB

Getting the Data

test_df = pd.read_csv("test.csv")
train_df = pd.read_csv("train.csv")

Data Exploration

train_df.info()

运行结果:
运行结果
训练集有891个例子和11个特征+目标变量(幸存)。其中2个是浮点数,5个是整数,5个是对象。

train_df.describe()

在这里插入图片描述在上面我们可以看到38%的火车在泰坦尼克号上幸存了下来。我们还可以看到乘客的年龄在0.4到80岁之间。除此之外,我们已经可以检测到一些包含缺失值的特性,比如“年龄”特性。

train_df.head(8)

在这里插入图片描述从上面的表格中,我们可以注意到一些事情。首先,我们需要把很多特征转换成数值特征,这样机器学习算法才能处理它们。此外,我们可以看到这些特性具有不同的范围,我们需要将这些范围转换为大致相同的范围。我们还可以发现更多的特性,这些特性包含我们需要处理的缺失值(NaN = not a number)。

让我们更详细地看看哪些数据实际上是缺失的:

total=train_df.isnull().sum().sort_values(ascending=False)
p1=round(train_df.isnull().sum()/train_df.isnull().count()*100,1)
p2=p1.sort_values(ascending=False)
missing_data=pd.concat([total,p2],axis=1,keys=['Total','%'])
missing_data.head(5)

在这里插入图片描述Embarked特征只有两个缺失值,可以很容易地填补。要处理“年龄”特性要复杂得多,它有177个缺失的值。“Cabin”特征需要进一步的调查,但看起来我们可能想要把它从数据集中删除,因为它的77%是失踪的。

>>>train_df.columns.values
array(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp','Parch', 'Ticket', &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值