通过Logistic Regression预测Titanic乘客能否在事故中生还

本文通过Logistic Regression预测Titanic乘客的生还情况。数据预处理包括处理缺失值,如用中位数填充age,删除大部分缺失的cabin数据,用众数填充embarked。分析发现,票价(fare)、仓位(pclass)、性别(sex)和是否独自旅行(TravelAlone)对生还率影响显著。女性和一等舱乘客生还率较高,而独自旅行的乘客生还率较低。

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

  1. 导入工具库和数据
  2. 缺失数据处理
  3. 数据分析
  4. Logistic Regression

1. 导入工具库和数据

import numpy as np 
import pandas as pd 

from sklearn import preprocessing
import matplotlib.pyplot as plt 
plt.rc("font", size=14)
import seaborn as sns
sns.set(style="white") #设置seaborn画图的背景为白色
sns.set(style="whitegrid", color_codes=True)
# 将数据读入 DataFrame
df = pd.read_csv("./titanic_data.csv")

# 预览数据
df.head()
/ pclass survived name sex age sibsp parch ticket fare cabin embarked
0 1.0 1.0 Allen, Miss. Elisabeth Walton female 29.0000 0.0 0.0 24160 211.3375 B5 S
1 1.0 1.0 Allison, Master. Hudson Trevor male 0.9167 1.0 2.0 113781 151.5500 C22 C26 S
2 1.0 0.0 Allison, Miss. Helen Loraine female 2.0000 1.0 2.0 113781 151.5500 C22 C26 S
3 1.0 0.0 Allison, Mr. Hudson Joshua Creighton male 30.0000 1.0 2.0 113781 151.5500 C22 C26 S
4 1.0 0.0 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) female 25.0000 1.0 2.0 113781 151.5500 C22 C26 S
data = df.copy()

2. 缺失数据处理

# 查看数据集中各个特征缺失的情况
df.isnull().sum()
pclass         1
survived       1
name           1
sex            1
age          264
sibsp          1
parch          1
ticket         1
fare           2
cabin       1015
embarked       3
dtype: int64

2.1. age

# "age" 缺失的百分比 
print('"age" 缺失的百分比  %.2f%%' %((df['age'].isnull().sum()/df.shape[0])*100))
"age" 缺失的百分比  20.15%

年龄的分布情况:

ax = df["age"].hist(bins=15, color='teal', alpha=0.6)
ax.set(xlabel='age')
plt.xlim(-10,85)
plt.show()

在这里插入图片描述
age的偏度不为0, 这里选择使用中间值替代缺失值。
注: 在概率论和统计学中,偏度衡量实数随机变量概率分布的不对称性。偏度的值可以为正,可以为负或者甚至是无法定义。在数量上,偏度为负(负偏态)就意味着在概率密度函数左侧的尾部比右侧的长,绝大多数的值(不一定包括中位数在内)位于平均值的右侧。偏度为正(正偏态)就意味着在概率密度函数右侧的尾部比左侧的长,绝大多数的值(不一定包括中位数)位于平均值的左侧。偏度为零就表示数值相对均匀地分布在平均值的两侧,但不一定意味着其为对称分布。

# age的均值
print('The mean of "Age" is %.2f' %(df["age"].mean(skipna=True)))
# age的中间值
print('The median of "Age" is %.2f' %(df["age"].median(skipna=True)))
The mean of "Age" is 29.88
The median of "Age" is 28.00
data["age"].fillna(df["age"]
决策树(Decision Tree)是一种基于树状结构的机器学习算法,可用于解决二分类问题。在Titanic数据集中,我们可以使用决策树来预测乘客是否生还。 决策树通过逐步分割数据的特征,将数据分为不同的类别。为了构建决策树模型,我们需要选择一个合适的特征作为根节点,在Titanic数据集中,例如"性别"、"年龄"等特征可以作为根节点。根据不同特征的取值,递归地划分数据,并生成一个树状结构。最终我们可以使用这个决策树来对新的乘客进行生还预测。 神经网络(Neural Network)是一种模拟人脑神经元的计算模型,也可以用于二分类问题。在Titanic数据集中,我们可以通过训练神经网络来预测乘客是否生还。 神经网络由输入层、隐藏层和输出层组成。输入层接收Titanic数据集中的特征,隐藏层根据权重和激活函数进行计算,输出层产生二分类的预测结果。通过反向传播算法,我们可以调整网络中的权重和偏差,以最小化预测错误。 逻辑回归(Logistic Regression)是用于解决二分类问题的广义线性回归模型。在Titanic数据集中,我们可以使用逻辑回归来预测乘客是否生还。 逻辑回归通过使用逻辑函数(也称为Sigmoid函数)将线性回归结果映射到0到1之间的概率值。对于Titanic数据集中的每个特征,我们可以使用逻辑回归建立一个模型,该模型可以根据乘客的特征值来预测生还概率。 以上三种方法都可以用于解决Titanic数据集中的二分类问题。根据实际情况,我们可以根据特征的不同选择合适的算法,并根据模型的性能进行调整和优化,以提高预测的准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值