Sklearn LogisticRegression predict_proba结果看起来很奇怪

我对SKlearn,机器学习及其相关领域颇为陌生。我搜索了一天,但仍然无法找出答案。Sklearn LogisticRegression predict_proba结果看起来很奇怪

model = LogisticRegression(C=1) 

model.fit(X, y)

print(model.predict_proba(X_test))

// output

[[ 1.01555532e-08 2.61926230e-01 7.37740949e-01 3.32810963e-04]]

我很困惑输出是否正确。当我尝试使用相同数据集的SVM时,我得到了[[ 0.21071225 0.42531172 0.01024818 0.35372784]],这看起来像是概率,而这正是我想要的。我怎样才能让LogisticRegression模型获得像SVM一样的概率风格?我误解了什么?

回答:

这只是印刷风格!

看一看这个演示:

代码:

import numpy as np 

p = np.array([[ 1.01555532e-08, 2.61926230e-01, 7.37740949e-01, 3.32810963e-04]])

print('p: ', p)

print('sum: ', p.sum()) # approximately a probability-distribution?

np.set_printoptions(suppress=True)

print('p: ', p) # same print as above

# but printing-style was changed before!

输出:

p: [[1.01555532e-08 2.61926230e-01 7.37740949e-01 3.32810963e-04]] 

sum: 1.0000000001185532

p: [[0.00000001 0.26192623 0.73774095 0.00033281]]

numpy的使用了大量的代码,再决定如何打印您阵列,这取决于里面的值!在这里,我们改变了一些东西,使用np.set_printoptions。

你的输出看起来不一样,因为你的SVM预测的输出没有很小的值,就像另一个那样!

抑制:BOOL,可选

无论使用压制科学记数法(默认为false)小浮点值的打印。

运用科学的记法也适用于Python的类型:

x = 0.00000001 

print(x)

# 1e-08

以上是 Sklearn LogisticRegression predict_proba结果看起来很奇怪 的全部内容, 来源链接: utcz.com/qa/257627.html

回到顶部