目录
1.KNN的工作原理
所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。KNN算法的核心思想是如果一个样本在特征空间中的K个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
简单理解:当预测一个新的值x的时候,根据它距离最近的k个点是什么类别来判断x属于那个类别。
2.简单示例
当k=4时,knn算法找到离他最近的四个点,红三角多,因此判断新来的为红三角 ,因此k值的选取至关重要。
3.K值的选取
通过交叉验证(将样本数据按照一定比例,拆分出训练用的数据和验证用的数据,)从选取一个较小的K值开始,不断增加K的值,然后计算验证集合的方差,最终找到一个比较合适的K值。
- 选择较小的k值,就相当于用较小的领域中的训练实例进行预测,训练误差会减小,只有与输入实例较近或相似的训练实例才会对预测结果起作用,与此同时带来的问题是泛化误差会增大。换句话说,k值的减小就意味着整体模型变得复杂,容易发生过拟合。
- 选择较大的k值,就相当于用较大领域中的训练实例进行预测,其优点是可以减少泛化误差,但缺点是训练误差会增大。这时候,与输入实例较远(不相似的)训练实例也会对预测器作用,使预测发生错误。换句话说,k值的增大就意味着整体的模型变得简单,容易发生欠拟合。
4.距离度量
1)二维空间两个点的欧式距离计算公式:
2)二维空间两个点的欧式距离计算公式:
5.KNN的特点
knn是一种非参的,惰性的算法模型 。
非参:模型不会对数据做出任何的假设,KNN建立的模型结构是根据数据来决定的,比较符合现实情况。
惰性:训练数据很快
6.KNN的优势和缺点
优势
1.简单易用
2.模型训练时间快(惰性)
3.预测效果好
4.对异常值不敏感
缺点
1.对内存要求高,存储了所有的训练数据
2.预测阶段慢
7.KNN的适用场景
当需要使用分类算法,且数据比较大的时候就可以尝试使用KNN算法进行分类了。