特征的二值化是指将数值型的特征数据转换成布尔型的值,可以使用类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.]])
扫描二维码关注公众号,回复:
5704661 查看本文章