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之os操作方法(详解)
Jun 15 Python
django 创建过滤器的实例详解
Aug 14 Python
windows下安装Python的XlsxWriter模块方法
May 03 Python
浅析Python函数式编程
Oct 06 Python
python从子线程中获得返回值的方法
Jan 30 Python
Python利用pandas处理Excel数据的应用详解
Jun 18 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
Aug 06 Python
python线程安全及多进程多线程实现方法详解
Sep 27 Python
Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
Oct 12 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
Feb 18 Python
Python figure参数及subplot子图绘制代码
Apr 18 Python
使用sublime text3搭建Python编辑环境的实现
Jan 12 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文件的实现方法
2007/03/19 PHP
深入apache配置文件httpd.conf的部分参数说明
2013/06/28 PHP
php网站地图生成类示例
2014/01/13 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
2015/02/12 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
JavaScript异步加载浅析
2014/12/28 Javascript
jquery通过closest选择器修改上级元素的方法
2015/03/17 Javascript
基于jQuery实现的菜单切换效果
2015/10/16 Javascript
使用jquery提交form表单并自定义action的实现代码
2016/05/25 Javascript
jquery实现图片上传前本地预览
2017/04/28 jQuery
基于Vuejs和Element的注册插件的编写方法
2017/07/03 Javascript
详解如何用VUE写一个多用模态框组件模版
2018/09/27 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
详解python3中tkinter知识点
2018/06/21 Python
基于python实现学生管理系统
2018/10/17 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
HTML5画渐变背景图片并自动下载实现步骤
2013/11/18 HTML / CSS
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
什么是Deployment descriptors;都有什么类型的部署描述符
2015/07/28 面试题
自荐书范文范例
2014/02/13 职场文书
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
《天安门广场》教学反思
2014/04/23 职场文书
体育专业自荐书
2014/05/29 职场文书
诚信承诺书
2015/01/19 职场文书
2015年财务人员工作总结
2015/04/10 职场文书
2015年劳动部工作总结
2015/05/23 职场文书
小学体育组工作总结2015
2015/07/21 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
导游词之徐州-云龙山
2019/09/29 职场文书
Java Socket实现多人聊天系统
2021/07/15 Java/Android
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫
Golang 切片(Slice)实现增删改查
2022/04/22 Golang
索尼ICF-5900W收音机测评
2022/04/24 无线电