吴恩达K-means算法

K-Means 算法步骤

1、选择 K 个随机的点,称为聚类中心(cluster centroids)

2、把每个数据样本划分到最近的中心点那一簇; 

      D(xi)=argmin||xi−μr||22r=1,2,...kselected
      样本到哪个簇距离最小,就属于哪个簇。

3、划分完后,更新每个簇的中心,即把该簇的所有数据点的坐标加起来去平均值。求中心点距离一般采用欧几里德算法计算。

4、每个簇的中心为新的聚类中心,重复第2,第3步骤,这样不断进行”划分—更新—划分—更新”,直到每个簇的中心不在移动为止。 

  第i个样本是哪一簇的,eg 第一个样本属于第二簇,=2

   第k个聚类中心  eg =1 ,=2 ,=3 ,,,,, ,=k

初始化

在运行 K-均值算法的之前,我们首先要随机初始化所有的聚类中心点,下面介绍怎样做: 

1. 我们应该选择 K<m,即聚类中心点的个数要小于所有训练集实例的数量 

2. 随机选择 K 个训练实例,然后令 K 个聚类中心分别与这 K 个训练实例相等 

K-均值的一个问题在于,它有可能会停留在一个局部最小值处,而这取决于初始化的情况。 

      为了解决这个问题,我们通常需要多次运行 K-均值算法,每一次都重新进行随机初始化,最后再比较多次运行 K-均值的结果,选择代价函数最小的结果。这种方法在 K 较小的时候(2--10)还是可行的,但是如果 K 较大,这么做也可能不会有明显地改善。 

优化目标

K-均值最小化问题,是要最小化所有的数据点与其所关联的聚类中心点之间的距离之和,因此 K-均值的代价函数(又称畸变函数 Distortion function)为:

 

K值选择---“肘部法则”。

画出选择不同K时,,成本函数或者计算畸变函数 J,的曲线

       你会发现这种模式,它的畸变值会迅速下降,从 1 到 2,从 2 到 3 之后,你会在 3 的时候达到一个肘点。在此之后,畸变值就下降的非常慢,看起来就像使用 3 个聚类来进行聚类是正确的,这是因为那个点是曲线的肘点,畸变值下降得很快,K 等于 3 之后就下降得很慢,那么我们就选 K 等于 3。当你应用“肘部法则”的时候,如果你得到了一个像上面这样的图,那么这将是一种用来选择聚类个数的合理方法。
       但是,K值的选择最好还是根据实际意义去选择。
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值