有人为我的matlab程序发光吗?我有来自两个传感器的数据,我正在分别对每个传感器进行kNN
分类。在这两种情况下,训练集看起来像一组总共42行的向量,如下所示:
[44 12 53 29 35 30 49;
54 36 58 30 38 24 37;..]
然后我得到一个样本,例如[40 30 50 25 40 25 30]
和我想把样本归类到最近的邻居。作为接近度的标准,我使用欧几里德度量,sqrt(sum(Y2)),其中Y
是每个元素之间的差异,它给出了Sample和每个训练集类别之间的距离数组。
那么,有两个问题:
补充:到目前为止我正在使用公式:probability = distance/sum of distances
,但我无法绘制正确的cdf
或直方图。这给了我一些分布,但我看到了一个问题,因为如果距离很大,例如700,那么最接近的类将获得最大的概率,但它是错的,因为距离太大而不能与任何课程相比。
任何帮助或评论都非常感谢。
您可以尝试反转距离以获得可能性度量。即距离x越大,它的倒数越小。然后,你可以标准化为概率=(1 /距离)/(总和(1 /距离))
我认为有多种方法可以做到这一点:
嗨:假设您使用0到1之间的标准距离,您是否尝试过公式概率= 1 - 距离?