6.9 转换预测目标(y)

这些转换器不打算用于特征,而只能用于有监督的学习目标。如果要转换预测目标以进行学习,但请在原始(未转换)空间中评估模型,另请参见在回归中转换目标

6.9.1 标签二值化

LabelBinarizer 是一个实用程序类,可从多类标签列表中创建标签指示矩阵:

>>> from sklearn import preprocessing
>>> lb = preprocessing.LabelBinarizer()
>>> lb.fit([12642])
LabelBinarizer()
>>> lb.classes_
array([1246])
>>> lb.transform([16])
array([[1000],
       [0001]])

对于多标签实例,请使用MultiLabelBinarizer

>>> lb = preprocessing.MultiLabelBinarizer()
>>> lb.fit_transform([(12), (3,)])
array([[110],
       [001]])
>>> lb.classes_
array([123])

6.9.2 标签编码

LabelEncoder是一个实用程序类,可帮助标准化标签,使其仅包含0到n_classes-1之间的值。有时对于编写有效的Cython例程很有用。LabelEncoder可以如下使用:

>>> from sklearn import preprocessing
>>> le = preprocessing.LabelEncoder()
>>> le.fit([1226])
LabelEncoder()
>>> le.classes_
array([126])
>>> le.transform([1126])
array([0012])
>>> le.inverse_transform([0012])
array([1126])

它也可以用于将非数字标签(只要它们是可哈希的和可比较的)转换为数字标签:

>>> le = preprocessing.LabelEncoder()
>>> le.fit(["paris""paris""tokyo""amsterdam"])
LabelEncoder()
>>> list(le.classes_)
['amsterdam''paris''tokyo']
>>> le.transform(["tokyo""tokyo""paris"])
array([221])
>>> list(le.inverse_transform([221]))
['tokyo''tokyo''paris']