KNN(K-Nearest Neighbor)就是k个最近的邻居的意思,即每个样本都可以用它最接近的k个邻居来代表。KNN常用来处理分类问题,但也可以用来处理回归问题。
核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。
相似度的衡量标准一般为距离,即距离越近相似度越高,距离越远相似度越小。
K值的选取
距离度量的方式
分类决策规则
对于K值的选择,没有一个固定的经验(超参数)。选择较小的K值,就相当于用较小的邻域中的训练实例进行预测,训练误差会减小,容易发生过拟合,选择较大的K值,就相当于用较大邻域中的训练实例进行预测,其优点是可以减少泛华误差,缺点是训练误差会增大。K值一般根据样本的分布,选择较小的值,通常通过交叉验证选择一个合适的K值。
欧氏距离(Euclidean Distance):这是最常用且直观的距离度量方法,它表示多维空间中两点之间的直线距离。在KNN中,欧氏距离通常用于连续数据的相似度计算。
曼哈顿距离(Manhattan Distance):也称为城市街区距离,它是沿着坐标轴测量的距离,适合用于城市地图中的距离计算,其中不能直接穿过建筑物或街区。在KNN中,当处理离散数据或者特征之间相互独立时,曼哈顿距离可能会被使用。
切比雪夫距离(Chebyshev Distance):在无限维的多项式空间中,切比雪夫距离是最大值范数,即各坐标数值差的最大值。这种距离度量方式适用于当一个属性对结果的影响非常显著时的场景。
除了上述三种,还有明可夫斯基距离(Minkowski Distance)、余弦相似度(Cosine Similarity)等其他距离度量方式
理论成熟,思想简单,
既可以用来做分类也可以用来做回归;
可用于非线性分类; 对数据没有假设,准确度高,对噪声不敏感。
计算量大;
样本不平衡问题 (即有些类别的样本数量很多,而其它样本的数量很少);
需要大量的内存。
即K值,邻近点的个数
{‘uniform’, ‘distance’}, callable or None, default=’uniform’
unifrom:表示权重相同,即只按照邻近点的多少判断其属于哪一类。
distance:表示权重于距离相关,距离近的点权重高,可能按照最近点来判断属于哪一类点
brute:暴力法,即计算出所有点的距离,选择最近的几个点。
kd树:具体原理较为复杂,推荐大家
https://www.cnblogs.com/ssyfj/p/13053055.html 这里kd树的原理解释的非常清楚
ball_tree:kd树一般用于20维以下,而kd树一旦超过20维,效果会不尽人意,因此ball_tree就是为了解决高维问题而提出的,具体原理大家可以去网上学习一下原理。
当p=1时,等效于使用曼哈顿距离(l1),当p=2时,等效于使用欧几里得距离(l2)。对于任意p,使用Minkowski距离(l_p)。此参数应为正数。
比如:欧氏距离,曼哈顿距离等,默认为:minkowski。
上述是处理分类问题: 对于回归问题我们怎么做呢
到此这篇knn模型是什么(knn模型是什么意思)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/77393.html