K-means方法是一种非监督学习的算法,它解决的是聚类问题。
算法思想:以空间中k个点为中心进行聚类,对最靠近他们的对象归类,通过迭代的方法,逐次更新各聚类中心的值,直到得到最好的聚类结果。
具体步骤:
- 从n个数据中随机选择 k 个对象作为初始聚类中心;
- 根据每个聚类对象的均值(中心对象),计算每个数据点与这些中心对象的距离;并根据最小距离准则,重新对数据进行划分;
- 重新计算每个有变化的聚类簇的均值,选择与均值距离最小的数据作为中心对象;
- 循环步骤2和3,直到每个聚类簇不再发生变化为止。
基本要素:
- k值的选择:也就是类别的确定,与K近邻中k值的确定方法类似。2
- 距离度量:可以采用欧氏距离、曼哈顿距离等。
缺点:
- 聚类中心的个数K 需要事先给定,但在实际中这个 K 值的选定是非常难以估计的,很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适;
- Kmeans需要人为地确定初始聚类中心,不同的初始聚类中心可能导致完全不同的聚类结果。
KNN
算法思路:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
具体步骤:
- 计算测试数据与各个训练数据之间的距离;
- 按照距离的递增关系进行排序;
- 选取距离最小的K个点;
- 确定前K个点所在类别的出现频率;
- 返回前K个点中出现频率最高的类别作为测试数据的预测分类。
基本要素:
- k值的选择:k值的选择会对结果产生重大影响。较小的k值可以减少近似误差,但是会增加估计误差;较大的k值可以减小估计误差,但是会增加近似误差。一般而言,通常采用交叉验证法来选取最优的k值。
- 距离度量:距离反映了特征空间中两个实例的相似程度。可以采用欧氏距离、曼哈顿距离等。
- 分类决策规则:往往采用多数表决。
相同点:
- k的选择类似
- 思路类似:根据最近的样本来判断某个样本的属性
不同点: