一、KNN算法的定义
已知训练集中的特征值和分类值,输入一个需要分类的数据点A,判断和A欧式距离最短的K个点,求这K个点中分类占比最多
的分类作为A点的类别。KNN算法比较简单,可以用于分类,也可以用于回归(临近点的均值做结果)。
二、KNN算法优缺点
优点:1、简单、容易实现和理解,不需要参数估计和训练
2、适用于对稀有事件进行分类
3、特别适用多分类问题,比SVM表现要好。
缺点:1、当样本不平衡时,如一个分类样本多,一个分类样本少,有可能导致输入一个新样本,该样本永远都属于样本多
的那一分类。改进方法:采用权值,与该样本距离小的邻居权值大。
2、计算量大,新输入一个样本,需要跟所有样本点做欧氏距离计算,排序选出K个最邻近点。改进方法:预先去除
对分类作用不大的样本。(如:以新入样本为圆心,经验值为半径,挑选圆内K个点,如不足K个点,再逐步放大
半径)。该改进算法比较适用于容量大的类域,而容量较小的类域容易产生误分。
三、KNN算法python实现(预测花的品种)