吴恩达机器学习课程-作业7-K-means聚类和主成分分析(python实现)

Machine Learning(Andrew) ex7-K-means Clustering and Principal Component Analysis

椰汁笔记

K-means Clustering

前面学习的内容都是监督学习,这将是我们学习的第一个非监督学习算法。
我们先把这个算法说清楚再说作业。

  • 这个算法是干什么的?
    将没有标签的数据,划分成K组。通过这个算法我们可以将数据进行分类,具体可以应用到根据用户数据将用户进行分类,对各类用户提供更加精细的服务等。
  • 这个算法是大概是怎么做的?
    这里一起宏观地理解一下这个算法。举个例子我们需要将下面地数据进行聚类,我很可以很轻松地看出数据大致可以分为两类,左下角和右上角。
    在这里插入图片描述
    K-means算法怎么运行将这组数据分为两类呢?首先目标很明确需要分为两类,因此K=2。先选择2个聚类簇中心,这个可以随便选。
    在这里插入图片描述
    1.接着我们根据数据点距离红色簇中心还是蓝色簇中心更近,将点分为两簇。这里使用欧氏距离表示远近。
    在这里插入图片描述
    2.接着我们对于每一个簇,重新计算一个簇中心,这个中心就是这个簇所有点地平均位置。
    在这里插入图片描述
    接着以这两个簇中心,重新将数据进行分类,也就是重复1步骤,接着再重复2步骤。这样不断迭代,当簇中心不再移动的时候,根据此时簇中心的分类结果就是最后的聚类结果。
    在这里插入图片描述
  • 这个算法的细节什么样的?
    首先这个算法的优化目标是所有的点离其所属簇中心点的距离最小
    J ( x ( 1 ) , … , x ( m ) , μ 1 , … , μ K ) = 1 m ∑ i = 1 m ( x ( i ) − μ x ( i ) ) J(x^{(1)},\dots,x^{(m)},\mu_1,\dots,\mu_K)=\frac{1}{m}\sum_{i=1}^{m}(x^{(i)}-\mu_{x^{(i)}}) J(x(1),,x(m),μ1,,μK)=m1i=1m(x(i)μx(i))
    算法描述
    I n p u t : K , { x ( 1 ) , x ( 2 ) , … , x ( m ) } Randomly initialize K cluster centroids  μ 1 , μ 2 , … , μ K Repeate{ x ( i ) = index (from 1 to K) of cluster centroids closest to  x ( i ) , ( f o r   i = 1   t o   m ) μ k = average of points assigned to cluster k , ( f o r   k = 1   t o   K ) } Input:K,\{x^{(1)},x^{(2)},\dots,x^{(m)}\} \\\textrm{Randomly initialize K cluster centroids }\mu_1,\mu_2,\dots,\mu_K \\\textrm{Repeate\{} \\x^{(i)}=\textrm{index (from 1 to K) of cluster centroids closest to }x^{(i)},(for\ i=1\ to\ m) \\\mu_k=\textrm{average of points assigned to cluster k},(for\ k=1\ to\ K) \\\} Input:K,{ x(1),x(2),,x(m)}Randomly initialize K cluster centroids μ1,μ2,,μKRepeate{ x(i)
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值