Titanic

pandas是常用的Python数据处理包,把csv文件读入成dataframe各式,我们在ipython notebook中,看到data_train如下所示:

训练数据

这就是典型的dataframe格式

我们会有一些常用的对付缺失值的方法:

     (1)丢弃有缺失值的变量:这种方法一般不建议采用,毕竟数据收集本身是件伤神的事,但如果缺失比例极其严重,那么这种变量就可以果断的丢弃,因为其本身不能带来更多的信息(在这里探究为什么缺失可能更重要)。

     (2)用一种特殊的字符来填充缺失值:这种方法的内核其实是将缺失值当成一类去对待,认为缺失本身是一种信息,应该保持它的独立性。但这种方法比较适合类别变量,若要对连续变量使用该方法,需要首先对连续变量离散化,变成和类别变量一样的形式。


# 缺失值填充
df['Cabin'][df.Cabin.isnull()] = 'U0'

     (3)赋平均值/众数:当缺失比例不算严重且变量本身不那么重要时,连续变量可以填充平均值,类别变量可以填充众数。


# 均值填充
df['Fare'][ np.isnan(df['Fare']) ] = df['Fare'].median()

# 众数填充
df.Embarked[ df.Embarked.isnull() ] = df.Embarked.dropna().mode().values

     (4)利用模型预测值填充:“年龄”这个变量看上去比较重要。毕竟副船长当时坚持“小孩和女士先走”。如果这里直接用均值填充会损失较多信息,所以这里采用随机森林回归树模型建立年龄的预测模型,并将预测值填充缺失值的位置(应该评估此模型的准确度):

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值