用sklearn.preprocessing做数据预处理(三)——二值化

特征的二值化是指将数值型的特征数据转换成布尔型的值,可以使用类Binarizer
默认是根据0来二值化,大于0的都标记为1,小于等于0的标记为0

from sklearn import preprocessing
import numpy as np

x = np.array([[1.,-1.,2.],
             [2.,0.,0.],
             [0.,1.,-1.]])

x

array([[ 1., -1.,  2.],
       [ 2.,  0.,  0.],
       [ 0.,  1., -1.]])

binarizer = preprocessing.Binarizer().fit(x)
binarizer.transform(x)

array([[1., 0., 1.],
       [1., 0., 0.],
       [0., 1., 0.]])

当然也可以自己设置一个阈值,只需传入一个参数threshold即可

binarizer = preprocessing.Binarizer(threshold=1.5)     #这个地方没有用fit(x),依然能出结果
binarizer.transform(x)

array([[0., 0., 1.],
       [1., 0., 0.],
       [0., 0., 0.]])

binarizer

Binarizer(copy=True, threshold=1.5)
尝试Binarizer()默认值情况下不用fit(x),依然运行出了结果,感觉这里fit(x)可有可无
binarizer = preprocessing.Binarizer() 
binarizer
Binarizer(copy=True, threshold=0.0)

binarizer.transform(x)

array([[1., 0., 1.],
       [1., 0., 0.],
       [0., 1., 0.]])

x_test1 = np.array([[-3., -2., 5.]])
binarizer.transform(x_test1)

array([[0., 0., 1.]])

猜你喜欢

转载自blog.csdn.net/weixin_44530236/article/details/88077580