如何使用python对泰坦尼克号幸存者进行数据分析与预测
更新时间:2023-07-24前言
泰坦尼克号是一艘备受瞩目的历史悲剧,发生于1912年的沉船事件。该事件导致大量的遇难者,但也有一些幸存者。通过对泰坦尼克号的乘客和船上各种因素的数据分析,我们可以探究幸存者与其他因素之间的关联,并尝试使用机器学习算法对乘客的幸存与否进行预测。
数据分析
首先,我们需要获取有关泰坦尼克号乘客的数据。幸运的是,有一个开放的数据集可供使用。我们可以使用Pandas库读取和处理数据。通过观察数据集,我们可以发现一些可能与幸存相关的特征,例如性别、年龄、票价等。
import pandas as pd # 读取数据集 data = pd.read_csv("titanic.csv") # 打印数据集前几行 print(data.head())
接下来,我们可以根据幸存者的性别进行分析。我们可以计算不同性别乘客的幸存率,并绘制成图表以更直观地展示。我们可以使用Matplotlib库来绘制图表。
import matplotlib.pyplot as plt # 按性别计算幸存率 survived_by_gender = data.groupby('Sex')['Survived'].mean() # 绘制柱状图 plt.bar(survived_by_gender.index, survived_by_gender.values) plt.xlabel('Gender') plt.ylabel('Survival Rate') plt.title('Survival Rate by Gender') plt.show()
我们还可以使用其他特征进行类似的分析。例如,我们可以计算不同年龄段乘客的幸存率,或者根据乘客舱位等级进行分析。通过这些分析,我们可以获得幸存与其他因素之间的关联,从而更好地了解发生在泰坦尼克号上的悲剧。
预测
除了数据分析,我们还可以使用机器学习算法对乘客的幸存与否进行预测。我们可以使用scikit-learn库来训练和评估机器学习模型。首先,我们需要对数据集进行一些预处理,例如处理缺失值、将分类特征转换为数值特征等。
from sklearn.preprocessing import LabelEncoder from sklearn.impute import SimpleImputer from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score # 处理缺失值 imputer = SimpleImputer(strategy='most_frequent') data['Age'] = imputer.fit_transform(data['Age'].values.reshape(-1, 1)) # 将分类特征转换为数值特征 le = LabelEncoder() data['Sex'] = le.fit_transform(data['Sex']) # 划分特征和标签 X = data[['Sex', 'Age', 'Fare']] y = data['Survived'] # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 训练决策树模型 model = DecisionTreeClassifier() model.fit(X_train, y_train) # 预测测试集 y_pred = model.predict(X_test) # 评估模型 accuracy = accuracy_score(y_test, y_pred) print('Accuracy:', accuracy)
通过训练和测试机器学习模型,我们可以得到预测的准确率作为模型性能的评估指标。这个准确率可以帮助我们判断模型的预测能力,并根据需要进行调整和改进。
总结
使用Python进行数据分析和预测是一种强大而灵活的方法。对于泰坦尼克号的幸存者数据,我们可以通过数据分析了解不同因素与幸存率之间的关联,同时使用机器学习模型对幸存与否进行预测。这些分析和预测可以帮助我们更深入地了解泰坦尼克号的历史事件,并从中获得有关乘客幸存概率的洞察。