predict与predict_pro小记

简单的逻辑回归二分类问题

from sklearn.linear_model import LogisticRegression 
import numpy as np 
x_train = np.array([[1,2,3], 
                    [1,3,4], 
                    [2,1,2], 
                    [4,5,6], 
                    [3,5,3], 
                    [1,7,2]]) 
   
y_train = np.array([0,1,0,1,1,0]) 
x_test = np.array([[2,2,2], 
                   [3,2,6], 
                   [1,7,4]]) 
   
clf = LogisticRegression() 
clf.fit(x_train, y_train) 

predict

print(clf.predict(x_test)) 
'''
[0 1 1]
'''

predict_pro

print(clf.predict_proba(x_test)) 
'''
[[0.78593022 0.21406978]
 [0.0458577  0.9541423 ]
 [0.26488952 0.73511048]]
'''

可以看到predict_pro就是每个类别的概率,而predict是将predict_pro中概率最大类别返回。其实不用predict的话,可以使用:

np.argmax(clf.predict_proba(x_test),axis=1)
'''
array([0, 1, 1], dtype=int64)
'''

可以达到同样的效果:

  • 这时候有人就会问了,为啥可以用predict 还要用这种麻烦的操作啊,这是因为啊,一般我们做交叉验证的时候我们保存的都是每一折概率,然后取平均,这时候按概率大小取索引就是我们的分类结果啦

  • 这个argmax 就是按轴取最大值的索引,这个地方有点小绕,例如上面的axis=1表示在列上取索引,那么就是取出每一行最大值得列号,即该行的类别。

  • axis=0(行) axis=1(列)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值