无监督学习

无监督学习

监督学习,就是我们有确定的分类,传入参数为{x,y}这样的,输入x会输出确定的y。

无监督学习,就是我们没有确定的分类,传入参数为{x,x,…,x}这样的,算法根据某些特征自动将其分类。

K-means算法

对于无监督学习的分类算法,最简单的是k-means算法了。该算法非常容易理解:

k的含义为分成k个群。

例如,我们要分成2个群。

  • Step1:随机在样本中确定两个点A,B。
  • Step2:将样本中所有的点,根据到这两个点之间的距离,分成两部分。
  • Step3:求每一部分的中心位置。
  • Step4:将中心位置重新赋值给点A和点B。重复Step2,3,4.
  • Step5:不再更新,完成分类。

这个算法非常简单,实现起来也很容易,其代价函数也很容易得到,即每个群到其中心点的距离。
J ( c ( 1 ) , . . . , c ( m ) , μ 1 , . . . , μ k ) = 1 m ∑ i = 1 m ∣ ∣ x ( i ) − μ c ( i ) ∣ ∣ 2 其 中 : c ( i ) 表 示 第 i 个 样 本 x ( i ) 所 分 配 的 索 引 。 μ k 表 示 该 群 的 中 心 。 μ c ( i ) 表 示 样 本 x ( i ) 所 对 应 的 群 的 中 心 点 。 \begin{aligned} & J(c^{(1)},...,c^{(m)},\mu_1,...,\mu_k)=\frac{1}{m}\sum_{i=1}^{m}||x^{(i)}-\mu_{c^{(i)}}||^2\\ & 其中:\\ & c^{(i)}表示第i个样本x^{(i)}所分配的索引。\\ & \mu_k表示该群的中心。\\ & \mu_{c^{(i)}}表示样本x^{(i)}所对应的群的中心点。 \end{aligned} J(c(1),...,c(m),μ1,...,μk)=m1i=1mx(i)μc(i)2:c(i)ix(i)μkμc(i)x(i)
算法实现较简单,双重循环遍历即可。

存在缺点

但是这个算法仍存在一个不小的缺点,就是我们无法保证它分割的情况是比较合适的。

可能会出现某些极端情况。

我们就需要多次随机训练了。找到里面比较合适的一种情况。

至于k的选择,一般也是凭经验选择XD(或者凭运用场景)。

多次随机重复实验之后,我们比较其代价函数即可选出比较合适的点。

参考资料

B站吴恩达机器学习相关课程:https://www.bilibili.com/video/BV164411b7dx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值