最邻近规则分类-个人笔记

KNN (K-Nearest Neighbor)

KNN算法是用来实现对待测数据进行分类。我们根据题目就能看出,是找最邻近的进行分类。

在这里引入欧氏距离这个概念,其实就是求两个点的距离:E(x,y)=\sqrt{\sum_{i=0}^{n}(x_{i}-y_{i})^2}

举个例子,我们有一组数据A,我们知道他们的类别(加入分为两类),那么我们需要对另一组数据B进行判断,那么我们就需要分别对B中的每一个数据进行判断,B中的每一个数据和A中的所有数据进行欧式距离的求解,我们就可以得到B中每一个数据对A中数据的距离大小,这里我们设置一个K值(个数),一般是奇数,然后我们看在前k个最近距离内,是A中的哪个类别的多,我们就认为这个数据是属于那一类的,这样我们便可以对B中的所有数据进行分类。这就是我们的KNN分类算法的思想。

这里不得不说的是KNN算法的复杂程度还是很高的,如果已知和待测都有n个数据,那么我们就需要进行欧式距离的计算次数为n的平方(O(n^2))次。

同时:当其样本分布不平衡时,比如其中一类样本过大(实例数量 过多)占主导的时候,新的未知实例容易被归类为这个主导 样本,因为这类样本实例的数量过大,但这个新的未知实例 实际并没有接近目标样本。

所以对K值的选取也有一定的要求,算法的应用对数据的分布也有要求,不然很容易分类错误。

最邻近规则分类-个人笔记_第1张图片

 跑的图谱。

你可能感兴趣的:(KNN算法,机器学习)