吴恩达预热新课!万字博客回顾机器学习算法起源( 四 )


吴恩达预热新课!万字博客回顾机器学习算法起源

文章插图


美国物理学家斯图尔特-劳埃德(Stuart Lloyd)是贝尔实验室标志性创新工厂和发明原子弹的曼哈顿项目的校友,他在1957年首次提出了k-means聚类,以分配数字信号中的信息,不过他直到1982年才发表 。
与此同时,美国统计学家爱德华-福吉(Edward Forgy)在1965年描述了一种类似的方法——劳埃德-福吉算法 。
K-means聚类首先会寻找group的中心,然后将数据点分配到志同道合的group内 。考虑到数据量在空间里的位置和要组成的小组数量,k-means聚类可以将与会者分成规模大致相同的小组,每个小组都聚集在一个中心点或中心点周围 。
在训练过程中 , 算法最初需要随机选择k个人来指定k个中心点,其中k必须手动选择,而且找到一个最佳的k值并不容易 。
然后通过将每个人与最接近的中心点联系起来形成k个聚类簇 。
对于每个聚类簇,它计算所有被分配到该组的人的平均位置,并将平均位置指定为新的中心点 。每个新的中心点可能都不是由一个具体的人占据的 。
在计算出新的中心点后,算法将所有人重新分配到离他们最近的中心点 。然后计算新的中心点,调整集群,以此类推,直到中心点(以及它们周围的群体)不再移动 。
将新人分配到正确的群组很容易,让他们在房间里找到自己的位置,然后寻找最近的中心点 。
K-means算法的原始形式仍然在多个领域很有用,特别是因为作为一种无监督的算法,它不需要收集潜在的昂贵的标记数据,它的运行速度也越来越快 。
例如 , 包括scikit-learn在内的机器学习库都得益于2002年增加的kd-trees,它能极快地分割高维数据 。
参考资料:
【吴恩达预热新课!万字博客回顾机器学习算法起源】https://read.deeplearning.ai/the-batch/issue-146/

相关经验推荐