0
点赞
收藏
分享

微信扫一扫

python泰坦尼克号幸存者

紫荆峰 2024-09-28 阅读 16

Python与泰坦尼克号幸存者分析:数据科学的魅力

在数据科学的世界中,Python因为其易用性和丰富的库而受到广泛欢迎。数据分析师和科学家们常常使用Python来处理和可视化数据。本文将通过一个有趣的实例,即“泰坦尼克号幸存者分析”,来展示Python在数据分析中的应用。

1. 背景介绍

泰坦尼克号是历史上著名的邮轮,它于1912年在北大西洋沉没。此次悲剧导致1500多人遇难,因此关于幸存者的信息非常引人关注。通过分析这些数据,我们可以发现幸存者的特征,比如性别、年龄、舱位等,帮助我们引导关于生存率的讨论。

2. 准备数据

首先,确保你有正确的数据集。我们将使用Kaggle上著名的泰坦尼克号数据集。你可以下载并将数据放在你的工作目录中。数据集包含以下几个重要字段:

  • PassengerId: 乘客的编号
  • Pclass: 舱位
  • Name: 乘客姓名
  • Sex: 性别
  • Age: 年龄
  • SibSp: 兄弟姐妹/配偶数
  • Parch: 父母/子女数
  • Fare: 票价
  • Survived: 幸存状态(0=未幸存,1=幸存)

3. 数据分析步骤

接下来,我们使用Python的数据分析库,如pandasmatplotlib,来进行数据清洗和可视化。

3.1 数据加载

首先,我们加载必要的库并读取数据:

import pandas as pd
import matplotlib.pyplot as plt

# 读取数据
data = pd.read_csv('titanic.csv')

3.2 数据清洗

在分析之前,我们需要处理缺失值和不必要的字段:

# 删除不必要的字段
data = data.drop(columns=['PassengerId', 'Name', 'Ticket', 'Cabin'])

# 填补缺失年龄数据
data['Age'].fillna(data['Age'].median(), inplace=True)

3.3 数据可视化

我们可以开始可视化幸存者的数据,以便更好地理解。比如,通过性别和舱位来分析幸存者比例:

# 展示男女幸存者比例
survived_gender = data.groupby('Sex')['Survived'].mean()
survived_gender.plot(kind='bar', title='Gender Survival Rate')
plt.ylabel('Survival Rate')
plt.show()

# 展示舱位幸存者比例
survived_class = data.groupby('Pclass')['Survived'].mean()
survived_class.plot(kind='bar', title='Class Survival Rate')
plt.ylabel('Survival Rate')
plt.show()

4. 数据建模

如果我们想通过性别、年龄和舱位来预测谁会存活下来,我们可以使用机器学习模型。这里我们将使用scikit-learn进行简单的逻辑回归分析。

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

# 特征选择和数据分割
features = data[['Sex', 'Age', 'Pclass']]
features['Sex'] = features['Sex'].map({'male': 0, 'female': 1}) # 将性别转为数值
X = features.fillna(0) # 填补特征中的缺失值
y = data['Survived']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 模型训练与评估
model = LogisticRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

print(模型准确率:, accuracy_score(y_test, y_pred))

5. 数据模型关系图

为了更好地理解数据之间的关系,我们可以创建一个实体关系图。下面是通过Mermaid语法生成的数据模型词典,展示在不同特征之间的关系:

erDiagram
Passenger {
int PassengerId PK 乘客编号
string Sex 性别
int Age 年龄
int Pclass 舱位
int Survived 幸存状态
}

Relationship {
Passenger ||--o| Ticket : has
Passenger ||--o| Cabin : has
}

6. 结论

通过这个简单的例子,我们了解到如何使用Python进行数据分析和建模。泰坦尼克号幸存者数据集是一个经典案例,能够帮助初学者熟悉数据清洗、可视化和建模的基础。希望这篇文章能够激发你对数据科学的兴趣,鼓励你进行更深入的研究。数据的力量在于它的故事,通过合适的方法和工具,我们可以将这些故事带给更多的人。

举报

相关推荐

0 条评论