不知道为什么总是记不清 KNN 和 K-means,只好用思维导图这种方式来帮助自己记忆了…
K-近邻(K-nearest neighbor,KNN)
K-近邻算法的伪代码:
对未知类别属性的数据集中的每个点依次执行以下操作:
- 计算已知类别数据集中的点与当前点之间的距离;
- 按照距离递增次序排序;
- 选取与当前点距离最小的K个点;
- 确定前K个点所在类别出现的概率;
- 返回前K个点出现频率最高的类别作为当前点的预测分类。
K-均值聚类算法
K-均值聚类算法的伪代码:
- 创建K个点作为起始质心(经常是随机选择);
- 将数据集中的每一个点分配到一个簇中,具体来讲,为每个点找距其最近的质心,并将其分配给该质心所对应的簇;
- 上步完成之后,更新质心,每个簇的质心更新为该簇所有点的平均值;
- 当任意一个点的簇分配结果发生改变时,对数据集中的每个数据点,对每个质心,计算质心与数据点之间的距离,将数据点分配到距离其最近的簇,对每一个簇,计算簇中所有点的均值并将均值作为质心;