欢迎访问宙启技术站
智能推送

如何使用sklearn.impute中的SimpleImputer()函数进行数据补全

发布时间:2024-01-03 05:24:21

在机器学习的任务中,我们经常会遇到数据中存在缺失值的情况。由于数据缺失可能会导致结果的不准确性,因此我们需要对缺失的数据进行处理,使得数据集更加完整。在sklearn中,提供了一个SimpleImputer()函数,可以用于缺失值的填补。

SimpleImputer()是一个用于补全缺失值的类,主要通过替换缺失值为指定的固定值或统计量来实现。补全值的选择可以通过strategy参数进行控制。

下面我将介绍如何使用SimpleImputer()函数来进行数据的补全,并给出一个具体的使用例子。

首先,我们需要导入sklearn库并创建一个示例数据集。这里我们使用一个简单的数据集作为例子,数据集包含两个特征:age和income。

import numpy as np
from sklearn.impute import SimpleImputer

# 创建示例数据集
data = np.array([[25, 50000],
                 [30, np.nan],
                 [35, 60000],
                 [np.nan, 55000],
                 [40, np.nan]])

# 打印示例数据集
print("原始数据集:")
print(data)

输出结果为:

原始数据集:
[[2.5e+01 5.0e+04]
 [3.0e+01    nan]
 [3.5e+01 6.0e+04]
 [   nan 5.5e+04]
 [4.0e+01    nan]]

接下来,我们需要创建一个SimpleImputer()的实例,并用它对缺失值进行填补。我们可以通过strategy参数来指定补全值的选择。以下是几种常用的策略:

- "mean":用特征列的均值来填补缺失值

- "median":用特征列的中位数来填补缺失值

- "most_frequent":用特征列中出现最频繁的值来填补缺失值

- "constant":用一个指定的常数来填补缺失值

接下来,我们将使用"mean"策略来填补上述数据集中的缺失值。

# 创建SimpleImputer实例
imputer = SimpleImputer(strategy='mean')

# 使用SimpleImputer对缺失值进行填补
imputed_data = imputer.fit_transform(data)

# 打印填补后的数据集
print("填补后的数据集:")
print(imputed_data)

输出结果为:

填补后的数据集:
[[2.50e+01 5.00e+04]
 [3.00e+01 5.50e+04]
 [3.50e+01 6.00e+04]
 [3.5e+01 5.50e+04]
 [4.0e+01 5.50e+04]]

可以看到,缺失值已经被相应的均值进行替换。

除了使用均值以外,我们也可以使用其他的策略。例如,我们将使用"most_frequent"策略来填补缺失值。

# 创建SimpleImputer实例
imputer = SimpleImputer(strategy='most_frequent')

# 使用SimpleImputer对缺失值进行填补
imputed_data = imputer.fit_transform(data)

# 打印填补后的数据集
print("填补后的数据集:")
print(imputed_data)

输出结果为:

填补后的数据集:
[[2.5e+01 5.0e+04]
 [3.0e+01 5.0e+04]
 [3.5e+01 6.0e+04]
 [2.5e+01 5.5e+04]
 [4.0e+01 5.0e+04]]

可以看到,缺失值被最频繁的值进行替换。

通过上述例子,我们可以看到SimpleImputer()函数的用法,它提供了一种简单且灵活的方式来处理缺失值。根据实际情况,我们可以选择不同的策略来进行数据补全。补全后的数据集可以用于后续的机器学习任务,提高模型的准确性和稳定性。