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。
Coursera在线学习---第八节.K-means聚类算法与主成分分析(PCA)的更多相关文章
- 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记
机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记 关键字:k-均值.kMeans.聚类.非监督学习作者:米仓山下时间: ...
- k均值聚类算法原理和(TensorFlow)实现
顾名思义,k均值聚类是一种对数据进行聚类的技术,即将数据分割成指定数量的几个类,揭示数据的内在性质及规律. 我们知道,在机器学习中,有三种不同的学习模式:监督学习.无监督学习和强化学习: 监督学习,也 ...
- K均值聚类算法
k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个 ...
- 机器学习实战---K均值聚类算法
一:一般K均值聚类算法实现 (一)导入数据 import numpy as np import matplotlib.pyplot as plt def loadDataSet(filename): ...
- 挑子学习笔记:两步聚类算法(TwoStep Cluster Algorithm)——改进的BIRCH算法
转载请标明出处:http://www.cnblogs.com/tiaozistudy/p/twostep_cluster_algorithm.html 两步聚类算法是在SPSS Modeler中使用的 ...
- 基于改进人工蜂群算法的K均值聚类算法(附MATLAB版源代码)
其实一直以来也没有准备在园子里发这样的文章,相对来说,算法改进放在园子里还是会稍稍显得格格不入.但是最近邮箱收到的几封邮件让我觉得有必要通过我的博客把过去做过的东西分享出去更给更多需要的人.从论文刊登 ...
- K均值聚类算法的MATLAB实现
1.K-均值聚类法的概述 之前在参加数学建模的过程中用到过这种聚类方法,但是当时只是简单知道了在matlab中如何调用工具箱进行聚类,并不是特别清楚它的原理.最近因为在学模式识别,又重新接触了这 ...
- (数据科学学习手札09)系统聚类算法Python与R的比较
上一篇笔者以自己编写代码的方式实现了重心法下的系统聚类(又称层次聚类)算法,通过与Scipy和R中各自自带的系统聚类方法进行比较,显然这些权威的快捷方法更为高效,那么本篇就系统地介绍一下Python与 ...
- Coursera在线学习---第十节.大规模机器学习(Large Scale Machine Learning)
一.如何学习大规模数据集? 在训练样本集很大的情况下,我们可以先取一小部分样本学习模型,比如m=1000,然后画出对应的学习曲线.如果根据学习曲线发现模型属于高偏差,则应在现有样本上继续调整模型,具体 ...
随机推荐
- Linux系统的性能测试
性能测试:CPU内存,硬盘IO读写,带宽速度,UnixBench 一.CPU物理个数.内核.超线程.多核心 1.登录Terminal,执行:cat /proc/cpuinfo,就会显示出主机的CPU详 ...
- 安装django 提示ImportError: No module named setuptools
安装django前要先安装setuptools 先安装一些必要的包,否则会报错:Python build finished, but the necessary bits to build these ...
- 关于已部署的WCF服务升级的问题
在日常的开发过程中,我们会经常迭代发布不同的版本,所以WCF服务的接口也会经常处于变动的状态,比如在传递实体类中新加一个字段.修改参数名称等等关于服务升级的问题.但是我们不可能让已发布的版本重新引用新 ...
- BZOJ 1179 Atm(强连通分量缩点+DP)
题目说可以通过一条边多次,且点权是非负的,所以如果走到图中的一个强连通分量,那么一定可以拿完这个强连通分量上的money. 所以缩点已经很明显了.缩完点之后图就是一个DAG,对于DAG可以用DP来求出 ...
- 用select模拟一个socket server成型版
1.你往output里面放什么,下次循环就出什么. 2. 1.服务器端:实现了收和发的分开进行 import select,socket,queue server=socket.socket() s ...
- [洛谷P4781]【模板】拉格朗日插值
题目大意:给你$n(n\leqslant2000)$个点,要你求$n-1$次经过这$n$个点的多项式在$k$处的值 题解:$Lagrange$插值:$$f_x=\sum\limits_{i=1}^ky ...
- [Leetcode] search for a range 寻找范围
Given a sorted array of integers, find the starting and ending position of a given target value. You ...
- HDU.1285 确定比赛名次 (拓扑排序 TopSort)
HDU.1285 确定比赛名次 (拓扑排序 TopSort) 题意分析 裸的拓扑排序 详解请移步 算法学习 拓扑排序(TopSort) 只不过这道的额外要求是,输出字典序最小的那组解.那么解决方案就是 ...
- bzoj2588: Spoj 10628. Count on a tree(树上第k大)(主席树)
每个节点继承父节点的树,则答案为query(root[x]+root[y]-root[lca(x,y)]-root[fa[lca(x,y)]]) #include<iostream> #i ...
- poco普通线程
#include "Poco/Thread.h" #include "Poco/RunnableAdapter.h" #include <iostream ...