随机森林填补缺失值 python_Python机器学习:缺失值处理

自己想再加深印象,总结一下。帮助自己在做机器学习项目时,面对如何处理缺失值提供思路,而不只是用单一的、非最合适的方法用某个均值或中位数代替缺失值。

以下内容也只是源于对以上文章的总结和记忆强化,想先用文章记录在这里。建议大家可以去看原文,写的更加详细易懂。首先要明确为什么要处理缺失值?

因为很多算法本身无法运行缺失数据,所以需要用我们主观的猜测结合科学、逻辑的方法去用一个值,添补这列的所有空值。

有些算法可以运行缺失数据,所以无需处理缺失值,这样最好,完全保留了数据本身的样貌,不会因为我们猜的不准而让数据偏离原本的真实性。这些算法包括Xgboost、rfr等。

但是由于我现在学到的三种算法:线性回归、逻辑回归和随机森林都需要处理掉缺失数据。要明确处理缺失数据的思路和目的!

在数据量大、缺失数据又少的情况下,可以直接删除这些少量的几个缺失值。但是如果缺失值多,就要想办法去猜测、估计这些可能的值原本应该是多少。

#删除空值用pandas的dropna

import pandas

df.dropna(how='any')算法本身无法运行缺失数据,必须处理

缺失值不少,不能随意直接删除

要用严谨的方法,找到最有可能的估计值,最大程度的还原数据原本的样子

机器学习最终会用测试数据测试模型的精确度:这精确度受数据、特征和算法的影响。所以要处理出最优质的数据、广泛全面的思考与标签相关的一系列(细化)特征和用最合适的算法

机器学习是为了预测某个数据。所以一切都围绕着提高模型的精确度。

特征需要想的全面、细致,前提是数据本身要准确缺失值填补的n个方法

1.用特殊的某个值去代替这列的所有空值:众数 mode

平均数:如果数据本身没什么异常值(正态分布)均值可以反映数据整体情况,用均值代替空值

#用fillna去填补缺失值

df['price'].fillna(df['price'].mean())中位数:如果数据本身存在异常值,用中位数代替空值。可以用中位数和平均数都试一下,看用哪个的模型精确度高

df['price'].fillna(df['price'].median())热卡填补

K均值

2. 用算法去预测缺失值特征值:其它变量 预测标签:缺失值极大似然估计

多重插补

3. 虚拟变量通过判断该特征变量是否有缺失值来定义一个新的二分类变量。比如该特征名为A,新增变量列名B,对A里的所有缺失值记为1,所有存在值记为0

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值