机器学习编程作业ex7(matlab/octave实现)-吴恩达coursera K-means和PCA

本文回顾了机器学习中的无监督学习方法K-means聚类和PCA主成分分析。K-means算法涉及寻找最近中心点、计算平均值等步骤,PCA旨在通过降维来压缩数据。作业涵盖了K-means的图像压缩和PCA在人脸识别中的应用,通过代码实现这两个算法。
摘要由CSDN通过智能技术生成

程序打包网盘地址提取码1111

一、(Week 8)内容回顾

无监督学习的两种方法或技巧:K-means算法、PCA算法

1.1 K-means(Clustering) 聚类算法

过程:1)随机初始化聚类中心,选择K个随机的点;
2)分别计算m个点的最近聚类中心点,根据各个聚类情况计算每个组的平均值,重新确定K个随机的点;
3)重复过程2直至聚类中心点不再变化
在这里插入图片描述
优化目标:最小化J函数,待确定的参数为c和μ。在这里插入图片描述
随机初始化K个中心点的方法:重复多次随机情况,选取J函数最小时的求解参数。这种情况在K比较小时有较好的效果。
选取K的方法:Elbow method肘部方法-从小到大依次选择不同K,用J函数变化的尖端点(肘部点);根据求解模型手动确定K的大小-如衣服尺寸,设计S、M、L的K=3。

1.2 PCA(Principal Component Analysis)主成分分析算法

目的:将高维的数据投射到一组方向向量上,实现数据压缩(节省存储空间和加快收敛速度)、可视化(常为2维或3维)。

过程:1)预处理数据,包括特征缩放、均值归一化;
2)计算协方差矩阵后,通过svd奇异值分解得到矩阵的特征向量U、特征值S;
3)选取特征向量的前n个/列,作为转化矩阵,得到降维的X。
在这里插入图片描述
优点与缺点:过程中无参数限制,计算结果只与输入的数据有关;忽略了输入数据的差异,抛弃了一些数据。

选取降维数k的方法:从小到达手动选取k,选取下图最小的一个;数据降维前后的相对误差在某个特定范围内,如下图的0.01,保留了数据之间99%的差异。(优化目的函数也是下图的公式,尽量减小分子-平均均分误差)
在这里插入图片描述
应用PCA的建议:1)在有监督学习(带有标签y)也可以进行PCA降维,y不需要进行处理;
2)对训练集进行PCA降维后,得到相应的转换矩阵u,同样可继续把u用于测试集、交叉验证集的降维;
3)PCA不能用于避免过拟合,舍弃了数据之间的部分差异性,训练效果不好,改用正则项;
4)PCA不是一定要加入的步骤,只有在算法运行慢/内存空间占用大等必要情况下才需要采用。

PCA与线性回归的差异:1)PCA最小化的为投射误差,线性回归最小化为代价函数;
2)PCA与y无关,只是输入数据的转化降维,线性回归需要预测y;
3)如下图所示,在最小化的投影上,PCA为向量与点之间的距离,线性回归为向量/线与点之间的y向距离。
在这里插入图片描述

需要编辑以下的红色文件。(后续部分,需要填入的代码为深色框,已经提供的代码为浅色框。)

文件 内容
ex7.m K-means主程序
ex7_pca.m PCA主程序
pca.m 实现PCA主成分分析
projectData.m 低维投影
recoverData.m 投影数据的还原
findClosestCentroids.m 寻找最近中心点
computeCentroids.m 计算点中心平均值
kMeansInitCentroids.m 初始化中心点

二、作业1- K-means Clustering 聚类

利用K均值算法进行图像压缩,使得图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值