k-最近邻分类器但使用分布?

时间:2011-04-19 11:34:20

标签: statistics knn

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

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

对于观察者来说,有明显的,独立的聚类,但不幸的是它们分布在线上而不是紧密的簇中。一条线的扩展角度大约为80度,另一条线宽度大约为45度,另一条线距离水平方向大约10度,但这三个线条似乎都指向原点。

Clusters

我想对某些测试数据执行最近邻分类,并且根据事物的外观,如果测试数据与训练数据非常相似,则3最近邻分类器将正常工作,除非数据接近图的原点,在这种情况下,三个簇非常接近,可能会有一些错误。

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

感激任何意见。

干杯

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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