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 相关文章推荐
pandas 实现字典转换成DataFrame的方法
Jul 04 Python
python 读取摄像头数据并保存的实例
Aug 03 Python
wxPython的安装与使用教程
Aug 31 Python
Scrapy框架使用的基本知识
Oct 21 Python
浅谈Python在pycharm中的调试(debug)
Nov 29 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
Aug 31 Python
详解在python操作数据库中游标的使用方法
Nov 12 Python
使用Rasterio读取栅格数据的实例讲解
Nov 26 Python
python 实现简单的FTP程序
Dec 27 Python
Python Tornado批量上传图片并显示功能
Mar 26 Python
用Python提取PDF表格的方法
Apr 11 Python
安装pytorch时报sslerror错误的解决方案
May 17 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 JSON 数据解析代码
2010/05/26 PHP
php preg_match的匹配不同国家语言实例
2016/12/29 PHP
PHP培训要多少钱
2017/06/06 PHP
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
JQuery下关于$.Ready()的分析
2009/12/13 Javascript
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
2015/10/28 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
2016/05/05 Javascript
Javascript数组循环遍历之forEach详解
2016/11/07 Javascript
Input文本框随着输入内容多少自动延伸的实现
2017/02/15 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
解析原来浏览器原生支持JS Base64编码解码
2019/08/12 Javascript
[02:25]专访DOTA2负责人Erik 国际邀请赛暂不会离开西雅
2014/07/21 DOTA
[17:36]VG战队纪录片
2014/08/21 DOTA
Flask配置Cors跨域的实现
2019/07/12 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
python批量处理txt文件的实例代码
2020/01/13 Python
关于tensorflow softmax函数用法解析
2020/06/30 Python
python字典key不能是可以是啥类型
2020/08/04 Python
python 写一个文件分发小程序
2020/12/05 Python
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
英国独特家具和家庭用品购物网站:Cuckooland
2020/08/30 全球购物
西安众合通用.net笔试题
2013/03/18 面试题
软件测试题目
2013/02/27 面试题
职务说明书范文
2014/05/07 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
学校党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
小石潭记导游词
2015/02/03 职场文书
民主评议党员个人自我评价
2015/03/03 职场文书
安全教育的主题班会
2015/08/13 职场文书
微信小程序实现聊天室功能
2021/06/14 Javascript
铁头也玩根德 YachtBoy YB-230......
2022/04/05 无线电
Python尝试实现蒙特卡罗模拟期权定价
2022/04/21 Python