泰坦尼克号幸存者预测

本文介绍了利用Python和随机森林算法对泰坦尼克号乘客生存数据进行分析和预测。首先,加载数据集,查看train.csv和test.csv的结构。接着,计算男性和女性的生存率。然后,通过随机森林建立生存预测模型,并在测试集上生成预测结果,最后将预测结果保存到CSV文件中。
摘要由CSDN通过智能技术生成

本文所有的代码及数据均存放与https://github.com/MADMAX110/Titanic
泰坦尼克号幸存者预测挑战赛是一个非常受欢迎的机器学习实践项目。这是 Kaggle.com 上最受欢迎的比赛之一。请添加图片描述
数据中有3个文件:train.csv,test.csv,和gender_submit .csv。
train.csv包含一部分乘客的详细信息。
test.csv没有显示是否幸存——这些信息是隐藏的,你需要预测是否幸存。
gender_submit .csv文件是一个示例,你的输出文件格式应该和它一样。
首先遍历一下titianic的所有文件并输出

import numpy as np 
import pandas as pd 
import os
for dirname, _, filenames in os.walk('titanic'):
    for filename in filenames:
        print(os.path.join(dirname, filename))

可以看到数据集有三个文件
在这里插入图片描述
再来看一下train.csv的文件结构

train_data = pd.read_csv("titanic/train.csv")
train_data.head()

在这里插入图片描述
再看一下test.csv的文件结构

test_data = pd.read_csv("titanic/test.csv")
test_data.head()

在这里插入图片描述
可以计算一下男人和女人各自的生存率

women = train_data.loc[train_data.Sex == 'female']["Survived"]
rate_women = sum(women) / len(women)
print("% of women who survived:", rate_women)

men = train_data.loc[train_data.Sex == 'male']["Survived"]
rate_men = sum(men) / len(men)
print("% of men who survived:", rate_men)

使用随机森林算法构建泰坦尼克生存预测模型,并在测试集上得到预测结果。

from sklearn.ensemble import RandomForestClassifier

#训练集标签
y = train_data["Survived"]
#特征名
features = ["Pclass", "Sex", "SibSp", "Parch"]
#训练集特征
X = pd.get_dummies(train_data[features])
#测试集特征
X_test = pd.get_dummies(test_data[features])

model = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=1)
#模型训练
model.fit(X, y)
#在测试集上预测
predictions = model.predict(X_test)

#模型训练
output = pd.DataFrame({'PassengerId': test_data.PassengerId, 'Survived':predictions})
#在训练集上预测
output.to_csv('result.csv', index=False)

该代码使用随机森林算法构建分类模型,主要步骤为:

  1. 指定训练标签y和特征名features
  2. 使用get_dummies进行onehot编码,获得训练特征X和测试特征X_test
  3. 初始化随机森林模型,设置100棵树,最大深度为5
  4. 调用fit方法在训练数据上训练模型
  5. 调用predict在测试集上预测,得到预测结果predictions

所以,这段代码实现了使用随机森林算法训练分类模型并在新数据上进行预测的流程。随机森林是一个非常实用的机器学习算法,可以处理分类与回归问题,获得较高的预测准确度。
在这个泰坦尼克生存预测的例子中,我们使用随机森林构建了一个初步的分类模型,并在测试集上得到了生存预测结果,这为我们进一步优化模型和特征工程提供了基础。我们还可以评估在测试集上的准确度、AUC等指标,判断模型的表现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值