【学习笔记】吴恩达机器学习 | 第十一章 | 无监督学习

在这里插入图片描述

简要声明


  1. 课程学习相关网址
    1. Bilibili
    2. 网易云课堂
    3. 学习讲义
  2. 由于课程学习内容为英文,文本会采用英文进行内容记录,采用中文进行简要解释。
  3. 本学习笔记单纯是为了能对学到的内容有更深入的理解,如果有错误的地方,恳请包容和指正。
  4. 非常感谢Andrew Ng吴恩达教授的无私奉献!!!

专有名词


Clustering聚类K­‐meansK均值
cluster centroids聚类中心distortion function失真函数

Unsupervised learning


Unsupervised Learning

  1. 非监督学习没有任何labels标签
  2. 非监督学习会把数据分成不同的clusters簇
  3. 非监督学习是clustering algorithm聚类算法

Applications

  1. Organize computing clusters 组织大型计算机集群高效协作
  2. Social network analysis 社交网络分析
  3. Market segmentation 市场分割
  4. Segmentation data analysis 天文数据分析

K­‐means algorithm


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 随机生成两个点 →cluster centroids 聚类中心 →将数据聚成两类
  2. cluster assignment 簇分配 →将每个数据点根据就近原则分配给聚类中心之一
  3. move centroid 移动聚类中心 →将聚类中心移动到同簇点的均值处
  4. Input 输入
    1. K (number of clusters) → 聚类处的簇的个数
    2. Training set { x(1), x(2), …, x(m) } →一系列无标签的训练集
    3. x(i) ∈ Rn →x(i)是一个n维实数向量

K-­means algorithm

Randomly initialize K cluster centroids μ_1, μ_2, …, μ_K ∈ Rn →随机初始化K个聚类中心

Repeat {

%簇分配步骤

for i = 1 to m

c(i) := index (from 1 to K) of cluster centroid closest to x(i) →表示最接近x(i)的聚类中心 → min{k} || x(i) - μ_k||2

%移动聚类中心

for k = 1 to K

μ_k := average (mean) of points assigned to cluster k →簇中所有点的均值

}

  1. 如果存在一个没有点的聚类中心 →直接移除那个聚类中心 →得到K-1个簇

Optimization objective


K-­means optimization objective

  1. c(i) = index of cluster (1,2,…, K) to which example x(i) is currently assigned →表示当前样本x(i)所属的那个簇的索引或者序号
  2. μ_k = cluster centroid k →表示第k个聚类中心的位置
  3. μ_(c(i)) = cluster centroid of cluster to which example x(i) has been assigned →表示x(i)所属的那个簇的聚类中心
  4. Optimization objective 优化目标 →每一个样本x(i)到x(i)所属的聚类中心的距离的平方值 → J() distortion 失真代价函数
  5. cluster assignment 簇分配 →选择c(i)来最小化失真函数,保持最近的聚类中心μ_1到μ_k的位置固定不变
  6. move centroid 移动聚类中心 →选择μ_k来最小化失真函数,保持最近的聚类中心c(1)到c(m)的位置固定不变

J ( c ( 1 ) , ⋯   , c ( m ) , μ 1 , ⋯   , μ K ) = 1 m ∑ i = 1 m ∣ ∣ x ( i ) − μ c ( i ) ∣ ∣ 2 min ⁡ c ( 1 ) , ⋯   , c ( m ) , μ 1 , ⋯   , μ K J ( c ( 1 ) , ⋯   , c ( m ) , μ 1 , ⋯   , μ K ) J(c^{(1)},\cdots,c^{(m)},\mu_1,\cdots,\mu_K)=\frac{1}{m}\sum_{i=1}^m||x^{(i)}-\mu_{c^{(i)}}||^2 \\ \min \limits_{c^{(1)},\cdots,c^{(m)}, \mu_1,\cdots,\mu_K} J(c^{(1)},\cdots,c^{(m)},\mu_1,\cdots,\mu_K) J(c(1),,c(m),μ1,,μK)=m1i=1m∣∣x(i)μc(i)2c(1),,c(m),μ1,,μKminJ(c(1),,c(m),μ1,,μK)

Random initialization


  1. K < m →把聚类中心数值K设置为比训练样本数量m小的值
  2. Randomly pick K training examples →随机挑选K个训练样本
  3. Set μ_1, … , μ_k equal to these examples →设定μ_1到μ_k等于这K个样本
  4. 如果随机初始化得到的结果不好就可能得到不同的局部最优解

在这里插入图片描述

For i = 1 to 100 { %典型的运行次数一般在50~1000

Randomly initialize K-­means →随机初始化K均值算法

Run K­‐means. Get c(1), …, c(m), μ_1, μ_2, …, μ_K →运行K均值算法并得到一系列聚类结果和一系列聚类中心

Compute cost function (distortion) J(c(1), …, c(m), μ_1, μ_2, …, μ_K) →计算失真函数

}

Pick clustering that gave lowest cost J(c(1), …, c(m), μ_1, μ_2, …, μ_K) →选择代价最小的簇 →如果运行K均值算法时所用聚类数较小(K=2~10),多次随机初始化通常能找到较好的局部最优解,如果K非常大的话多次随机初始化就不会有很大的改善

Choosing the number of clusters


Elbow method

在这里插入图片描述

  1. 横坐标是 K 聚类总数,纵坐标是代价函数 J
  2. 随着聚类数量的增多,畸变值下降
  3. Elbow method 肘部方法 →曲线有一个肘部 →肘部之前快速下降,肘部之后缓慢下降
  4. 选择曲线的拐点作为聚类数量
  5. 肘部方法并不是那么常用,在实际聚类问题时会得到相对模糊的曲线,没有清晰的拐点

Choosing the value of K

在这里插入图片描述

  1. 通常使用K均值聚类是为了得到一些聚类用于某个目的,看那个聚类数量能更好地应用于后续目的
  2. 大部分时候聚类数量K仍然是通过手动人工输入或者经验来决定

吴恩达教授语录


  • “This will be exciting because this is our first unsupervised learning algorithm where we learn from unlabeled data instead of the label data.”
  • “The K Means algorithm is by far the most popular, by far the most widely used clustering algorithm.”
  • “But I do get asked this question quite a lot of how do you choose the number of clusters and so I just want to tell you know what are peoples’ current thinking on it, although the most common thing is actually to choose the number of clusters by hand.
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Benjamin Chen.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值