首页 > 编程知识 正文

泰坦尼克号生存预测 Python

时间:2023-11-19 02:09:20 阅读:296557 作者:HODB

泰坦尼克号生存预测是一个经典的机器学习问题,通过使用 Python 编程语言,我们可以使用实际数据来预测乘客是否在泰坦尼克号灾难中幸存下来。下面将从数据清洗、特征工程和模型训练三个方面,详细阐述泰坦尼克号生存预测的实现过程。

一、数据清洗

在进行任何机器学习任务之前,我们需要对数据进行清洗。首先,我们从 CSV 文件中导入数据,并进行初步的探索性数据分析。然后,我们可以检查数据是否存在缺失值,如果存在缺失值,我们可以选择删除有缺失值的行或者使用合适的方法对缺失值进行填充。此外,我们还可以去除无关的特征,例如乘客ID等。

import pandas as pd

# 导入数据
data = pd.read_csv('titanic.csv')

# 检查缺失值
data.isnull().sum()

# 填充缺失值
data['Age'].fillna(data['Age'].mean(), inplace=True)

# 删除无关特征
data.drop(['PassengerId'], axis=1, inplace=True)

二、特征工程

特征工程是为了提取数据中的有用信息,以便于模型进行学习。在泰坦尼克号生存预测中,我们可以进行以下特征工程:

1. 对类别型特征进行独热编码,例如性别、船舱等级等。

2. 对数值型特征进行归一化处理,例如年龄、票价等。

3. 创建新的特征,例如家庭成员数量、是否单独旅行等。

from sklearn.preprocessing import OneHotEncoder, MinMaxScaler
from sklearn.compose import ColumnTransformer

# 定义要进行独热编码的特征
categorical_features = ['Sex', 'Pclass']

# 定义要进行归一化处理的特征
numeric_features = ['Age', 'Fare']

# 创建特征转换器
preprocessor = ColumnTransformer(
    transformers=[
        ('cat', OneHotEncoder(), categorical_features),
        ('num', MinMaxScaler(), numeric_features)])

# 应用特征转换器
X = data.drop(['Survived'], axis=1)
y = data['Survived']
X_transformed = preprocessor.fit_transform(X)

三、模型训练

在模型训练阶段,我们可以选择不同的机器学习算法,例如逻辑回归、决策树、随机森林等。我们可以使用交叉验证方法来评估模型的性能,并进行超参数调整以获得更好的预测结果。

from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression

# 创建逻辑回归模型
model = LogisticRegression()

# 使用交叉验证评估模型性能
scores = cross_val_score(model, X_transformed, y, cv=5)

# 输出交叉验证结果
print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))

总结

通过数据清洗、特征工程和模型训练,我们可以实现泰坦尼克号生存预测。这个任务涉及到了数据处理、特征提取和模型训练等多个步骤,通过不断优化算法和特征工程,我们可以得到更准确的预测结果。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。