算法进阶--聚类
聚类
- 定义:聚类就是对大量未标注的数据集,按数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的相似度较小
聚类的基本思想
1条件:给定一个有N个对象的数据集,构造数据的k个簇, k ≤ n k\leq n k≤n,且满足下列条件:
– 每一个簇至少包含一个对象
– 每一个对象属于且仅属于一个簇
– 将满足上述条件的k个簇称作一个合理划分
2.思想:对于给定的类别数目k,首先给出初始划分,通过迭代改变样本和簇的隶属关系,使得每一次改进之后的划分方案都较前一次好
K-Means 算法
- 定义:也被称为k-平均或k-均值,是一种广泛使用的聚类算法,或者称为其他聚类算法的基础
- 过程:假定输入样本为 S = x 1 , x 2 , . . . x m S=x_1,x_2,...x_m S=x1,x2,...xm,则算法步骤为:
1.选择初始的k个类别中心 μ 1 , μ 2 . . . μ k \mu_1,\mu_2...\mu_k μ1,μ2...μk
2.对于每个样本 x i x_i xi,将其标记为距离类别中心最近的类别,即:
l a b e l i = a r g m i n ∣ ∣ x i − u i ∣ ∣ , ( 1 ≤ j ≤ k ) label_i=arg min||x_i-u_i||,(1\leq j \leq k) labeli=argmin∣∣xi−ui∣∣,(1≤j≤