吴恩达机器学习—无监督学习

无监督学习

数据集是不带标签的,要找到一下隐含在数据中的机构

无监督的聚类算法

算法首先生成两个聚类中心,第一步进行簇分类,然后遍历数据集,计算每个点到聚类中心的距离,然后将点和最近的聚类中心分为一类;第二部内循环就是重新划分聚类,将两个聚类中心移动到同类点的平均位置,然后在进行簇分类,计算每个节点到新的聚类中为的距离然后进行分类,再次更新聚类中心的位置,这样不断迭代下去,知道聚类中心不会再改变,成为聚类中心收敛。

K-mean算法的输入
K-means算法流程
K-meas用于分类不佳的数据

即使是分类不佳的数据,算法也能较好的将数据分类,然后根据不同组内数据的特点进行市场划分。

K-means算法的优化目标

K-means算法也存在优化目标,损失函数,了解算法的优化目标可以帮助我们进行算法的debug,更好的调试目标,也可以再进行优化,寻找簇的时候找到最优解,避免局部最优。

算法的优化函数

最小化损失函数也称为算法的失真代价函数。通过优化代价函数,可以找到合适的类中心。

随机初始化

如何初始化聚类中心

初始化聚类中心

聚类算法可能会得到局部最优,如下图所示,将本应归为一类的点分离开:

局部最优

为了跳出这种局部最优,我们通常进行多次随机初始化,多次重复选择聚类中心。尽力实现较好的局部最优或全局最优。以下是实际做法:

多次聚类

如上所示,可以重复进行一百次聚类算法,然后找到使损失函数最小的聚类结果。通常在目标类数目较少的情况下,多次初始化效果较好,如果类数据过多,则多次随机初始化不太奏效。

聚类数量的选择

通常进行聚类数量选择的方法还是通过观察图或者聚类算法的输出,还没有自动选择的方法。有一个肘部法则(Elbow method)

elbow method

通过画出损失函数和聚类数量的图像,可以选择拐点对应的数量作为聚类数量。但是,有时也会遇到有图的情况,拐地不明确。还可以通过聚类目的进行局类数目的选择,如下图:

根据使用目的进行聚类数目的选择

进行聚类是为了实现多种目的,如市场分割等,因此,我们可以根据目的进行聚类数的选择,如在进行T-shirt尺码的设计时,我们可能需要三种尺码的T-shirt,或者是五种,然后就确定了聚类的数量。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容