使用scikit学习进行分类

时间:2018-09-21 05:03:46

标签: python scikit-learn categorical-data

我在上一篇文章中曾问过如何对连续的预测变量进行分类。建议使用pd.cut或pd.qcut:

Create multiple classes from continuous variables Python

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

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

让该软件包负责分类而不是自己进行分类是否有意义?

1 个答案:

答案 0 :(得分:1)

MultiLabelBinarizer不创建垃圾箱,它将为每个垃圾箱分配不同的类别。

例如,如果在示例中有一个y,则有4个唯一值,MultiLabelBinarizer将返回一个形状为(4,2)的数组。但是,如果有浮点数,我们将为每个数字返回不同的类别。

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