13、1无监督学习
训练样本没有标签,用聚类算法划分出多簇:
用处:
- 市场分割
- 社交网络分析
- 计算机集群组织
- 了解银河系的构成
13、2K均值算法
K均值算法的核心步骤:
(假设我们要将下列样本分为两簇)
初始化簇中心,遍历每个样本
①将每个样本分配给相应的簇(距离最小优先原则)
②对新簇的所有样本求平均值,得到新的簇中心
重复①②步骤,知道每个簇不变为止
算法的具体步骤:如果出现某个簇不包含任何一个样本,一般来说我们就丢弃这个簇中心(簇的个数会减少一个),或者我们重新初始化簇中心
K均值可以用来解决分离不佳的簇问题,如右图衬衫尺寸和人身高体重的分布:
13、3优化目标函数
这里的优化目标函数等同于逻辑回归提到的用于最小化的代价函数,其中优化目标函数如下:
c(i):表示样本x(i)的归属簇的序号
μ
\mu
μk:表示第k个簇的中心
μ
\mu
μc(i):表示样本x(i)的归属簇的中心
我们的目标就是求出使得J函数最小化的c(i)以及
μ
\mu
μc(i)
下面的K均值算法步骤:
其中步骤一是样本点的簇分配,是求出使得J最小化的c(i);
步骤二是算出新的簇中心,是求出使得J最小化的
μ
\mu
μc(i)。
13、4随机初始化
保证K的大小小于样本数m,随机选取K个训练样本作为聚簇中心:
对一堆训练样本应用K均值算法可能会得到全局最优解,如下面的1聚类结果;也可能只会得到局部最优解(优化目标函数的局部最优解),如下面的2、3两种聚类结果:
这里我们随机初始化多次,一般为50-1000次,然后我们在算出的结果中寻找使得J函数最小的一组c(i)和
μ
\mu
μi,当作最终的聚类结果。
当K的比较小时,这个方法会让你找到较好的最优解;
但当K很大时,这个方法可能不会让你的结果得到改善。
13、5选择K的大小
一般来说我们选择聚类K大小都是在可视化的情况下手动选择:
①肘部法则:
画出K和J函数的关系图,在下面左图中,很明显的K=3是一个转折点,这就是我们要选择的肘部;但有时我们会发现K和J函数的关系图如下面右图所示,是一条曲线,这里肘部法则就不适用了。
②根据实际需求:
如果我们想要把T恤衫分为S、M、L选择K=3
如果我们想要把T恤衫分为XS、S、M、L、XL选择K=5