K近邻 K-nearst neighbors KNN
KNN是一种基本的机器学习算法,所谓K近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的K个邻居来代表
KNN在做回归和分类的主要区别在于最后做预测的时候的决策方式不同
KNN在分类预测时,一般采用多数表决法
KNN在回归预测时,一般采用平均值法
KNN算法原理
- 从训练集合中获取K个离待预测样本距离最近的样本数据
- 根据获取得到的K个样本数据来预测当前待测样本的目标属性值
在KNN算法中,非常重要的主要是三个因素:
- K值选择,对于K值得选择,一般根据样本分布选择一个较小得值,然后通过交叉验证来选择一个比较合适得最终值。当选择比较小的K值的时候,表示使用较小领域中的样本进行预测,训练误差会减少,但是会导致模型变得复杂,容易过拟合;当选择较大的K值得时候,表示使用较大领域中得样本进行预测,训练误差会增大,同时会使模型变得简单,容易导致欠拟合。
- 距离的度量,一般使用欧氏距离(欧几里得距离)
- 决策规则,在分类模型中,主要使用多数表决法或者加权多数表决法;在回归模型中,主要使用平均值法或者加权平均值法
KNN分类预测规则
在KNN分类应用中,一般采用多数表决法或者加权多数表决法
多数表决法:每个邻近样本的权重是一样的,也就是说最终预测的结果为出现类别最多的那个类
加权多数表决法:每个邻近样本的权重是不一样的,一般情况下采用权重和距离成反比的方式来计算
KNN回归预测规则
在KNN