机器学习:数据预处理之LabelBinarier()

class sklearn.preprocessing.LabelBinarizer(neg_label=0pos_label=1sparse_output=False)

fit(self, y)

设定或者初始化二进制分类器

fit_transform(self, y)

设定或者初始化二进制分类器并开始对y进行转换

get_params(self[, deep])

获取参数,不常用

inverse_transform(self, Y[, threshold])

反向转换,即复原数据

set_params(self, \*\*params)

设定参数,不常用

transform(self, y)

转换

binarizer表示的是将类别用二进制编码表示,而不是将数据分成两类的意思。

一、fit_transform()函数(常用)

fit_transform()函数:直接根据label本身有多少类,然后使用独热编码,把label二进制化。

>>> lb = preprocessing.LabelBinarizer()
>>> lb.fit_transform(['yes', 'no', 'no', 'yes'])
array([[1],
       [0],
       [0],
       [1]])

一、fit函数

1.传入一维数组

>>> from sklearn import preprocessing
>>> lb = preprocessing.LabelBinarizer()
>>> lb.fit([1, 2, 6, 4, 2])
LabelBinarizer()
#这里fit是初始化,意思是这是一个关于1,2,4,6总共四类的分类器
#每个类使用独热编码
#[1,0,0,0]表示第一类
#[0,1,0,0]表示第二类
#[0,0,0,0]表示不属于任何一类
>>> lb.classes_
array([1, 2, 4, 6])
>>> lb.transform([1, 6])
array([[1, 0, 0, 0],
       [0, 0, 0, 1]])

2.传入二维数组

>>> import numpy as np
>>> lb.fit(np.array([[0, 1, 1], [1, 0, 0]]))
LabelBinarizer()
>>> lb.classes_
array([0, 1, 2])
>>> lb.transform([0, 1, 2, 1])
array([[1, 0, 0],
       [0, 1, 0],
       [0, 0, 1],
       [0, 1, 0]])

传入的二维数组没有特别的意义,首先值必须是0,1,然后它的形状(n_samples, n_classes)它的列数代表了分类的数量n,且分类的数值一定是0,1,...,n-1

原创文章 26 获赞 33 访问量 1909

猜你喜欢

转载自blog.csdn.net/qq_40765537/article/details/105336061