k近邻算法(knn)与k-means算法的对比
k近邻算法(knn)是一种基本的分类与回归的算法,k-means是一种基本的聚类方法。
k近邻算法(knn)
基本思路:如果一个样本在特征空间的k个最相似(即特征空间最邻近)的样本大多数属于某一类,则该样本也属于这一类。
影响因素:
- k值的选择。k的值小,则近似误差小,估计误差大;k的值大,则近似误差大,估计误差小。(近似误差即算法在训练集上的误差,估计误差即算法在测试集上的误差。近似误差小,会出现过拟合的现象,即模型在训练集上预测误差小,在未知的测试集上则表现差,此时模型并非最优模型;估计误差小,则模型在未知的测试集上的误差小,模型接近于最优模型);
- 距离的计算。距离计算的是样本在特征空间的邻近程度,通常用欧式距离或者曼哈顿距离;
- 分类决策规则。往往采用多数表决。
k-means算法
k-means算法的基本步骤如下:
- 随机选择k个样本作为初始化的中心点;
- 分别计算其它样本到这k个中心点的距离,并分别将这些样本划分给距离最近的那个中心;
- 重新计算k类样本的均值,得到新的k个中心点;
- 重复步骤2和3,直到样本到中心点的距离不再改变,或者迭代达到一定次数为止。
Reference:
不当之处,敬请批评指正。