Python sklearn中的多项式logistic函数
我试图复制sklearn的LogisiticCregression分类器对多项式类的结果。 这是我的代码:Python sklearn中的多项式logistic函数,python,scikit-learn,Python,Scikit Learn,我试图复制sklearn的LogisiticCregression分类器对多项式类的结果。 这是我的代码: import math y = 24.019138 z = -0.439092 print 'Using sklearn predict_proba function: ' print all_classifiers['1'][0].predict_proba([y,z]) print 'Coefficients:' print all_classifiers['1'][0].coef_
import math
y = 24.019138
z = -0.439092
print 'Using sklearn predict_proba function: '
print all_classifiers['1'][0].predict_proba([y,z])
print 'Coefficients:'
print all_classifiers['1'][0].coef_
print 'Intercept:'
print all_classifiers['1'][0].intercept_
with_sigmoid = []
for i,j in zip(all_classifiers['1'][0].coef_,all_classifiers['1'][0].intercept_):
beta1,beta2 = i
beta0 = j
a = beta0 + (y*beta1) + (z*beta2)
b = 1/float(1+math.exp(-a))
with_sigmoid.append(b)
print 'Using sigmoid function: '
print with_sigmoid
这给了我输出:
Using sklearn predict_proba function:
[[ 9.03429446e-35 4.91411807e-01 5.08588193e-01]]
Coefficients:
[[ -3.47464867 -15.3518603 ]
[ 0.91372436 0.98331135]
[ 9.17971403 64.76067487]]
Intercept:
[ -0.99614688 -18.16136032 3.32166197]
Using sigmoid function:
[1.7763476601257703e-34, 0.9662273209839563, 1.0]
结果是不同的,使用sigmoid函数,概率加起来甚至不等于1。考虑到它使用一对所有分类,我认为这应该是可行的。我是不是遗漏了什么?谢谢。一对所有分类不必加起来就是一。这是三个分类器独立工作,每个类一个。但是,如果您规范化“一对所有”分类给出的值,您将得到“预测概率”给出的概率
>>> import numpy as np
>>> one_vs_all = np.array([1.7763476601257703e-34, 0.9662273209839563, 1.0])
>>> one_vs_all/sum(one_vs_all)
array([ 9.03429446e-35, 4.91411807e-01, 5.08588193e-01])