KNN和Kmeans

KNN K-Means
确定一个点的分类 将一系列点集分成k类
分类算法 聚类算法
监督学习,分类目标事先已知 非监督学习,将相似数据归到一起从而得到分类,没有外部分类
训练数据集有label 训练数据集无label,是杂乱无章的,经过聚类后才变得有点顺序,先无序,后有序
memory-based learning 有明显的前期训练过程
K的含义:“k”是用来计算的相邻数据数。在x附近找离它最近的K个数据点,这K个数据点,类别c占的个数最多,就把x的label设为c K的含义:“k”是类的数目。K是人工固定好的数字,假设数据集合可以分为K个簇,由于是依靠人工定好,需要一点先验知识
K值确定后每次结果固定 K值确定后每次结果可能不同,从 n个数据对象任意选择 k 个对象作为初始聚类中心,随机性对结果影响较大
时间复杂度:O(n) 时间复杂度:O(n*k*t),t为迭代次数

相似点:都包含这样的过程,给定一个点,在数据集中找离它最近的点。即二者都用到了NN(Nears Neighbor)算法,一般用KD树来实现NN。

你可能感兴趣的:(machine,learning)