我有两个类别:
x={-3,-2,1} //represented by *y={0,5,6,7} //represented by x
如果k=3, 你如何确定决策边界?
* * x * x x x | | | | | | | | | | | | |-5 -4 -3 -2 -1 0 1 2 3 4 5 6 7
据说正确的答案是1.5,在1和2之间。这是怎么回事?
回答:
KNN算法通过查看K个最近的邻居,查看它们的标签,并将多数(最流行)的标签分配给新的观察值,来对新的观察值进行分类。
对于K=3的KNN,任何小于1.5的值将被分类为*
,任何大于1.5的值将被分类为x
。
你可以通过尝试几个例子来看到这一点。假设你需要对值1进行分类。三个最近的邻居是1处的*
,0处的x
,和-2处的*
。由于有两个*
和一个x
,1将被分类为*
。
现在假设你想对2进行分类。这里,三个最近的邻居是0处的x
,1处的*
,和5处的x
。所以2将被分类为x
。
KNN过程隐式地定义了一个决策边界。我所知道的最好方法是尝试大量的例子,并寻找观察值分类从一个类别转换到另一个类别的过渡边界。在你的例子中,这将看起来像这样:
-5 -> *
-4 -> *
-3 -> *
-2 -> *
-1 -> *
0 -> *
1 -> *
2 -> x
3 -> x
4 -> x
你可以在你的例子中看到这一点 – 决策边界在1和2之间。因此答案是1.5。