0

我正在为一些 2D 数据构建分类器。

我有一些我知道类的训练数据,并将它们绘制在图表上以查看聚类。

对观察者来说,有明显的、独立的集群,但不幸的是,它们分布在线条上而不是紧密的集群中。一个线扩展以大约 80 度角上升,另一个以 45 度角上升,另一个与水平线呈约 10 度角,但所有三个似乎都指向原点。

集群

我想对一些测试数据执行最近邻分类,从外观上看,如果测试数据与训练数据非常相似,则 3-最近邻分类器可以正常工作,除非数据接近图的原点,在这种情况下,三个集群非常接近,可能会有一些错误。

我应该为我的集群提出一些估计的高斯分布吗?如果是这样,我不确定如何将它与最近邻分类器结合起来?

感谢任何输入。

干杯

4

2 回答 2

0

在运行最近邻之前,将所有点转换为 [r, angle],并将 r 缩小到 0 到 90 的范围。
为什么 ?NN 使用点和中心之间的欧几里得距离(在大多数实现中),
但您希望distance( point, centre )更像 sqrt( (point.r - center.r)^2 + (point.angle - center.angle)^2 )
而不是 sqrt( (point.x - center.x)^2 + (point.y - center.y)^2 ) 。
将 r 缩小到 30 ? 10 ? 会比 r 更重的角度,这似乎是你想要的。

于 2011-05-11T18:30:15.330 回答
0

为什么要为此目的使用 k-NN?任何线性分类器都可以解决问题。尝试用 SVM 解决它,你会得到更好的结果。如果您坚持使用 kNN,您显然必须缩放特征并将它们转换为这里提到的极坐标。

于 2012-09-12T08:34:12.563 回答