KNN(k近邻)算法原理
- 原理:
样本点的特性与该邻居点的特性类似,可以简单理解为“物以类聚”。因此可以使用目标点的多个邻近点的特性表示当前点的特性。
2.KNN算法包含:
1、KNN分类算法:“投票法”,选择这k 个样本中出现最多的类别标记作为预测结果;
2、KNN回归算法:“平均法”,将这k 个样本的实值输出标记的平均值作为预测结果;
3.KNN算法的核心要素:
(1)K值的选择:K是超参(需要给定),K值过小容易导致过拟合(比如噪音点的数据会对结果造成影响),K值过大训练误差会增大,同时会使模型变得简单,容易导致欠拟合。
(2)距离的度量:采用欧式距离
(3)决策规则:在分类模型中,主要使用多数表决法或者加权多数表决法;在回归模型中,主要使用平均值法或者加权平均值法。(基于距离远近进行加权,,距离越近的样本权重越大.)
4.KNN算法实现方式:
4.1蛮力实现(brute):一般在小规模数据量的时候优先选择此方法;
原理:计算预测样本到所有训练集样本的距离,然后选择最小的k个距离即可得到K个最邻近点。缺点在于当特征数比较多、样本数比较多的时候,算法的执行效率比较低;
4.2KD树(kd_tree):
原理:KD树算法中,首先是对训练数据进行建模,构建KD树,然后再根据建好的模型来获取邻近样本数据。
4.3 其他方法,比如:Ball Tree、BBF Tree、MVP Tree等。