您的位置:首页 > 其它

机器学习(周志华) 参考答案 第十章 降维与度量学习 10.6

2016-08-18 18:21 896 查看

机器学习(周志华) 参考答案 第十章 降维与度量学习 10.6

机器学习(周志华西瓜书) 参考答案 总目录

http://blog.csdn.net/icefire_tyh/article/details/52064910

机器学习(周志华) 参考答案 第十章 降维与度量学习

http://blog.csdn.net/icefire_tyh/article/details/52243773

6.试使用matlab的PCA函数对人脸数据进行降维,并观察前20个特征向量对应的图像。

这道题只是让比较一下图,试了前20,80,160个特征生成的图像,很明显特征越多越能还原图像。

选几张图片作为实例,从左到右依次是原图,20特征,80特征,160特征的图像。

全部图像在这里

可以看出特征少时有很大的重影,但由于是最显著的几种特征,依然能看出与原图几分相似。









参考代码

%输入数据格式
filename_m='C:\\Users\\icefire\\Desktop\\ml\\yalefaces\\subjct%03d.gif';
%记录所有数据的矩阵
info=zeros(243*320,166);
%输入,将图片保存为一列
k=20;
for i=1:166
filename=sprintf(filename_m,i);
img = imread(filename,'gif');
info(:,i)=img(:);
end
%进行PCA分析
coeff=pca(info);
%只保留前k个特征
coeff(:,k+1:165)=0;
info=info* (coeff * coeff');

filename_m='C:\\Users\\icefire\\Desktop\\ml\\yalefaces\\subjct%03d_21.gif';

%输出图片
for i=1:166
filename=sprintf(filename_m,i);
img=reshape(info(:,i),243,320);
imwrite(img,filename,'gif');
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学习