数据缺失值处理一(sklearn)

首页 » Python » 正文

数据缺失值处理一(sklearn)


在数据采集准备阶段,往往由于人为或数据本身的因素导致最终的数据集含有缺失值,此时我们就面临一个问题,缺失数据如何去处理?其实无非就两种选择,一是删除缺失值所在的样本数据或列列数据,二是填充缺失数据的样本,使其数据保持完整。

 

数据缺失值处理一(sklearn)

 

删除方案:

首先要明确,对于数据量小的数据集,删除操作无疑不是最优的,因为数据量本身就不大。

至于是删除行数据还是列数据,一般会选择删除样本数据(行),因为特征属性是提前决定好的。但如果特征的缺失值过于严重,那么就应该考虑删除该特征数据了。

填充方案:

对于缺失的数据,是按照列数据填充呢还是按照行数据来填充呢?

数据缺失值处理一(sklearn)

答案其实很明显,按照特征(列)数据的(中位数、平均值)进行填充,因为在一个样本数据中,不同特征对应的数据值差异较大,采用样本平均值填充的话,其值明显是不符合特征数据的意义。


面借助机器学习工具模块sklearn来完成数据缺失值的填充处理(一般使用pandas处理缺失值较多)

【注】在处理缺失值时,缺失值的位置需使用pn.nan(float类型标记缺失值

 

# -*- coding:utf-8 -*-

# @Author: 数据与编程之美
# @File: deal_imputer.py
# @Time: 2021/01/02 16:54


from sklearn.impute import SimpleImputer
import numpy as np


def deal_im():
    """
    缺失值处理
    :return:
    """
    si = SimpleImputer(missing_values=np.nan, strategy='mean')
    data = si.fit_transform([[9, np.nan], [1, 5], [2, 4]])

    # 输出填充数据后的数据
    print(data)


if __name__ == "__main__":

    deal_im()

 

说明:strategy=’mean‘ 指定使用均值填充数据,missing_values=np.nan 指定缺失值使用np.nanfloat类型)来标记

 

数据缺失值处理一(sklearn)

 

输出结果

 

数据缺失值处理一(sklearn)


以上内容就是sklearn中使用SimpleImputer来解决数据缺失值的方法,后续会补充如何使用pandas处理缺失值的方法。

 

更多精彩内容请关注公众号:

 

【福利】pycharm、idea、全家桶正版激活

数据缺失值处理一(sklearn)

作者:bear, 转载或复制请以 超链接形式 并注明出处 数据与编程之美
原文地址:《数据缺失值处理一(sklearn)》 发布于2021-01-02

分享到:
赞(1) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

一碗牛肉面
鼓励站长分享更多学习经验、教程、学习资源。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册