无监督学习——聚类算法(Unsupervised learning-clustering)通俗讲解
接触过 机器学习(Machine learning) 的看官都应该知道机器学习分为 监督学习(supervised learning) 和 无监督学习(unsupervised learning) 。通俗的来讲,监督学习是我们提供大量数据,并且这些数据都有其对应的具体标签(或具体的准确值、实际特征对应值),也就是算法中的y,例如:训练集{X,Y}。然后由我们利用回归算法或分类算法对数据进行训练、分析、得到预测值。无监督学习是我们提供大量数据,但是这些数据没有对应的标签,例如:训练集{X},由算法来进行提取具体结构进行分类。 聚类算法 就是无监督学习的一种,这篇博客里提到的是聚类算法中应用最普遍的 K-means算法 (K均值算法),以下作简要讲述。 1.1 聚类算法 聚类算法可以实现将给定的一组未加标签数据自动地分成有紧密关系的 子集 (或是 簇 )。 K- 均值是一个迭代算法,假设我们想要将数据聚类成 K 个组,其方法为: 1)首先选择K个随机的点,称为 聚类中心 (cluster centroids); 2)对于数据集中的每一个数据,按照距离K个中心点的距离,将其与距离最近的中心点关联起来,与同一个中心点关联的所有点聚成一类。 3)计算每一个组的平均值,将该组所关联的中心点移动到平均值的位置。 4)重复步骤 2-4 直至中心点不再变化。 Repeat { for i = 1