是否可以从决策树分类器predivit_proba()获得dict {class {class:proba}?

发布于 2025-02-13 04:24:52 字数 150 浏览 1 评论 0原文

我的模型有超过1K的类,该方法返回带有概率的数组,其中大多数为0。我想获得具有其概率的前3个预测。我该如何实施? 我希望能得到这样的东西:

[{class: proba}, {class: proba}, {class: proba}]

My model have more than 1k classes, and the method returns an array with probabilities, most of which are 0. I want to get top 3 predictions with their probabilities. How can i implement this?
I expect to get something like this:

[{class: proba}, {class: proba}, {class: proba}]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不寐倦长更 2025-02-20 04:24:53

假设它是一个示例:

{k: probs[k] for k in reversed(np.argpartition(probs,-3)[-3:])}

对于较大的测试集,它将成长为类似:

[{k: p[k] for k in reversed(np.argpartition(p,-3)[-3:])} for p in probs]    

argpartition就像argsort,但只能整理出该符号中最大值的3个索引,为您节省一些复杂性。

或者,如果您不介意仅为此导入火炬,则有一个不错的.topk()张量的方法。

Assuming it's one sample:

{k: probs[k] for k in reversed(np.argpartition(probs,-3)[-3:])}

For a larger test set it'll grow into something like:

[{k: p[k] for k in reversed(np.argpartition(p,-3)[-3:])} for p in probs]    

argpartition is like argsort but would only sort out 3 indices with largest values in this notation, saving you some complexity.

Or, if you don't mind importing torch just for this, it's got a nice .topk() method for tensors.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文