本文目录导读:
泰坦尼克号,这艘历史上最著名的邮轮,因1912年4月14日遭遇冰山撞击而沉没,导致1500多人丧生,时至今日,关于泰坦尼克号的研究仍在继续,其中泰坦尼克号数据集成为了研究的重要素材,本文将带领大家通过Python数据分析,深入了解泰坦尼克号乘客的生存状况、船票信息以及性别、年龄等因素对生存率的影响。
数据集介绍
泰坦尼克号数据集包含712个乘客的生存信息、船票信息以及乘客的基本信息,如年龄、性别、舱位等级等,数据集分为两部分:train.csv和test.csv,train.csv包含已知生存状态的乘客信息,test.csv包含未知生存状态的乘客信息。
数据分析工具
1、Python编程语言:Python是一种广泛应用的编程语言,具有简洁、易学、功能强大的特点,在数据分析领域有着广泛的应用。
2、Pandas库:Pandas是一个开源的数据分析工具,可以方便地进行数据处理、清洗和可视化。
图片来源于网络,如有侵权联系删除
3、Matplotlib库:Matplotlib是一个强大的绘图库,可以生成各种类型的图表,帮助展示数据分析结果。
4、Scikit-learn库:Scikit-learn是一个机器学习库,可以用于构建预测模型,分析乘客生存率。
数据分析过程
1、数据导入与清洗
使用Pandas库导入train.csv和test.csv数据集,对数据进行清洗,包括处理缺失值、去除重复数据等。
import pandas as pd 导入数据集 train_data = pd.read_csv('train.csv') test_data = pd.read_csv('test.csv') 数据清洗 train_data = train_data.drop_duplicates() test_data = test_data.drop_duplicates() 处理缺失值 train_data['Age'].fillna(train_data['Age'].mean(), inplace=True) test_data['Age'].fillna(test_data['Age'].mean(), inplace=True)
2、数据可视化
使用Matplotlib库对数据进行可视化,观察不同特征与生存率的关系。
import matplotlib.pyplot as plt 绘制年龄与生存率的关系图 plt.figure(figsize=(10, 6)) plt.scatter(train_data['Age'], train_data['Survived'], c='blue', label='Survived') plt.scatter(train_data[train_data['Survived'] == 0]['Age'], c='red', label='Died') plt.xlabel('Age') plt.ylabel('Survived') plt.title('Age vs. Survival') plt.legend() plt.show()
3、特征工程
通过对数据集的分析,我们可以发现以下特征与生存率有关:
图片来源于网络,如有侵权联系删除
- 性别(Sex)
- 年龄(Age)
- 舱位等级(Pclass)
- 婚姻状况(SibSp)和(Parch)
我们对这些特征进行编码和预处理。
性别编码 train_data['Sex'] = train_data['Sex'].map({'male': 0, 'female': 1}) test_data['Sex'] = test_data['Sex'].map({'male': 0, 'female': 1}) 年龄分组 bins = [0, 18, 35, 50, 65, 80] labels = ['Child', 'Young', 'Adult', 'Middle-aged', 'Senior'] train_data['Age_group'] = pd.cut(train_data['Age'], bins=bins, labels=labels) test_data['Age_group'] = pd.cut(test_data['Age'], bins=bins, labels=labels) 舱位等级编码 train_data['Pclass'] = train_data['Pclass'].map({1: 0, 2: 1, 3: 2}) test_data['Pclass'] = test_data['Pclass'].map({1: 0, 2: 1, 3: 2}) 婚姻状况编码 train_data['Family_size'] = train_data['SibSp'] + train_data['Parch'] + 1 test_data['Family_size'] = test_data['SibSp'] + test_data['Parch'] + 1
4、模型训练与预测
使用Scikit-learn库中的逻辑回归模型对数据进行训练,预测乘客的生存率。
from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split 分割数据集 X = train_data[['Sex', 'Age_group', 'Pclass', 'Family_size']] y = train_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) 预测生存率 predictions = model.predict(test_data[['Sex', 'Age_group', 'Pclass', 'Family_size']])
5、结果分析
图片来源于网络,如有侵权联系删除
通过对模型的训练和预测,我们可以得出以下结论:
- 女性乘客的生存率高于男性乘客。
- 年轻乘客和中年乘客的生存率高于老年乘客。
- 舱位等级越高,生存率越高。
- 家庭成员越多,生存率越高。
这些结论有助于我们更好地了解泰坦尼克号乘客的生存状况,以及不同因素对生存率的影响。
本文通过Python数据分析,对泰坦尼克号数据集进行了深入挖掘,分析了乘客的生存状况、船票信息以及性别、年龄等因素对生存率的影响,通过可视化、特征工程和模型训练等方法,我们得出了有价值的结论,为后续研究提供了有益的参考,在今后的研究中,我们可以进一步探讨其他因素对生存率的影响,如乘客的职业、财富等。
标签: #泰坦尼克号数据集分析python
评论列表