一、缺失值的处理方法

由于各种各样的原因,真实世界中的许多数据集都包含缺失数据,这些数据经常被编码成空格、nans或者是其他的占位符。但是这样的数据集并不能被scikit - learn算法兼容,因为大多数的学习算法都会默认数组中的元素都是数值,因此素偶有的元素都有自己的代表意义。

使用不完整的数据集的一个基本策略就是舍弃掉整行或者整列包含缺失值的数值,但是这样处理会浪费大量有价值的数据。下面是处理缺失值的常用方法:

1.忽略元组

当缺少类别标签时通常这样做(假定挖掘任务涉及分类时),除非元组有多个属性缺失值,否则该方法不是很有效。当每个属性缺少值的百分比变化很大时,它的性能特别差。

2.人工填写缺失值

一般该方法很费时,并且当数据集很大,缺少很多值时,该方法可能行不通。

3.使用一个全局常量填充缺失值

将缺失的属性值用同一个常数(如“Unknown”或 负无穷)替换。如果缺失值都用“unknown”替换,则挖掘程序可能会认为它们形成一个有趣的概念,因为它们都具有相同的值“unknown”。因此,虽然该方法很简单,但是它十分不可靠。

4.使用与给定元组属同一类的所有样本的属性均值

例如:将顾客按照credit_risk分类,则使用具有相同信用度的给定元组的顾客的平均收入替换income中的缺失值。

5.使用最可能的值填充缺失值

可以用回归、使用贝叶斯形式化的基于推理的工具或决策树归纳确定。例如,利用数据集中其他顾客的属性,可以构造一颗决策树来预测income的缺失值。

注意:缺失值并不总是意味着数据的错误!!!!!!!

二、缺失值处理的代码实现

class:`Imputer`类提供了缺失数值处理的基本策略,比如使用缺失数值所在行或列的均值、中位数、众数来替代缺失值。该类也兼容不同的缺失值编码。

1、使用均值填充缺失值

import numpy as np

from sklearn.preprocessing import Imputer

imp = Imputer(missing_values='NaN', strategy='mean', axis=0)

import numpy as np

from sklearn.preprocessing import Imputer

###1.使用均值填充缺失值

imp = Imputer(missing_values='NaN', strategy='mean', axis=0)

imp.fit([[1, 2], [np.nan, 3], [7, 6]])

X = [[np.nan, 2], [6, np.nan], [7, 6]]

print(imp.transform(X))

[[4. 2. ]

[6. 3.66666667]

[7. 6. ]]

2、Imputer 类也支持稀疏矩阵:

import scipy.sparse as sp

X = sp.csc_matrix([[1, 2], [0, 3], [7, 6]])

imp = Imputer(missing_values=0, strategy='mean', axis=0)

imp.fit(X)

X_test = sp.csc_matrix([[0, 2], [6, 0], [7, 6]])

print(imp.transform(X_test))

#注意,在这里,缺失数据被编码为0, 这种方式用在当缺失数据比观察数据更多的情况时是非常合适的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python缺失数据处理_python 缺失值处理的方法(Imputation)相关推荐

  1. python填充空值_python缺失值填充的几种方法

    常见的数据缺失填充方式分为很多种,比如删除法.均值法.回归法.KNN.MICE.EM等等.R语言包中在此方面比较全面,python稍差. python目前已有的两种常见的包,第一个是impyute,第 ...

  2. python异常数据处理_Python数据处理:异常值处理方法之3σ原则

    原标题:Python数据处理:异常值处理方法之3σ原则 一.3σ原则定义 异常值是指样本中的个别值,其数值明显偏离其余的观测值.异常值也称离群点,异常值的分析也称为离群点的分析. 在进行机器学习过程中 ...

  3. python csv数据处理_python处理csv数据的方法

    本文实例讲述了python处理csv数据的方法.分享给大家供大家参考.具体如下: Python代码: #coding=utf-8 __author__ = 'dehua.li' from dateti ...

  4. python文本数据处理_python 数据处理 对txt文件进行数据处理

    原博文 2019-10-19 17:30 − 数据: 对txt文件进行数据处理: txt_file_path = "basic_info.txt" write_txt_file_p ...

  5. python编程数据处理_Python编程——乐学程序设计与数据处理

    第1章 Python概述\t 1.1 Python简介\t 1.1.1 什么是Python\t 1.1.2 为什么要学习Python\t 1.1.3 Python与其他语言\t 1.1.4 Pytho ...

  6. python字符串截取_Python容器类型公共方法汇总

    以下公共方法支持列表,元组,字典,字符串. 内置函数 Python 包含了以下内置函数: 函数描述备注len(item)计算容器中元素个数del(item)删除变量del 有两种方式max(item) ...

  7. python ctime函数_Python中的ctime()方法使用教程

    ctime()方法转换,因为历元到表示本地时间的字符串表示以秒为单位的时间.如果不设置秒时或None,所返回的时间的当前time()被使用.使用asctime(localtime(secs)).不使用 ...

  8. python保存数据_Python 保存数据的方法(4种方法)

    Python 保存数据的方法: open函数保存 使用with open()新建对象 写入数据(这里使用的是爬取豆瓣读书中一本书的豆瓣短评作为例子) import requests from lxml ...

  9. python 创建子类_python创建子类的方法分析

    本文实例讲述了python创建子类的方法.分享给大家供大家参考,具体如下: 如果你的类没有从任何祖先类派生,可以使用object作为父类的名字.经典类的声明唯一不同之处在于其没有从祖先类派生---此时 ...

最新文章

  1. MAP Protocol 协议(2)介绍二
  2. import javax.servlet.ServletRequest 关于IDEA javax.servlet.http.HttpServletRequest 不存在 解决方案
  3. @Deprecated新外观可能是什么?
  4. 【LeetCode笔记】剑指 Offer 67. 把字符串转换成整数 (Java、字符串)
  5. 内部导线拉力测试_珠海后环回收试验机现金支付拉力试验机回收和谐温馨的环境...
  6. 学生时代的神操作,你了解吗?
  7. 图--广度优先遍历/深度优先遍历(c语言实现)
  8. shellcode执行盒_简单shellcode学习
  9. docker 制作本地镜像_Docker系列-(2) 镜像制作与发布
  10. 【HDU4691】Front compression(求给定两个子串/后缀的最长公共前缀---后缀数组+st表+一点思维)
  11. meta—learning调研及MAML概述
  12. Go语言安装配置运行
  13. VisualBasic程序设计第二章的学习与自测
  14. python 股票竞价数据_百度竞价的数据分析怎么做
  15. 第一P2P收购中国典当联盟发力供应链金融模式
  16. java 农历_java怎么取得农历的节日
  17. 传Snapchat母公司Snap拟于3月在纽交所IPO上市
  18. 苹果icloud登录_怎么取消iCloud云上贵州运营的扣费
  19. 【爬虫】哔哩哔哩弹幕爬取
  20. 电脑蓝屏后自动重启问题

热门文章

  1. @hapi/joi 报错 “message“: “Cannot mix different versions of joi schemas“
  2. Flask后端实践 连载十三 Flask输出Excel报表
  3. 【092】召唤神龙-指尖大鱼吃小鱼的魔性游戏
  4. sketch插件开发
  5. 【STM32】数码管显示按键控制舵机转动的角度(二)
  6. wb在计算机知识里是什么意思,计算机二级考试内容是什么?
  7. LeCo-206反转链表
  8. 亚马逊入驻商用户画像分析
  9. 解决打开word时显示microsoft visual basic运行时错误没有注册类的问题
  10. Windows安装Apache(解决问题Set the 'ServerName' directive globally to suppress this message)