从KNN算法步入机器学习殿堂
本文中介绍的机器学习算法中的一种监督学习的算法:KNN
算法,全称是K-Nearest Neighbor
,中文称之为K
近邻算法。
它是机器学习可以说是最简单的分类算法之一,同时也是最常用的分类算法之一。在接下来的内容中,将通过以下的几个方面的内容对该算法进行详细的讲解:
<!--MORE-->
算法思想
思想
首先对KNN
算法的思想进行简单的描述:
KNN算法是一个基本的分类和回归的算法,它是属于监督学习中分类方法的一种。其大致思想表述为:
- 给定一个训练集合M和一个测试对象n,其中该对象是由一个属性值和未知的类别标签组成的向量。
- 计算对象m和训练集中每个对象之间的距离(一般是欧式距离)或者相似度(一般是余弦相似度),确定最近邻的列表
- 将最近邻列表中数量占据最多的类别判给测试对象z。
- 一般来说,我们只选择训练样本中前K个最相似的数据,这便是k-近邻算法中k的出处。
用一句俗语来总结KNN算法的思想:物以类聚,人以群分
说明
- 所谓的监督学习和非监督学习,指的是训练数据是否有类别标签,如果有则是监督学习,否则是非监督学习
- 在监督学习中,输入变量和输出变量可以连续或者离散的。如果输入输出变量都是连续型变量,则称为回归问题(房价预测);如果输出是离散型变量,则称之为分类问题(判断患者是否属于患病)
- 在无监督学习中,数据是没有任何标签的,主要是各种聚类算法(以后学习)
算法步骤
KNN
算法的步骤非常简单:
- 计算未知实例到所有已知实例的距离;
- 选择参数
K
(下面