头哥教学平台-泰坦尼克号生还预测
第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关 存活率与性别和船舱等级之间的关系 import pandas as pd import numpy as np import seaborn as sns import warnings wa ...
- Kaggle实战入门:泰坦尼克号生还预测(基础版)
Kaggle实战入门:泰坦尼克号生还预测 1. 加载数据 2. 特征工程 3. 模型训练 4. 模型部署 泰坦尼克号(Titanic),又称铁达尼号,是当时世界上体积最庞大.内部设施最豪华的客运轮船, ...
- Kaggle实战入门:泰坦尼克号生还预测(进阶版)
Kaggle实战入门:泰坦尼克号生还预测 1. 加载数据 2. 特征工程 3. 模型训练 4. 模型部署 Kaggle实战入门:泰坦尼克号生还预测(基础版)对机器学习的全流程进行了总体介绍.本文继续以 ...
- 2泰坦尼克号生还预测 四种不同方法
1.泰坦尼克号生还预测 准备工作 泰坦尼克号生还预测是一个非常典型的联系项目.数据集是公开数据集. 1.1 环境准备 numpy=1.14.5 pandas=0.22.0 sklearn=0.19.2 ...
- 【勇敢牛牛,不怕困难】有手就行栏目:头歌教学平台 - 湖南工业大学刘强老师的C语言函数实战课堂作业答案 - > - > {求和+回文数计算+编写函数求表达式的值+阶乘数列+亲密数+公约数公倍数求解}
第一关:求和 任务描述 题目描述:给你一个n,要求你编写一个函数求1+2+-+n. 输入 输入一个n 输出 输出1+2+-+n的和 测试说明 样例输入: 100 样例输出: 5050 分析: 这个是真 ...
- 泰坦尼克号沉船生还预测
在前面的几篇文章中,笔者陆续介绍了几种决策树的生成算法以及常见的集成模型.接下来在这篇文章中,笔者将以泰坦尼克号生还预测(分类)为例来进行实战演示:并且还会介绍相关的数据预处理方法,例如缺失值填充和类 ...
- 2022-2028全球与中国在线汉语教学平台市场现状及未来发展趋势
辰宇信息咨询市场调研公司最近发布-<2022-2028全球与中国在线汉语教学平台市场调研报告> 内容摘要 本文重点分析在全球及中国有重要角色的企业,分析这些企业在线汉语教学平台产品的市场规 ...
- 头歌实践教学平台 MIPS CPU设计(HUST)
实验简介 本实训项目将帮助学生掌握 CPU 控制器设计的基本原理,能利用硬布线控制器的设计原理在 Logisim 平台中设计实现支持五条指令的 MIPS 单周期 CPU,该处理器能运行简单的内存冒泡排 ...
- 头歌实践教学平台上如何建项目且通过git上传
头歌实践教学平台上如何建项目且通过git上传 目标:在头歌上建立项目test,并通过git工具将文件上传至头歌中. (1) 首先在https://code.educoder.net/explore页面 ...
最新文章
- OneFlow 并行特色
- 5折交叉验证_[Machine Learning] 模型评估——交叉验证/K折交叉验证
- Web.config配置文件详解(新手必看)
- Redis集群管理(二)
- 用python + hadoop streaming 编写分布式程序(一) -- 原理介绍,样例程序与本地调试
- swift 滑动 iphone解锁_这10个iPhone隐藏功能,我就不信你全知道
- bzoj 3752: Hack 预处理+暴力dfs
- git SSL certificate problem: unable to get local issuer certificate
- python之---Python深入06 Python的内存管理
- C语言经典编程282例08
- 接口返回的是一个图片文件而不是url 前端如何显示?
- 【蓝桥杯-单片机学习笔记(十五)】NE555频率测量
- 人生不该困于五环之外(3):3到5年离开五环之外
- 基于JAVA的网上花店销售系统的设计与实现(附:源码 论文 sql文件)
- 思域第三方app安装方法(提权)
- Xilinx Vivado复数乘法器Complex Multiplier IP核调用及其仿真
- 减少杠杆炒股风险的5种方法
- java制作霓虹灯_PS进阶教程!教你打造效果超逼真的动态闪烁霓虹灯
- Activity has leaked window DecorView@992a599[XXXActivity] that was originally add
- 上海市浦东新区37街镇最新版行政区域