使用 scikit learn 进行分类

Categorization with scikit learn

我在之前的 post 中询问过如何对连续预测变量进行分类。建议使用 pd.cut 或 pd.qcut:

我想知道这些函数的作用:

http://scikit-learn.org/stable/modules/multiclass.html#multilabel-classification-format

让那个包负责分类而不是自己做是否有意义?

MultiLabelBinarizer 不会制作垃圾箱,它会为每个垃圾箱分配不同的类别。

例如,如果我们有一个 y,如示例所示,我们有 4 个唯一值,MultiLabelBinarizer 将 return 一个形状为 (4, 2) 的数组。但是如果我们有浮动,我们将为每个数字 return 一个不同的类别。

from sklearn.preprocessing import MultiLabelBinarizer
y = [[1.1, 2.2], [1.3, 1.4, 1.1]]
print(MultiLabelBinarizer().fit_transform(y))
# [[1 0 0 1]
#  [1 1 1 0]]

所以首先你需要制作垃圾箱(在本例中为圆形):

# round the y
round_y = []
for arr in y:
    round_y.append([round(i) for i in arr])
print(round_y)
# [[1, 2], [1, 1, 1]]

print(MultiLabelBinarizer().fit_transform(round_y))
# [[1 1]
#  [1 0]]