KNN决策边界

我有两个类别:

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处的*。由于有两个*和一个x1将被分类为*

现在假设你想对2进行分类。这里,三个最近的邻居是0处的x1处的*,和5处的x。所以2将被分类为x

KNN过程隐式地定义了一个决策边界。我所知道的最好方法是尝试大量的例子,并寻找观察值分类从一个类别转换到另一个类别的过渡边界。在你的例子中,这将看起来像这样:

-5 -> *
-4 -> *
-3 -> *
-2 -> *
-1 -> *
0 -> *
1 -> *
2 -> x
3 -> x
4 -> x

你可以在你的例子中看到这一点 – 决策边界在1和2之间。因此答案是1.5。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注