第2关 填充缺失值

import pandas as pd
import numpy as npdef process_nan_value(data):'''处理data中缺失值,有缺失值的特征为`Age`,`Cabin`,`Embarked`。:param data: 训练集的特征,类型为DataFrame:return:处理好缺失值后的训练集特征,类型为DataFrame'''#********* Begin *********#data['Age'].replace(np.nan,np.nanmedian(data['Age']),inplace=True)#data['Age'].replace(np.nan,np.nanmedian(data['Age']),inplace=True)data.drop(labels='Cabin',axis=1,inplace=True)data['Embarked'].replace(np.nan,'S',inplace=True)return data#********* End *********#

第3关 特征工程与生还预测

import pandas as pd
import numpy as np
import sklearn
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import RandomForestRegressor#********* Begin *********#
titanic = pd.read_csv('./train.csv')
def set_missing_ages(df):# 把已有的数值型特征取出来丢进Random Forest Regressor中age_df = df[['Age', 'Fare', 'Parch', 'SibSp', 'Pclass']]# 乘客分成已知年龄和未知年龄两部分known_age = age_df[age_df.Age.notnull()].valuesunknown_age = age_df[age_df.Age.isnull()].values# y即目标年龄y = known_age[:, 0]# X即特征属性值X = known_age[:, 1:]# fit到RandomForestRegressor之中rfr = RandomForestRegressor(random_state=0, n_estimators=2000, n_jobs=-1)rfr.fit(X, y)# 用得到的模型进行未知年龄结果预测predictedAges = rfr.predict(unknown_age[:, 1::])# 用得到的预测结果填补原缺失数据df.loc[(df.Age.isnull()), 'Age'] = predictedAgesreturn dftitanic = set_missing_ages(titanic)dummies_Embarked = pd.get_dummies(titanic['Embarked'], prefix= 'Embarked')dummies_Sex = pd.get_dummies(titanic['Sex'], prefix= 'Sex')dummies_Pclass = pd.get_dummies(titanic['Pclass'], prefix= 'Pclass')df = pd.concat([titanic, dummies_Embarked, dummies_Sex, dummies_Pclass], axis=1)df.drop(['Pclass', 'Name', 'Sex', 'Ticket', 'Cabin', 'Embarked'], axis=1, inplace=True)# print(df)train_label = df['Survived']train_titanic = df.drop('Survived', 1)titanic_test = pd.read_csv('./test.csv')
titanic_test = set_missing_ages(titanic_test)dummies_Embarked = pd.get_dummies(titanic_test['Embarked'], prefix= 'Embarked')dummies_Sex = pd.get_dummies(titanic_test['Sex'], prefix= 'Sex')dummies_Pclass = pd.get_dummies(titanic_test['Pclass'], prefix= 'Pclass')df_test = pd.concat([titanic_test,dummies_Embarked, dummies_Sex, dummies_Pclass], axis=1)df_test.drop(['Pclass', 'Name', 'Sex', 'Ticket', 'Cabin', 'Embarked'], axis=1, inplace=True)
#model = RandomForestClassifier(random_state=1, n_estimators=10, min_samples_split=2, min_samples_leaf=1)
model = RandomForestClassifier(n_estimators=10)
model.fit(train_titanic, train_label)predictions = model.predict(df_test)result = pd.DataFrame({'Survived':predictions.astype(np.int32)})result.to_csv("./predict.csv", index=False)#********* End *********#

结果不是很稳定,多运行几次,准确率能到80以上

头哥教学平台-泰坦尼克号生还预测相关推荐

  1. 头哥教学平台-泰坦尼克生还预测-可视化与探索性数据分析

    第1关 存活率与性别和船舱等级之间的关系 import pandas as pd import numpy as np import seaborn as sns import warnings wa ...

  2. Kaggle实战入门:泰坦尼克号生还预测(基础版)

    Kaggle实战入门:泰坦尼克号生还预测 1. 加载数据 2. 特征工程 3. 模型训练 4. 模型部署 泰坦尼克号(Titanic),又称铁达尼号,是当时世界上体积最庞大.内部设施最豪华的客运轮船, ...

  3. Kaggle实战入门:泰坦尼克号生还预测(进阶版)

    Kaggle实战入门:泰坦尼克号生还预测 1. 加载数据 2. 特征工程 3. 模型训练 4. 模型部署 Kaggle实战入门:泰坦尼克号生还预测(基础版)对机器学习的全流程进行了总体介绍.本文继续以 ...

  4. 2泰坦尼克号生还预测 四种不同方法

    1.泰坦尼克号生还预测 准备工作 泰坦尼克号生还预测是一个非常典型的联系项目.数据集是公开数据集. 1.1 环境准备 numpy=1.14.5 pandas=0.22.0 sklearn=0.19.2 ...

  5. 【勇敢牛牛,不怕困难】有手就行栏目:头歌教学平台 - 湖南工业大学刘强老师的C语言函数实战课堂作业答案 - > - > {求和+回文数计算+编写函数求表达式的值+阶乘数列+亲密数+公约数公倍数求解}

    第一关:求和 任务描述 题目描述:给你一个n,要求你编写一个函数求1+2+-+n. 输入 输入一个n 输出 输出1+2+-+n的和 测试说明 样例输入: 100 样例输出: 5050 分析: 这个是真 ...

  6. 泰坦尼克号沉船生还预测

    在前面的几篇文章中,笔者陆续介绍了几种决策树的生成算法以及常见的集成模型.接下来在这篇文章中,笔者将以泰坦尼克号生还预测(分类)为例来进行实战演示:并且还会介绍相关的数据预处理方法,例如缺失值填充和类 ...

  7. 2022-2028全球与中国在线汉语教学平台市场现状及未来发展趋势

    辰宇信息咨询市场调研公司最近发布-<2022-2028全球与中国在线汉语教学平台市场调研报告> 内容摘要 本文重点分析在全球及中国有重要角色的企业,分析这些企业在线汉语教学平台产品的市场规 ...

  8. 头歌实践教学平台 MIPS CPU设计(HUST)

    实验简介 本实训项目将帮助学生掌握 CPU 控制器设计的基本原理,能利用硬布线控制器的设计原理在 Logisim 平台中设计实现支持五条指令的 MIPS 单周期 CPU,该处理器能运行简单的内存冒泡排 ...

  9. 头歌实践教学平台上如何建项目且通过git上传

    头歌实践教学平台上如何建项目且通过git上传 目标:在头歌上建立项目test,并通过git工具将文件上传至头歌中. (1) 首先在https://code.educoder.net/explore页面 ...

最新文章

  1. OneFlow 并行特色
  2. 5折交叉验证_[Machine Learning] 模型评估——交叉验证/K折交叉验证
  3. Web.config配置文件详解(新手必看)
  4. Redis集群管理(二)
  5. 用python + hadoop streaming 编写分布式程序(一) -- 原理介绍,样例程序与本地调试
  6. swift 滑动 iphone解锁_这10个iPhone隐藏功能,我就不信你全知道
  7. bzoj 3752: Hack 预处理+暴力dfs
  8. git SSL certificate problem: unable to get local issuer certificate
  9. python之---Python深入06 Python的内存管理
  10. C语言经典编程282例08
  11. 接口返回的是一个图片文件而不是url 前端如何显示?
  12. 【蓝桥杯-单片机学习笔记(十五)】NE555频率测量
  13. 人生不该困于五环之外(3):3到5年离开五环之外
  14. 基于JAVA的网上花店销售系统的设计与实现(附:源码 论文 sql文件)
  15. 思域第三方app安装方法(提权)
  16. Xilinx Vivado复数乘法器Complex Multiplier IP核调用及其仿真
  17. 减少杠杆炒股风险的5种方法
  18. java制作霓虹灯_PS进阶教程!教你打造效果超逼真的动态闪烁霓虹灯
  19. Activity has leaked window DecorView@992a599[XXXActivity] that was originally add
  20. 上海市浦东新区37街镇最新版行政区域

热门文章

  1. 实施ERP系统后需要维护吗?
  2. nginx单点故障的 处理方案keepalived
  3. 真无线蓝牙耳机哪家的音质最好?四款音质好蓝牙耳机
  4. Word中下划线自动换行版式不…
  5. 【医学图像处理】9 二值形态学
  6. (干货)备战2021年软考中级网络工程师-04知识产权与标准化
  7. unity小技巧收集总结--自用(三)
  8. 【MockJS】使用MockJS模拟数据 (超级详细)
  9. 威联通QnapClub软件源汉化加速
  10. css特效(使用伪元素生成随机颜色爱心)