机器学习算法
本文只是自己在学习KNN算法的时候的一些总结,也相当于笔记,自己在遗忘的时候方便来温习回顾,同时也希望能够让看到这篇文章的同学也能够多多少少有些收获嘻嘻。
- KNN(K近邻算法)
KNN最简单的分类算法之一,指导思想:“近朱者赤,近墨者黑”。它属于有监督学习的分类算法。
有监督学习:用给定的训练数据集去学习一个新函数(模型),当输入一个新的数据时可以根据这个新函数去判定其类别。也就是说,有监督学习是已知样本数据集的特点的。
无监督学习:对输入的数据集的样本属性不知,无法预先知道样本的标签。
计算方法原理介绍
KNN算法:
1.首先计算距离,也就是所要求的点与其他已知点之间的距离是多少来判断它的所属类别(计算距离通常选用欧几里得距离或者是马氏距离)
2.根据所求出点与点之间的距离来进行排序(可以升序排序)距离最近的排前面,距离最远的排后面
3.取前K个,比如取前6个,前7个等等
4.加权求平均。比如前两个它距离我很近,那么我就应该给它比较大的权重,而虽然排在前几个,但是离我的距离相对较远,所以我给它相对较小的权重比较合适。
K的选取
首先K值如果取得太大就会出现分类比较模糊;
K值取的太小就会受个例影响,波动比较大。
选取方法:
(1)靠经验,改变K值,测试结果并对比
(2)均方根误差
实例:
样本数据选取的是癌症检测的部分数据来进行测试