从predict_proba中找出阶级



我正在使用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 个。那么如何以类似的方式打印主题呢?

你几乎拥有了它。我认为以下简单的解决方案应该有效(我快速测试了它,它至少对我有用):

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

相关内容

  • 没有找到相关文章