答案 0 :(得分:0)
如果要为此问题构建分类模型,则需要一个特征向量f[i]
,可以对点p[i]
进行评估。我们可以构建的一个特征是该点与其K Karest Neighbors的距离。假设我们选择k = 4
。并且特征向量看起来像伪代码,
for i = 1 to count(PositivePoints)
k = 4
nn = KNN(p[i],k)
for j= 1 to k
vec = nn[j] - p[i]
f[i][j] = norm(vec)
end
end
在上面的代码中,f
是每行(f[i]
)的矩阵,其中的一个特征向量(点p[i]
)和norm
是{{为矢量定义的3}}(类似于欧氏距离)。 PositivePoints
是属于该模式的点集。
现在,您可以建立模型p(y|F)
的可能性。即如果您获得模型F
(由矩阵f
推测),那么点(y
)属于该模式的可能性是多少。为了在一般情况下执行此操作,可以使用L2 norm或Maximum apostriori estimation。
但为了简单起见,让我们构建p(y|F)
如下,
if(norm(y - F) < t) then
p(y|F) = 1
else
p(y|F) = 0
在上面的伪代码中,t
是一个任意阈值,你可以根据经验找到它取决于正点的噪声,y
是你想要知道的有趣点,如果它属于正面,F
是由伪代码决定的模型,
for j= 1 to k
F[j] = median(f[:][j])
end
在上面的代码中,f[:][j]
类似于矩阵f
的 j 列,而F[j]
是到 j的距离邻居,这是积极点中最常见的。我选择中位数而不是平均值,因为它对噪音更强。虽然从您分享的图像来看,您似乎没有噪音。