根据Andrew Ng在斯坦福的《机器学习》视频做笔记,已经通过李航《统计学习方法》获得的知识不赘述,仅列出提纲。
步骤
随机初始化k个簇类中心(cluster centroids)[n维向量],然后迭代
直至簇类中心不再改变
可以用于分类不佳的簇
优化目标
c(i)c(i):样本x(i)x(i)所属的簇类index
μkμk:簇类中心k
μc(i)μc(i):样本x(i)x(i)所属的簇类中心
↓
局部最优:多次运行K-means算法(对于K值较小的聚类效果较好)
K值的选择
问题:数据冗余/特征高度相关
问题:高维度数据无法绘制
试图找到一个低维的平面来最小化投射误差
2D→1D:找到一个向量能够最小化投射误差
nD→kD:找到k个向量能够最小化投射误差
PCA vs. 线性回归
PCA:最小化投射误差,不预测
线性回归:x→y,最小化预测误差,预测结果
数据预处理
特征缩放/均值归一化
计算协方差矩阵
Σ=1m∑ni=1(x(i))(x(i))T=1mXTXΣ=1m∑i=1n(x(i))(x(i))T=1mXTX
计算协方差矩阵ΣΣ的特征向量
[U,S,V]=svd(Sigma)[U,S,V]=svd(Sigma)
U:n×n矩阵,即[u(1) u(2) u(3) ⋯ u(m)][u(1) u(2) u(3) ⋯ u(m)],取前k列,得到n×k的矩阵
z(i)=UTreducex(i)=[u(1) u(2) ⋯ u(k)]Tx(i)z(i)=UreduceTx(i)=[u(1) u(2) ⋯ u(k)]Tx(i),是k维向量
选择主成分的数量
比例:1m∑mi=1||x(i)−x(i)approx||21m∑mi=1||x(i)||21m∑i=1m||x(i)−xapprox(i)||21m∑i=1m||x(i)||2
分子表示原始点与投影点之间的距离之和。
误差越小,说明降维后的数据越能完整表示降维前的数据。
如果比例小于0.01,说明降维后的数据能保留99%的信息。
实际应用中,选择能使误差小于0.01(99%的信息都被保留)或0.05(95%的信息都被保留)的k值。
对于可视化数据,通常选择k=2或k=3
压缩重现
x(i)approx=Ureducez(i)xapprox(i)=Ureducez(i)
应用建议
加速学习算法:提取输入x(i)x(i)→PCA→低维表示z(i)z(i)→新训练集
防止过拟合:Bad!
设计机器学习系统:只有在不用PCA但是不行的时候,才考虑。
联系人:徐经理
手机:13907330718
电话:0731-22222718
邮箱:hniatcom@163.com
地址: 湖南省株洲市石峰区联诚路79号轨道智谷2号倒班房6楼603室