Python SimpleImputer 模块
在本教程中,我们将学习Sklearn库的SimpleImputer模块,它以前被称为impute模块,但在Sklearn库的最新版本中进行了更新。我们将讨论SimpleImputer类以及如何使用它来处理数据集中的缺失数据,并使用Python程序替换数据集中的缺失值。
SimpleImputer 类
一个scikit-learn类,我们可以使用它来处理预测模型的数据集中的缺失值,称为SimpleImputer类。借助这个类,我们可以将数据集中的NaN(缺失值)替换为指定的占位符。我们可以通过在程序中使用SimpleImputer()方法来实现和使用这个模块类。
SimpleImputer() 方法的语法:
要在Python程序中实现SimpleImputer()类方法,我们必须使用以下语法:
SimpleImputer(missingValues, strategy)
参数: 以下是在使用SimpleImputer()方法时需要定义的参数:
- missingValues: 这是在执行SimpleImputer()方法时需要填补的缺失值占位符,默认情况下,缺失值占位符的值为NaN。
- strategy: 这是要替换数据集中缺失值(NaN值)的数据,默认情况下,此参数的值为’Mean’。SimpleImputer()方法的strategy参数可以输入’Mean’、’Mode’、’Median’(集中趋势测量方法)和’Constant’的值。
- fillValue: 此参数仅在策略参数中使用,如果我们选择’Constant’作为替换值方法的话,我们必须为策略参数定义一个常数值,该常数值将替换数据集中的NaN值。
SimpleImputer类是Sklearn库中的模块类,要使用这个类,首先我们必须在系统中安装Sklearn库(如果尚未安装)。
Sklearn库的安装
我们可以使用以下命令在系统的命令终端提示符中安装Sklearn:
pip install sklearn
按下回车键后,sklearn模块将开始在我们的设备上安装,如下所示:
现在,Sklearn模块已经安装在我们的系统中,我们可以继续使用SimpleImputer类函数。
使用SimpleImputer类处理数据集中的NaN值
现在,我们将在Python程序中使用SimpleImputer类来处理数据集中的缺失值(我们将在程序中使用的数据集)。我们将在示例程序中定义一个数据集,并在其中赋予一些缺失值,然后我们使用SimpleImputer类的方法通过定义其参数来处理数据集中的缺失值。让我们通过一个示例Python程序来理解其实现。
示例1: 查看以下具有NaN值的数据集的Python程序:
# Import numpy module as nmp
import numpy as nmp
# Importing SimpleImputer class from sklearn impute module
from sklearn.impute import SimpleImputer
# Setting up imputer function variable
imputerFunc = SimpleImputer(missing_values = nmp.nan, strategy ='mean')
# Defining a dataset
dataSet = [[32, nmp.nan, 34, 47], [17, nmp.nan, 71, 53], [19, 29, nmp.nan, 79], [nmp.nan, 31, 23, 37], [19, nmp.nan, 79, 53]]
# Print original dataset
print("The Original Dataset we defined in the program: \n", dataSet)
# Imputing dataset by replacing missing values
imputerFunc = imputerFunc.fit(dataSet)
dataSet2 = imputerFunc.transform(dataSet)
# Printing imputed dataset
print("The imputed dataset after replacing missing values from it: \n", dataSet2)
输出:
The Original Dataset we defined in the program:
[[32, nan, 34, 47], [17, nan, 71, 53], [19, 29, nan, 79], [nan, 31, 23, 37], [19, nan, 79, 53]]
The imputed dataset after replacing missing values from it:
[[32. 30. 34. 47. ]
[17. 30. 71. 53. ]
[19. 29. 51.75 79. ]
[21.75 31. 23. 37. ]
[19. 30. 79. 53. ]]
解释:
首先,我们将numpy模块(用于定义数据集)和sklearn模块(用于使用SimpleImputer类方法)导入到程序中。然后,我们使用SimpleImputer类方法定义了一个处理缺失值的imputer,并使用’mean’策略将缺失值替换为数据集中的平均值。然后,我们使用numpy模块函数在程序中定义了一个数据集,并在数据集中添加了一些缺失值(NaN值)。然后,我们将原始数据集打印到输出中。接下来,我们使用之前在程序中定义的imputer对数据集进行了填充和替换了缺失值。填充和替换了缺失值后,我们将新的数据集作为结果打印出来。
从输出中可以看出,填充值数据集中的缺失值被平均值替换,这就是我们如何使用SimpleImputer模块类来处理数据集中的NaN值。
结论
在本方法中,我们了解了SimpleImputer类方法,并学习了如何使用它来处理数据集中的NaN值。我们学习了策略值参数,用于定义替换数据集的NaN值的方法。我们还学习了Sklearn库的安装,最后,我们使用SimpleImputer类方法在示例中填充了数据集。