「机器学习-1」5分钟简单粗暴入门版-泰坦尼克之灾
作者头像
  • 贾静华
  • 2020-03-14 10:57:09 2

使用泰坦尼克数据集进行生存预测

本文将介绍如何使用Kaggle提供的泰坦尼克数据集来预测乘客是否生还。数据集可以从Kaggle下载,但需要注册账号。如果你需要数据集,可以通过私信联系我获取。

这里将使用逻辑回归模型进行预测,逻辑回归是一种常用且简便的机器学习算法。

```python

!/usr/bin/env python3

-- coding: utf-8 --

""" 创建于 2020年3月4日 20:47:29 使用Kaggle上的泰坦尼克数据集预测生还情况 """

import pandas from sklearn.linear_model import LogisticRegression import statsmodels.api as sm

使用特定的列来读取数据集,排除姓名、年龄等非关键列

usecols = [0, 1, 2, 4, 6, 7, 9, 11] dataset = pandas.read_csv('train.csv', engine='python', usecols=usecols)

查看数据集的前几行和描述信息

print(dataset.head()) print(dataset.describe(include='all'))

将性别和登船地点转换为数字

sexmapping = {'male': 1, 'female': 0} dataset['Sexmap'] = dataset['Sex'].map(sex_mapping)

处理登船地点的缺失值,并将其转换为数字

fillembarked = dataset['Embarked'].fillna('4') dataset['Embarked'] = fillembarked embarkedmapping = {'S': 1, 'C': 2, 'Q': 3, '4': 4} dataset['Embarkedmap'] = dataset['Embarked'].map(embarked_mapping)

使用逻辑回归进行建模

formula = "Survived ~ Pclass + Sexmap + SibSp + Parch + Fare + Embarkedmap" model = sm.Logit.from_formula(formula, data=dataset) result = model.fit() print(result.summary())

加载测试数据集

testcols = [0, 1, 3, 5, 6, 8, 10] testset = pandas.read_csv('test.csv', engine='python', usecols=testcols)

对测试数据集中的性别和登船地点进行相同的转换

testset['Sexmap'] = testset['Sex'].map(sexmapping) testfillembarked = testset['Embarked'].fillna('4') testset['Embarked'] = testfillembarked testset['Embarkedmap'] = testset['Embarked'].map(embarkedmapping)

计算预测概率,并根据阈值判断生存状态

alpha = 0.5 testset["prob"] = result.predict(testset) print(testset)

根据预测概率得出最终预测结果

testset["Survived"] = testset.apply(lambda x: 1 if x["prob"] > alpha else 0, axis=1)

将预测结果保存到CSV文件

testset.to_csv('/Users/c5298237/Desktop/Result1.csv', index=0) ```

希望以上内容对你有所帮助,如有需要可以私信联系我获取数据集。

    本文来源:图灵汇
责任编辑: : 贾静华
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
泰坦尼克粗暴入门机器分钟简单学习
    下一篇