微信公众号:关注菜鸟解说大数据
关注可了解更多的大数据相关的内容。问题或建议,请公众号留言,或者可以浏览我的CSDN
如果你觉得我写的文章对你有帮助,欢迎关注和赞赏我
机器学习中的KNN算法
一.KNN的简单介绍
KNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。机器学习入门的第一个算法是k-近邻算法(KNN),它的工作原理是:存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们只选择样本数据集中前k个最相似的数据,这就是k-近邻算法中k的出处,通常k是不大于20的整数。最后,选择k个最相似数据中出现次数最多的分类,作为新数据的分类。由此也说明了KNN算法的结果很大程度取决于K的选择。
二.KNN的原理
在KNN中,通过计算对象间距离来作为各个对象之间的非相似性指标,避免了对象之间的匹配问题,在这里距离一般使用欧氏距离或曼哈顿距离:
欧氏距离:
曼哈顿距离:
同时,KNN通过依据k个对象中占优的类别进行决策,而不是单一的对象类别决策。这两点就是KNN算法的优势。接下来对KNN算法的思想总结一下:就是在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对应的特征进行相互比较,找到训练集中与之最为相似的前K个数据,则该测试数据对应的类别就是K个数据中出现次数最多的那个分类,其算法的描述为:
- (1) 计算已知类别数据集中的点与当前点之间的距离;
- (2) 按照距离递增次序排序;
- (3) 选取与当前点距离最小的k个点;
- (4) 确定前k个点所在类别的出现频率;
- (5) 返回前k个点出现频率最高的类别作为当前点的预测分类。
关注菜鸟解说大数据
如果你觉得到作者的文章对你有帮助,欢迎赞赏,有你的支持,公众号一定会越来越好!