【问题标题】:Finding out class from predict_proba?从 predict_proba 中找出类?
【发布时间】:2016-02-01 15:01:18
【问题描述】:

我正在使用 scikit-learn 中的 predict_proba 来查找文档被分配到特定主题的概率。我不是只打印前 1 个主题并将输入文档 X 分配给该主题 Y,而是有兴趣打印前 5 个概率以验证分类是否一致。但是,我怎样才能找出这 5 个概率在 88 个主题中属于哪些主题。

这是代码和输出:

model = LogisticRegression()
model = model.fit(matrix_tmp, label_tmp)

y_train_pred = model1.predict_log_proba(matrix_tmp_test)
order=np.argsort(y_train_pred, axis=1)
print(order[:, -5:])

所以这会打印出如下矩阵:

[[38 11  6 66  0]
 [20 13 11  0  1]
 [61 11  0 13  1]
 ..., 
 [19 30 13  0  1]
 [13 34 75  0  1]
 [ 0 46  3  1 40]]

按照排序,0代表概率最高的主题,66代表第二高的主题,以此类推。我的问题是如何找出矩阵中这些数字所指的主题。总共有 88 个主题(根据 model.classes_ 从 0 到 87 标记,其中只考虑前 5 个。那么如何以类似的方式打印主题?

【问题讨论】:

    标签: python scikit-learn


    【解决方案1】:

    你几乎拥有它。我认为以下简单的解决方案应该可以工作(我很快对其进行了测试,至少对我有用):

    print(model.classes_[order[:, -5:]])
    

    【讨论】:

      猜你喜欢
      • 2021-07-01
      • 1970-01-01
      • 2015-03-27
      • 2017-08-29
      • 2023-03-22
      • 2017-06-02
      • 2018-03-03
      • 2020-09-06
      • 1970-01-01
      相关资源
      最近更新 更多