【问题标题】:Sklearn LogisticRegression predict_proba result look weirdSklearn LogisticRegression predict_proba 结果看起来很奇怪
【发布时间】:2018-05-16 14:17:43
【问题描述】:

我对 SKlearn、机器学习及其相关领域还很陌生。找了一天还是没找到答案。

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]]

我很困惑输出是否正确。当我用相同的数据集尝试支持向量机时,我得到了[[ 0.21071225 0.42531172 0.01024818 0.35372784]],它看起来像概率,这就是我想要的。如何使 LogisticRegression 模型获得与 SVM 相同的概率样式?我误会了什么?

【问题讨论】:

    标签: scikit-learn


    【解决方案1】:

    这只是打印风格!

    看看这个演示:

    代码:

    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预测的输出没有小值,就像另一个人一样!

    suppress:bool,可选

    使用科学符号(默认假)是否或不抑制小浮点值的打印。

    使用科学符号也适用于Python类型:

    x = 0.00000001
    print(x)
    # 1e-08    
    

    【讨论】:

      猜你喜欢
      • 2021-02-19
      • 2016-05-20
      • 1970-01-01
      • 2021-07-02
      • 1970-01-01
      • 2018-05-14
      • 2021-03-25
      • 2015-03-20
      • 2011-07-19
      相关资源
      最近更新 更多