非监督学习unsupervised learning
聚类Clustering
K-means算法:
步骤1:簇分配:遍历所有样本,把与聚类中心接近的点划为一类;
步骤2:移动聚类中心:把聚类中心移动到和它同类的数据集的均值处。
迭代以上两步骤,直到聚类中心和点集不再变化。
两个输入:K(想聚类处的簇的个数);只有x没有标签y的训练集。
x(i)是n维向量。
算法表示:
如果存在一个没有点分配给它的聚类中心,则直接移除那个聚类中心。
应对没有很好分开的簇,也可以用K-means
优化目标函数Optimization Objective
目的:(1)帮助我们调试学习算法,确保K均值算法是在正确运行中。
(2)我们运用这个来帮助K均值找到更好的簇 ,并且避免局部最优解 。
目标:找到最小化代价函数J的c和μ。这个代价函数往往也叫做 失真代价函数distortion cost function
按照算法,首先以c为变量,minimizeJ,然后在移动聚类中心时,以μ为变量,minimizeJ
K-means算法的核心:对代价函数J的优化过程。
随机初始化Random Initialization
如何初始化K均值聚类方法,如何避开局部最优来构建K均值聚类方法。
随机初始化方法:
随机选取K个训练样本,K<m,设定μ1,...,μk来等于这k个训练样本
选择聚类个数K
1.因为是非监督学习,没有标签,所以并没有一个准确的答案。一般通过看可视化的图来手工选择聚类的数目。
2.常见的选择聚类数目的方法:肘部法则Elbow Method
作出K与J的曲线,在某一点之前畸变值快速下降,该点之后下降缓慢,则找到了该点为肘点。但很多图肘点位置并不明确。
3. 看不同的聚类数量能为后续下游的目的提供多好的结果。即根据你要做的事情,要达到的目标来决定。比如T恤尺寸。