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读取浮点数和读取文本文件示例
May 06 Python
Python实现包含min函数的栈
Apr 29 Python
python的多重继承的理解
Aug 06 Python
Python3一行代码实现图片文字识别的示例
Jan 15 Python
Python字符串逆序的实现方法【一题多解】
Feb 18 Python
远程部署工具Fabric详解(支持Python3)
Jul 04 Python
python sorted函数原理解析及练习
Feb 10 Python
Python sql注入 过滤字符串的非法字符实例
Apr 03 Python
Python面向对象实现方法总结
Aug 12 Python
python获取本周、上周、本月、上月及本季的时间代码实例
Sep 08 Python
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
Jun 29 Python
利用 Python 的 Pandas和 NumPy 库来清理数据
Apr 13 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
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
PHP gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
PHP实现动态柱状图改进版
2015/03/30 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
PHP 信号管理知识整理汇总
2017/02/19 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
js opener的使用详解
2014/01/11 Javascript
js解决select下拉选不中问题
2014/10/14 Javascript
javascript实现炫酷的拖动分页
2015/05/11 Javascript
Angular企业级开发——MVC之控制器详解
2017/02/20 Javascript
Bootstrap table使用方法总结
2017/05/10 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
基于mpvue的小程序项目搭建的步骤
2018/05/22 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
Vue 列表上下过渡效果的实例代码
2019/06/25 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
对django xadmin自定义菜单的实例详解
2019/01/03 Python
python多进程并发demo实例解析
2019/12/13 Python
python实现指定ip端口扫描方式
2019/12/17 Python
python爬虫添加请求头代码实例
2019/12/28 Python
Python编程快速上手——选择性拷贝操作案例分析
2020/02/28 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
2020/04/10 Python
详解numpy1.19.4与python3.9版本冲突解决
2020/12/15 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
印尼美容产品购物网站:PerfectBeauty.id
2017/12/01 全球购物
会计的岗位职责
2014/03/15 职场文书
农民工工资支付承诺函
2014/03/31 职场文书
小区保洁员岗位职责
2015/04/10 职场文书
公司奖励通知
2015/04/21 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
简历自我评价范文
2019/04/24 职场文书
使用golang编写一个并发工作队列
2021/05/08 Golang
Vue-Element-Admin集成自己的接口实现登录跳转
2021/06/23 Vue.js