机器学习算法非常之多,下面是常见算法思想及优缺点比较。
1. KNN
KNN(k-nearest neighbor)的思路很简单,就是计算测试数据与类别中心的距离。KNN实际上利用训练数据集对特征向量进行空间划分,并作为其分类的模型。K值的选择、距离度量及分类决策规则是KNN的三个基本要素。
1.1 算法步骤:
step.1—初始化距离为最大值
step.2—计算未知样本和每个训练样本的距离dist
step.3—得到目前K个最临近样本中的最大距离maxdist
step.4—如果dist小于maxdist,则将该训练样本作为K-最近邻样本
step.5—重复步骤2、3、4,直到未知样本和所有训练样本的距离都算完
step.6—统计K-最近邻样本中每个类标号出现的次数
step.7—选择出现频率最大的类标号作为未知样本的类标号
1.2 常见问题
距离度量选择
一般采用马氏距离或者欧式距离。
高维度对距离衡量的影响:众所周知当变量数越多,欧式距离的区分能力就越差。变量值域对距离的影响:值域越大的变量常常会在距离计算中占据主导作用,因此应先对变量进行标准化。K值选择
k太小,分类结果易受噪声点影响;k太大,近邻中又可能包含太多的其它类别的点。(对距离加权,可以降低k值设定的影响)。
k值通常是采用交叉检验来确定(以k=1为基准)。
经验规则:k一般低于训练样本数的平方根。决策规则
投票法没有考虑近邻的距离的远近,距离更近的近邻也许更应该决定最终的分类,所以加权投票法更恰当一些。