机器学习:KNN
KNN:K-nearst neighbors 简介: k-近邻算法采用测量不同特征值之间的距离来进行分类,简而言之为: 人以类聚,物以群分 KNN既可以应用于分类中,也可用于回归中;在分类的预测是,一般采用 多数表决法 ;在做回归预测时,一般采用 平均值法 KNN三要素: 在KNN的算法中,主要考虑以下三个要素: K值的选择 :表示样本可由距离其最近的K个邻居来代替;可由 交叉验证 来选择最适合K值 当K值较小的时候,表示使用较小领域的样本进行预测,因此会导致模型更加复杂,导致过拟合; 当K值较大的时候,表示使用较大领域的样本进行预测,训练误差会增大,模型会简化,容易导致欠拟合 距离的度量: 一般使用欧式距离; 欧式距离:若 \(a(a_1,a_2,a_3)\) , \(b(b_1,b_2,b_3)\) ,则两者的欧式距离为: \[ \sqrt{(a1-b1)^2+(a2-b2)^2+(a2-b2)^2} \] 决策规则: 在 分类模型 中,主要使用多数表决或者加权多数表决法;在 回归模型 中,主要使用平均值法或者加权平均值法 多数表决/均值法:每个邻近样本权重相同; 加权多数表决/加权平均值法:每个邻近样本权重不同;一般情况下,采用权重和距离成反比的方式进行计算 KNN算法实现: 蛮力实现(brute) : 计算预测样本到所有训练集样本的距离