Numpy:如何使用Sklearn的KBinsDiscretizer将连续数据分为箱

Numpy:如何使用Sklearn的KBinsDiscretizer将连续数据分为箱

在本文中,我们将介绍如何使用Sklearn的KBinsDiscretizer将连续数据分为箱。KBinsDiscretizer可以帮助我们将连续数据变成离散的数据,例如将收入分为高、中、低三档等。

阅读更多:Numpy 教程

KBinsDiscretizer的参数

在使用KBinsDiscretizer之前,我们需要先了解一些它的参数:

  • n_bins:指定分箱的数量;
  • encode:数据编码方法,可设为onehot或ordinal;
  • strategy:分箱策略,可设为uniform、kmeans或quantile。

实例操作

让我们通过实例来看一下如何使用KBinsDiscretizer。

from sklearn.preprocessing import KBinsDiscretizer
import numpy as np

# 构造一组样本数据,包含10个人的年龄和收入
X = np.array([[20, 35000], [22, 40000], [25, 45000], [27, 48000], [30, 55000], 
              [32, 60000], [35, 65000], [37, 70000], [40, 75000], [42, 80000]])

# 创建KBinsDiscretizer对象,设置参数
est = KBinsDiscretizer(n_bins=3, encode='ordinal', strategy='quantile')

# 使用fit_transform对数据进行处理
result = est.fit_transform(X)

# 查看结果
print(result)
Python

输出结果如下:

array([[0., 0.],
       [0., 1.],
       [1., 1.],
       [1., 1.],
       [2., 2.],
       [2., 2.],
       [2., 2.],
       [2., 2.],
       [2., 2.],
       [2., 2.]])
Python

上述代码中,我们首先构造了一个样本数据X,包含10个人的年龄和收入。然后创建了一个KBinsDiscretizer对象,设置分箱数量为3,编码方式为ordinal,分箱策略为quantile。最后使用fit_transform函数对数据进行处理,并输出结果。可以看到,我们把年龄和收入分别分成了3档。

总结

通过本文的介绍,我们了解了Sklearn的KBinsDiscretizer,以及它的参数和使用方法。当我们需要将连续数据变为离散数据时,可以利用KBinsDiscretizer来实现。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程