吴恩达机器学习笔记(11)——无监督学习与K-Means算法

一、无监督学习

无监督学习与监督式学习相反,数据并不带有任何标签。算法要找到隐含在数据中的结构。比如将数据分为簇状的,就被称为聚类算法(clustering),这是一个典型的无监督学习算法。

聚类算法可以用于:

  • 市场划分
  • 社会关系网络分析
  • 计算机集群聚类
  • 天文数据聚类



二、K-Means算法

在聚类问题中,我们会给定一组未加标签的数据集,同时希望有一个算法能够自动的将这些数据分成有密切关系的子集或者是簇,K-means算法是现在最热门的聚类算法。

1、算法步骤:

  1. 随机设置两个初始点,称作聚类中心(cluster centroids)。
  2. 簇分配:遍历每个样本,根据距离将每个数据点分配给两个聚类中心之一。簇分配:遍历每个样本,根据距离将每个数据点分配给两个聚类中心之一。
  3. 移动聚类中心:将该聚类中心移动到同簇点的均值处。移动聚类中心:将该聚类中心移动到同簇点的均值处。
  4. 迭代:重复2和3直到实现聚类。迭代:重复2和3直到实现聚类。

算法的输入:

  • 参数K(聚类的簇的数量)
  • 无标签的数据集(x1,x2,x3…xm)

2、优化目标

首先设定几个参数:
在这里插入图片描述
所以K均值算法的优化目标为:
在这里插入图片描述
也就是说,对于每一个样本,我们要找到其所属的数据簇c,以及聚类中心μ的坐标,以此实现最小化所有训练样本到对应聚类中心的平均距离之和.

PS:此代价函数有时也叫畸变函数(distortion cost function)
在这里插入图片描述

3、随机初始化

虽然有几种方法去随机选出聚类中心,但是有一种方法比其他方法更值得推荐:

  1. 设置K<m,即簇的数量要比训练样本数量小。
  2. 随机挑选K个训练样本。
  3. 让​μ1,…,μK​这些聚类中心等于这K个训练样本。
    在这里插入图片描述
    有时候会出现上图右下这种局部最优解的情况,此时我们需要尝试多次随机初始化。然后在多个结果中选择J最小的那组分类。(K=2~10)

4、选择簇类数量

这个问题目前没有能自动解决的方法,只能手动选择。

  1. 肘部法则:
    画出代价函数J随着数据簇数量K而变化的图像。代价函数会随着数据簇数量上升而减少,最后会趋于平稳。如果在某一个点开始明显地趋于平稳,那么我们选择代价函数刚开始变平稳的那个点K;但如果代价函数是平滑地趋于平稳的话,那这个方法就失效了。
    在这里插入图片描述
  2. 根据目的选取
    选取能更好服务于你后续目的的K值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值