预处理数据sklearn-preprocessing


二值化–特征的二值化
特征的二值化是指将数值型的特征数据转换成布尔类型的值。可以使用实用类Binarizer。

from sklearn import preprocessing
import numpy as np
# 创建一组特征数据,每一行表示一个样本,每一列表示一个特征

x = np.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.]])
默认是根据0来二值化,大于0的都标记为1,小于等于0的都标记为0。

当然也可以自己设置这个阀值,只需传出参数threshold即可。

binarizer = preprocessing.Binarizer(threshold=1.5)
binarizer.transform(x)

array([[ 0., 0., 1.],
[ 1., 0., 0.],
[ 0., 0., 0.]])
binarize and Binarizer都可以用在密集向量和稀疏矩阵上。

以上内容来源于:https://www.cnblogs.com/dshn/p/7800742.html
pd.qcut()
qcut是根据这些值的频率来选择箱子的均匀间隔,即每个箱子中含有的数的数量是相同的

   factors =np.random.randn(9)
    [ 2.12046097  0.24486218  1.64494175 -0.27307614 -2.11238291 2.15422205 -0.46832859  0.16444572  1.52536248]

pd.qcut(factors, 3) #返回每个数对应的分组
[(1.525, 2.154], (-0.158, 1.525], (1.525, 2.154], (-2.113, -0.158], (-2.113, -0.158], (1.525, 2.154], (-2.113, -0.158], (-0.158, 1.525], (-0.158, 1.525]]
Categories (3, interval[float64]): [(-2.113, -0.158] < (-0.158, 1.525] < (1.525, 2.154]]

pd.qcut(factors, 3).value_counts() #计算每个分组中含有的数的数量
(-2.113, -0.158]    3
(-0.158, 1.525]     3
(1.525, 2.154]      3

传入lable参数

>>> pd.qcut(factors, 3,labels=["a","b","c"]) #返回每个数对应的分组,但分组名称由label指示
[c, b, c, a, a, c, a, b, b]
Categories (3, object): [a < b < c]

>>> pd.qcut(factors, 3,labels=False) #返回每个数对应的分组,但仅显示分组下标
[2 1 2 0 0 2 0 1 1]

传入retbins参数

pd.qcut(factors, 3,retbins=True)# 返回每个数对应的分组,且额外返回bins,即每个边界值
[(1.525, 2.154], (-0.158, 1.525], (1.525, 2.154], (-2.113, -0.158], (-2.113, -0.158], (1.525, 2.154], (-2.113, -0.158], (-0.158, 1.525], (-0.158, 1.525]]
Categories (3, interval[float64]): [(-2.113, -0.158] < (-0.158, 1.525] < (1.525, 2.154],array([-2.113, -0.158 ,  1.525,  2.154]))
参数说明
x-ndarray或Series–
qinteger,指示划分的组数–
labelsarray或bool,默认为None。当传入数组时,分组的名称由label指示;当传入Flase时,仅显示分组下标
retbins bool是否返回bins,默认为False。当传入True时,额外返回bins,即每个边界值。
precisionint,精度,默认为3

作者:starter_zheng
来源:CSDN
原文:https://blog.csdn.net/starter_____/article/details/79327997
版权声明:本文为博主原创文章,转载请附上博文链接!

作者:starter_zheng
来源:CSDN
原文:https://blog.csdn.net/starter_____/article/details/79327997
版权声明:本文为博主原创文章,转载请附上博文链接!
作者:starter_zheng
来源:CSDN
原文:https://blog.csdn.net/starter_____/article/details/79327997
版权声明:本文为博主原创文章,转载请附上博文链接!

传入q参数

1、二值化–特征的二值化
特征的二值化是指将数值型的特征数据转换成布尔类型的值。可以使用实用类Binarizer。

from sklearn import preprocessing
import numpy as np

创建一组特征数据,每一行表示一个样本,每一列表示一个特征

x = np.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.]])
默认是根据0来二值化,大于0的都标记为1,小于等于0的都标记为0。

当然也可以自己设置这个阀值,只需传出参数threshold即可。

binarizer = preprocessing.Binarizer(threshold=1.5)
binarizer.transform(x)
array([[ 0., 0., 1.],
[ 1., 0., 0.],
[ 0., 0., 0.]])
binarize and Binarizer都可以用在密集向量和稀疏矩阵上。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值