如何解决给定多个预测向量,如何有效地获得票数最多的标签在 numpy/pytorch 中?
我有 3 个向量代表相同数据的 3 个不同标签预测:
P1=[31,22,11,10,9,23 ....] # length over 1M
P2=[31,12,8,30 ....] # length over 1M
P3=[30,1,31 ....] # length over 1M
Ans= [31,23,....]
基本思想是如果预测的票数最高(例如“31”在第一列中的票数为 2),我们选择它,但如果所有候选人都有不同的票数(例如“23”、“30”),最后一列中的“31”),我们可以选择其中任何一个。
这些向量可以是 numpy 数组、列表或 pytorch 张量。考虑到此类向量的长度超过 1000,000,找到 Ans
的最有效方法(主要是运行时)是什么?
解决方法
使用scipy.mode
:
import numpy as np
from scipy.stats import mode
combined = np.array([P1,P2,P3])
majority_vote = mode(combined)[0]
,
您可以取张量的 mode
:
t = torch.tensor([P1,P3])
t.mode(0).values
tensor([31,22,12,10,8,9,23])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。