python 缺失值处理的方法(Imputation)


Posted in Python onJuly 02, 2019

一、缺失值的处理方法

由于各种各样的原因,真实世界中的许多数据集都包含缺失数据,这些数据经常被编码成空格、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入门篇之数字
Oct 20 Python
Python实现对PPT文件进行截图操作的方法
Apr 28 Python
Python 用Redis简单实现分布式爬虫的方法
Nov 23 Python
Python实现PS滤镜特效之扇形变换效果示例
Jan 26 Python
Python一句代码实现找出所有水仙花数的方法
Nov 13 Python
ERLANG和PYTHON互通实现过程详解
Jul 05 Python
python基于FTP实现文件传输相关功能代码实例
Sep 28 Python
python有序查找算法 二分法实例解析
Feb 18 Python
在Mac中PyCharm配置python Anaconda环境过程图解
Mar 11 Python
python 如何实现遗传算法
Sep 22 Python
python tkinter实现定时关机
Apr 21 Python
Python中的tkinter库简单案例详解
Jan 22 Python
Python 读取串口数据,动态绘图的示例
Jul 02 #Python
python中对数据进行各种排序的方法
Jul 02 #Python
Python虚拟环境的原理及使用详解
Jul 02 #Python
python输出电脑上所有的串口名的方法
Jul 02 #Python
如何更优雅地写python代码
Jul 02 #Python
Python pip替换为阿里源的方法步骤
Jul 02 #Python
python set内置函数的具体使用
Jul 02 #Python
You might like
PHP下打开URL地址的几种方法小结
2010/05/16 PHP
phpExcel中文帮助手册之常用功能指南
2014/08/18 PHP
PHP中mysql_field_type()函数用法
2014/11/24 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
javascript 字符 Escape,encodeURI,encodeURIComponent
2009/07/09 Javascript
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
js中 javascript:void(0) 用法详解
2015/08/11 Javascript
Bootstrap每天必学之折叠(Collapse)插件
2016/04/25 Javascript
AngularJS+bootstrap实现动态选择商品功能示例
2017/05/17 Javascript
如何理解Vue的.sync修饰符的使用
2017/08/17 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
在Python中使用全局日志时需要注意的问题
2015/05/06 Python
MySQL最常见的操作语句小结
2015/05/07 Python
Python实现感知机(PLA)算法
2017/12/20 Python
python智联招聘爬虫并导入到excel代码实例
2019/09/09 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
美国男装连锁零售商:Men’s Wearhouse
2016/10/14 全球购物
大学生学习生活的自我评价
2013/11/01 职场文书
积极分子思想汇报
2014/01/04 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
党员个人整改方案及措施
2014/10/25 职场文书
2014年公司工作总结
2014/11/22 职场文书
实习指导老师意见
2015/06/04 职场文书
宾馆安全管理制度
2015/08/06 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书
如何利用Python实现一个论文降重工具
2021/07/09 Python
Redis RDB技术底层原理详解
2021/09/04 Redis
React四级菜单的实现
2022/04/08 Javascript