python缺失值的解决方法总结

作者:小妮浅浅 时间:2023-07-28 23:47:38 

1、解决方法

(1)忽视元组。

缺少类别标签时,通常这样做(假设挖掘任务与分类有关),除非元组有多个属性缺失值,否则该方法不太有效。当个属性缺值的百分比变化很大时,其性能特别差。

(2)人工填写缺失值。

一般来说,这种方法需要很长时间,当数据集大且缺少很多值时,这种方法可能无法实现。

(3)使用全局常量填充缺失值。

将缺失的属性值用同一常数(如Unknown或负无限)替换。如果缺失值都是用unknown替换的话,挖掘程序可能会认为形成有趣的概念。因为有同样的价值unknown。因此,这种方法很简单,但不可靠。

(4)使用与给定元组相同类型的所有样本的属性平均值。

(5)使用最可能的值填充缺失值。

可以通过回归、使用贝叶斯形式化的基于推理的工具和决策树的总结来决定。

2、实例


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.        ]]

知识点扩充:

缺失值的处理方法

由于各种各样的原因,真实世界中的许多数据集都包含缺失数据,这些数据经常被编码成空格、nans或者是其他的占位符。但是这样的数据集并不能被scikit - learn算法兼容,因为大多数的学习算法都会默认数组中的元素都是数值,因此素偶有的元素都有自己的代表意义。

使用不完整的数据集的一个基本策略就是舍弃掉整行或者整列包含缺失值的数值,但是这样处理会浪费大量有价值的数据。下面是处理缺失值的常用方法:

1.忽略元组

当缺少类别标签时通常这样做(假定挖掘任务涉及分类时),除非元组有多个属性缺失值,否则该方法不是很有效。当每个属性缺少值的百分比变化很大时,它的性能特别差。

2.人工填写缺失值

一般该方法很费时,并且当数据集很大,缺少很多值时,该方法可能行不通。

3.使用一个全局常量填充缺失值

将缺失的属性值用同一个常数(如“Unknown”或 负无穷)替换。如果缺失值都用“unknown”替换,则挖掘程序可能会认为它们形成一个有趣的概念,因为它们都具有相同的值“unknown”。因此,虽然该方法很简单,但是它十分不可靠。

4.使用与给定元组属同一类的所有样本的属性均值

例如:将顾客按照credit_risk分类,则使用具有相同信用度的给定元组的顾客的平均收入替换income中的缺失值。

Python客栈送红包、纸质书

5.使用最可能的值填充缺失值

可以用回归、使用贝叶斯形式化的基于推理的工具或决策树归纳确定。例如,利用数据集中其他顾客的属性,可以构造一颗决策树来预测income的缺失值。

来源:https://www.py.cn/jishu/jichu/30903.html

标签:python,缺失值
0
投稿

猜你喜欢

  • 讲解数据库加密技术的功能特性与实现方法

    2008-12-18 14:24:00
  • SQL Server的复制功能

    2024-01-16 19:40:27
  • javascript中createElement的两种创建方式

    2024-04-10 16:13:42
  • python3中calendar返回某一时间点实例讲解

    2022-07-24 02:56:16
  • Python元组拆包和具名元组解析实例详解

    2021-10-17 05:26:58
  • ThinkPHP中limit()使用方法详解

    2023-11-14 22:05:04
  • python实践项目之监控当前联网状态详情

    2022-06-05 02:02:57
  • mysql between实现选取介于两个值之间的数据范围

    2024-01-26 13:28:18
  • MySQL单表多关键字模糊查询的实现方法

    2024-01-12 18:12:14
  • Python内存管理实例分析

    2021-06-13 01:39:21
  • Pycharm远程调试和MySQL数据库授权问题

    2024-01-14 10:56:00
  • vue 自定义icon图标的步骤

    2024-04-30 10:37:15
  • Python八皇后问题解答过程详解

    2021-09-09 18:06:17
  • javascript中mouseenter与mouseover的异同

    2024-05-02 16:11:54
  • 网址站的2.0玩法

    2010-03-15 12:25:00
  • 详解Angular之constructor和ngOnInit差异及适用场景

    2024-05-11 09:18:16
  • pytorch 实现二分类交叉熵逆样本频率权重

    2021-04-29 00:25:29
  • 使用opencv-python如何打开USB或者笔记本前置摄像头

    2021-05-18 08:24:52
  • python中np.multiply()、np.dot()和星号(*)三种乘法运算的区别详解

    2023-03-23 13:16:16
  • Bootstrap实现响应式导航栏效果

    2023-08-13 15:32:13
  • asp之家 网络编程 m.aspxhome.com