K近邻模块
2023-12-23 本文已影响0人
大龙10
书名:计算机视觉40例从入门到深度学习:OpenCV-Python
作者:李立宗
出版社:电子工业出版社
出版时间:2022-07-01
ISBN:9787121436857
第15章 机器学习导读
15.3 OpenCV中的机器学习模块
15.3.4 K近邻模块
一、定义
-
物以类聚,人以群分。K近邻算法应用的就是这个原理。
-
例如,某创业公司根据工作年限和项目经验,将员工划分为S级和M级。小明入职后想知道自己会被定位到哪个等级,对此有如下三种情况:
● 他询问了和自己情况最接近的一个同事(K=1),该同事的等级为S级,因此他感觉自己会被确定为S级。
● 他询问了和自己情况最接近的3个同事(K=3),其中两个是M级,一个是S级,因此他感觉自己会被确定为M级。
● 他询问了和自己情况最接近的5个同事(K=5),其中两个是M级,三个是S级,因此他感觉自己会被确定为S级。
针对此情况有如图15-26所示K近邻算法示例示意图
图15-26 K近邻算法示例示意图 -
上述就是K近邻算法的基本思想,分类结果在一定程度上取决于K值。一般来说:
● 小的K值:偏差大,方差大,容易过拟合。在极端情况下,K=1时,选取的是离待分类对象最近的样本,这个样本如果是噪声,那么机器就学到了噪声。例如,小明只问了一个人就判断自己会被确定为这个人的级别。如果这个人的级别是个特例,那么小明的判断就是错误的。
● 大的K值:高偏差,方差小,欠拟合。在极端情况下,K=N(N为训练数据的个数),无论输入数据是什么,机器都将简单地预测其属于在训练数据中最多的类,相当于没学习。例如,小明入职的公司共100人,其中,60个人是S级,40个人是M级。小明问了所有人的情况,判断出S级人多,并据此认为自己会被确定为S级。
● 好的K值:能较好地完成任务。
距离是K近邻算法中非常关键的参数,在计算距离时,通常需要考虑很多因素。