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中执行shell命令的几个方法小结
Sep 18 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
Nov 11 Python
关于Tensorflow中的tf.train.batch函数的使用
Apr 24 Python
浅析Python pandas模块输出每行中间省略号问题
Jul 03 Python
pandas将numpy数组写入到csv的实例
Jul 04 Python
flask-socketio实现WebSocket的方法
Jul 31 Python
Windows下将Python文件打包成.EXE可执行文件的方法
Aug 03 Python
python中树与树的表示知识点总结
Sep 14 Python
python实现人像动漫化的示例代码
May 17 Python
python SOCKET编程基础入门
Feb 27 Python
Python实现智慧校园自动评教全新版
Jun 18 Python
关于Python中*args和**kwargs的深入理解
Aug 07 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将日期格式转换成xx天前的格式
2015/04/16 PHP
Thinkphp实现自动验证和自动完成
2015/12/19 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
2016/10/08 PHP
利用switch语句进行多选一判断的实例代码
2016/11/14 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
2017/02/23 PHP
js取得html iframe中的元素和变量值
2014/06/30 Javascript
javascript 动态创建表格
2015/01/08 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
javascript实现显示和隐藏div方法汇总
2015/08/14 Javascript
jQuery实现简单的点赞效果
2020/05/29 Javascript
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
使用Math.max,Math.min获取数组中的最值实例
2017/04/25 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
详解在React-Native中持久化redux数据
2019/05/22 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
JavaScript this使用方法图解
2020/02/04 Javascript
微信小程序吸底区域适配iPhoneX的实现
2020/04/09 Javascript
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
浅谈python import引入不同路径下的模块
2017/07/11 Python
使用Pyinstaller的最新踩坑实战记录
2017/11/08 Python
python之pandas用法大全
2018/03/13 Python
让IE支持HTML5的方法
2012/12/11 HTML / CSS
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
html5使用canvas绘制一张图片
2014/12/15 HTML / CSS
KIKO MILANO荷兰网上商店:意大利专业化妆品品牌
2017/05/12 全球购物
Shoes For Crews法国官网:美国领先的防滑鞋设计和制造商
2018/01/01 全球购物
德国游戏机商店:Konsolenkost
2019/12/08 全球购物
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
会计电算化应届生自荐信
2014/02/25 职场文书
《穷人》教学反思
2014/04/08 职场文书
公司应聘自荐书
2014/06/14 职场文书
2014超市收银员工作总结
2014/11/13 职场文书
2014年六五普法工作总结
2014/11/25 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
新教师个人总结
2015/02/06 职场文书