Titanic缺失数值处理 & 存活率预测

1.  kaggle泰坦尼克数据titanic完整下载,原作者良心分享

https://download.csdn.net/download/lansui7312/9936840

 

2. 缺失值处理

# -*- coding:utf -
import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestRegressor

df = pd.read_csv('train.csv',header=0)
# SibSp 堂兄弟/妹个数
# Parch 父母与小孩个数
# Cabin 客舱
# Embarked 登船港口

# df.head(20)
# df.info()
# print(df.describe())
# print(df.columns[1])


# 男性和女性幸存率查看
x=[df[(df.Sex=='male')]['Sex'].size,df[(df.Sex=='female')]['Sex'].size]
# print(x)
y=[df[(df.Sex=='male') & (df.Survived==1)]['Sex'].size,
   df[(df.Sex=='female') & (df.Survived==1)]['Sex'].size]

# print(y[1]*100/x[1],y[0]*100/x[0])

# 缺失值处理
# 1. 删掉缺失行
# 2. 上船地点不重要,用众数赋值
df.Embarked[df.Embarked.isnull()] = df.Embarked.dropna().mode().values
# print(df.Embarked)

#3.  标称属性,赋予缺失值,因为缺失本身可能也是一种隐含信息。比如Cabin代表没有船舱
df.Cabin[df.Cabin.isnull()]='U0'
# print(df.Cabin)

#4.  使用回归、随机森林等模型来预测缺失属性的值
# 因为年龄是一个相当重要的特征,所以要保证一定的缺失值填充准确率
age_df=df[['Age','Survived','Fare','Parch','SibSp','Pclass']]
age_df_notnull = age_df.loc[(df.Age.notnull())]
age_df_isnull = age_df.loc[(df.Age.isnull())]
X = age_df_notnull.values[:,1:]
Y = age_df_notnull.values[:,0]
# y1 = age_df_notnull.values[:,2:]
# X[:,0]是numpy中数组的一种写法表示对一个二维数组,取该二维数组第一维中的所有数据,第二维中取第0个数据,直观来说,X[:,0]就是取所有行的第0个数据, X[:,1] 就是取所有行的第1个数据
# print(X)
rfr = RandomForestRegressor(n_estimators=1000,n_jobs=-1)
rfr.fit(X,Y)
predictAges = rfr.predict(age_df_isnull.values[:,1:])
df.loc[(df.Age.isnull()),'Age'] = predictAges

print(df.describe())

 

3. 

 

posted on 2018-05-04 17:37 Suckseedeva 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/skyEva/p/8991744.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值