scikit-learn 轉(zhuǎn)換預(yù)測(cè)目標(biāo)(y)

2023-02-20 14:43 更新

這些轉(zhuǎn)換器不打算用于特征,而只能用于有監(jiān)督的學(xué)習(xí)目標(biāo)。如果要轉(zhuǎn)換預(yù)測(cè)目標(biāo)以進(jìn)行學(xué)習(xí),但請(qǐng)?jiān)谠迹ㄎ崔D(zhuǎn)換)空間中評(píng)估模型,另請(qǐng)參見在回歸中轉(zhuǎn)換目標(biāo)。

6.9.1 標(biāo)簽二值化

LabelBinarizer 是一個(gè)實(shí)用程序類,可從多類標(biāo)簽列表中創(chuàng)建標(biāo)簽指示矩陣:

>>> from sklearn import preprocessing
>>> lb = preprocessing.LabelBinarizer()
>>> lb.fit([1, 2, 6, 4, 2])
LabelBinarizer()
>>> lb.classes_
array([1, 2, 4, 6])
>>> lb.transform([1, 6])
array([[1, 0, 0, 0],
       [0, 0, 0, 1]])

對(duì)于多標(biāo)簽實(shí)例,請(qǐng)使用MultiLabelBinarizer

>>> lb = preprocessing.MultiLabelBinarizer()
>>> lb.fit_transform([(1, 2), (3,)])
array([[1, 1, 0],
       [0, 0, 1]])
>>> lb.classes_
array([1, 2, 3])

6.9.2 標(biāo)簽編碼

LabelEncoder是一個(gè)實(shí)用程序類,可幫助標(biāo)準(zhǔn)化標(biāo)簽,使其僅包含0到n_classes-1之間的值。有時(shí)對(duì)于編寫有效的Cython例程很有用。LabelEncoder可以如下使用:

>>> from sklearn import preprocessing
>>> le = preprocessing.LabelEncoder()
>>> le.fit([1, 2, 2, 6])
LabelEncoder()
>>> le.classes_
array([1, 2, 6])
>>> le.transform([1, 1, 2, 6])
array([0, 0, 1, 2])
>>> le.inverse_transform([0, 0, 1, 2])
array([1, 1, 2, 6])

它也可以用于將非數(shù)字標(biāo)簽(只要它們是可哈希的和可比較的)轉(zhuǎn)換為數(shù)字標(biāo)簽:

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


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)