我有一个等概率值的向量。让我们说:
[ 12.62 22.856 22.983 23.111 24.295]
我必须在这些值中选择一个值。在这种情况下,在我看来,我会排除12.62。其余(22.856 22.983 23.111 24.295)的平均值为23.311。我认为23.111应该是这些等概率值之间的一个很好的选择。在考虑任意值和维度的一般向量时,我应该使用哪个标准/算法在所考虑的向量内选择单个值?
答案 0 :(得分:2)
我正试图从你的问题和迄今为止的评论中读取(即猜测)你隐含已经适用的标准。我想出了这些:
根据这些标准,可以提出以下算法:
当然,还有无数许多其他算法也能满足所确定的标准,具有不同的意义和对不同用例的不同适用性。当然,再次取决于实际的用例,我确定的标准可能会或可能不是您所做的正确概括。
答案 1 :(得分:1)
在考虑任意值和维度的一般向量时,我应该使用哪个标准/算法在所考虑的向量中选择单个值?
这取决于你想要的东西。
可以是mean(input_vector)
或norm(input_vector)
。
首先应该问问自己这个标量值是什么/代表什么。
答案 2 :(得分:0)
一个简单的解决方案:
vector=[ 12.62 22.856 22.983 23.111 24.295];
all_idx = 1:length(vector);
outlier_idx = abs(vector- median(vector)) > 2*std(vector);
vector=vector(~outlier_idx);
val = mean(vector);
tmp = abs(vector-val);
[v, idx] = min(tmp);
vector(idx)
此代码返回23.111,我假设异常值与中位数的偏差超过两个标准偏差。