您好,登录后才能下订单哦!
泰坦尼克号数据集是机器学习领域中最著名的数据集之一,它包含了泰坦尼克号上乘客的信息以及他们是否幸存。通过Python,我们可以对这个数据集进行深入的分析,并构建预测模型来预测乘客的幸存情况。本文将介绍如何使用Python进行泰坦尼克号幸存者的数据分析和预测。
首先,我们需要加载泰坦尼克号数据集。这个数据集通常可以从Kaggle或其他数据科学资源网站获取。数据集通常包含以下字段:
PassengerId
: 乘客IDSurvived
: 是否幸存(0 = 否,1 = 是)Pclass
: 乘客舱位等级(1 = 头等舱,2 = 二等舱,3 = 三等舱)Name
: 乘客姓名Sex
: 乘客性别Age
: 乘客年龄SibSp
: 兄弟姐妹/配偶的数量Parch
: 父母/子女的数量Ticket
: 船票编号Fare
: 船票价格Cabin
: 客舱编号Embarked
: 登船港口(C = Cherbourg, Q = Queenstown, S = Southampton)我们可以使用pandas
库来加载和查看数据:
import pandas as pd
# 加载数据集
url = "https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv"
df = pd.read_csv(url)
# 查看前几行数据
df.head()
在进行分析之前,我们需要对数据进行清洗。数据清洗通常包括处理缺失值、去除无关特征、转换数据类型等。
我们可以使用isnull()
函数来查看数据集中是否有缺失值:
df.isnull().sum()
常见的处理缺失值的方法包括删除含有缺失值的行、填充缺失值等。例如,我们可以用中位数填充Age
列的缺失值,用众数填充Embarked
列的缺失值:
# 用中位数填充Age列的缺失值
df['Age'].fillna(df['Age'].median(), inplace=True)
# 用众数填充Embarked列的缺失值
df['Embarked'].fillna(df['Embarked'].mode()[0], inplace=True)
有些特征可能对预测幸存者没有帮助,例如PassengerId
、Name
、Ticket
和Cabin
。我们可以将这些特征从数据集中删除:
df.drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1, inplace=True)
有些特征需要转换为数值类型,以便于模型处理。例如,我们可以将Sex
列转换为数值类型(0 = 男性,1 = 女性),并将Embarked
列进行独热编码:
# 将Sex列转换为数值类型
df['Sex'] = df['Sex'].map({'male': 0, 'female': 1})
# 对Embarked列进行独热编码
df = pd.get_dummies(df, columns=['Embarked'], drop_first=True)
在数据清洗之后,我们可以对数据进行一些基本的分析,以了解数据的分布和特征之间的关系。
我们可以计算幸存者的比例:
survived_ratio = df['Survived'].mean()
print(f"幸存者比例: {survived_ratio:.2%}")
我们可以按舱位等级分组,计算每个舱位的幸存率:
survived_by_class = df.groupby('Pclass')['Survived'].mean()
print(survived_by_class)
我们可以绘制年龄与幸存率的关系图:
import seaborn as sns
import matplotlib.pyplot as plt
sns.boxplot(x='Survived', y='Age', data=df)
plt.title('年龄与幸存率的关系')
plt.show()
在完成数据分析后,我们可以构建一个机器学习模型来预测乘客的幸存情况。常用的模型包括逻辑回归、随机森林、支持向量机等。
首先,我们需要将数据集划分为训练集和测试集:
from sklearn.model_selection import train_test_split
# 特征和目标变量
X = df.drop('Survived', axis=1)
y = df['Survived']
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
我们可以使用逻辑回归模型进行训练:
from sklearn.linear_model import LogisticRegression
# 初始化模型
model = LogisticRegression()
# 训练模型
model.fit(X_train, y_train)
我们可以使用准确率、混淆矩阵等指标来评估模型的性能:
from sklearn.metrics import accuracy_score, confusion_matrix
# 预测测试集
y_pred = model.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率: {accuracy:.2%}")
# 混淆矩阵
conf_matrix = confusion_matrix(y_test, y_pred)
print("混淆矩阵:")
print(conf_matrix)
通过本文的介绍,我们学习了如何使用Python对泰坦尼克号数据集进行数据清洗、分析和预测。我们使用逻辑回归模型对乘客的幸存情况进行了预测,并评估了模型的性能。当然,这只是数据分析的一个简单示例,实际应用中还可以尝试更多的特征工程和模型调优方法,以提高预测的准确性。
希望本文对你理解如何使用Python进行数据分析和预测有所帮助!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。