Coursera在线学习---第八节.K-means聚类算法与主成分分析(PCA)
一、K-means聚类中心初始化问题。
1)随机初始化各个簇类的中心,进行迭代,直到收敛,并计算代价函数J。
如果k=2~10,可以进行上述步骤100次,并分别计算代价函数J,选取J值最小的一种聚类情况,能够得到一个相对不错的局部最优解。(因为k值较小情况下,不同的随机中心,聚类结果不同)
2)如果k值很大,则多次随机意义不大,随机一次进行聚类即可。
二、如何选择聚类数目K?
肘部法则是一个方法,但效果一般不明显。通常来讲,并没有太绝对的方法,主要靠人工选择,以及人为的洞察力。
三、利用k-means进行图像压缩原理。
比如一个图像像素为10X10=100个像素点,原始图像中每个像素由RGB组成,R、G、B各占8位,数值为0~255,表示颜色密度,共24位,可以表示成千上万种颜色。所有,原始像素共占100x24=2400bits。
采用K-means压缩,利用聚类算法聚类出16个最有代表性的颜色,每个颜色还是24位。16个最具代表性的颜色用4位表示就行了,这样压缩后就变为16X24+100X4=784bits,大大压缩了空间。
主成份分析PCA
一、用途
1)数据压缩
2)数据降维,加快算法运行。(数据降维后,对算法本身几乎没影响)
3)可视化,一般是将多维数据降到2维或3维,因为软件方便画出2D与3D图形。(太高维度数据,软件也几乎无法可视化)
注:利用PCA降低数据维度,以防止过拟合,该方法不可取,看似有道理其实不好。正则化方法防止过拟合最好。总之,PCA降维加速机器学习算法是有效的,防止过拟合效果比较差。
二、计算过程与选择主成分?
三、什么时候用PCA?
在项目初始期,不要一开始就用PCA,而应该首先用原始数据构建模型。只有在发现用原始数据模型收敛非常慢,非常占用内存,而确实需要PCA降维加快学习算的时候,再尝试使用PCA。