pcA降维算法
http://ufldl.stanford.edu/wiki/index.php/主成分分析
if ~exist('train_IM_all','var')||~exist('train_LA_all','var')%为加快程序运行,以便重复运行本文件时不需要重复载入数据
load train_res; %用的还是上次手写数字识别的数据,只是在此之前已经将数据转换为mat文件,所以可以直接用load载入数据
end
X0_te= train_IM_all(:,train_LA_all == 0); %将要处理的数据单独挑出来,注意由于svmtrain函数需要的数据矩阵是每一行存储一个样本值各特征,所以此处要用转置
X1_te = train_IM_all(:,train_LA_all == 1);%同上
X2_te = train_IM_all(:,train_LA_all == 2);%同上
X3_te = train_IM_all(:,train_LA_all == 3);%同上
X4_te = train_IM_all(:,train_LA_all == 4);%同上
X5_te = train_IM_all(:,train_LA_all == 5);%同上
X6_te = train_IM_all(:,train_LA_all == 6);%同上
X7_te = train_IM_all(:,train_LA_all == 7);%同上
X8_te = train_IM_all(:,train_LA_all == 8);%同上
X9_te = train_IM_all(:,train_LA_all == 9);%同上
Xte={X0_te,X1_te,X2_te,X3_te,X4_te,X5_te,X6_te,X7_te,X8_te,X9_te};
w={};%元胞数组以便存储降维矩阵
for i=1:10
avg = mean(Xte{i}, 2); %求每个图像像素强度均值
d=avg*ones(1,size(Xte{i},2));
Xte{i} = Xte{i} -d ;%去均值化
sigma = Xte{i} * Xte{i}' / size(Xte{i}, 2);%求出signa值
[U,S,V] = svd(sigma);
%xRot = U' * x; % 旋转的数据
xTilde = U(:,1:256)' * Xte{i}; % 降维后的数据
w=[w,U(:,1:256)']; %选取前256个特征向量(这里可以看多少特征更好来选取)
end
然后把原来的样本乘上转化矩阵就好了
有待考究,因为我改了那里的实现代码,昨天直接用那个教程代码,训练到半夜还没出来,正确率很低
结果如下:

所以从现在到期末为止,我不用再做模式识别啦,在23,59分之前把论文写好交了
还有几个游戏要做= =
pcA降维算法的更多相关文章
- 一步步教你轻松学主成分分析PCA降维算法
一步步教你轻松学主成分分析PCA降维算法 (白宁超 2018年10月22日10:14:18) 摘要:主成分分析(英语:Principal components analysis,PCA)是一种分析.简 ...
- opencv基于PCA降维算法的人脸识别
opencv基于PCA降维算法的人脸识别(att_faces) 一.数据提取与处理 # 导入所需模块 import matplotlib.pyplot as plt import numpy as n ...
- PCA 降维算法详解 以及代码示例
转载地址:http://blog.csdn.net/watkinsong/article/details/38536463 1. 前言 PCA : principal component analys ...
- 降维算法整理--- PCA、KPCA、LDA、MDS、LLE 等
转自github: https://github.com/heucoder/dimensionality_reduction_alo_codes 网上关于各种降维算法的资料参差不齐,同时大部分不提供源 ...
- 机器学习公开课笔记(8):k-means聚类和PCA降维
K-Means算法 非监督式学习对一组无标签的数据试图发现其内在的结构,主要用途包括: 市场划分(Market Segmentation) 社交网络分析(Social Network Analysis ...
- 一步步教你轻松学奇异值分解SVD降维算法
一步步教你轻松学奇异值分解SVD降维算法 (白宁超 2018年10月24日09:04:56 ) 摘要:奇异值分解(singular value decomposition)是线性代数中一种重要的矩阵分 ...
- 四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps
四大机器学习降维算法:PCA.LDA.LLE.Laplacian Eigenmaps 机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中.降维的本质是学习一个映 ...
- 【转】四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps
最近在找降维的解决方案中,发现了下面的思路,后面可以按照这思路进行尝试下: 链接:http://www.36dsj.com/archives/26723 引言 机器学习领域中所谓的降维就是指采用某种映 ...
- 机器学习实战基础(二十三):sklearn中的降维算法PCA和SVD(四) PCA与SVD 之 PCA中的SVD
PCA中的SVD 1 PCA中的SVD哪里来? 细心的小伙伴可能注意到了,svd_solver是奇异值分解器的意思,为什么PCA算法下面会有有关奇异值分解的参数?不是两种算法么?我们之前曾经提到过,P ...
随机推荐
- 16年青岛网络赛 1001 I Count Two Three
题目链接:http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1001&cid=723 I Count Two ThreeTi ...
- 《C与指针》第七章练习
本章问题 1.具有空函数体的函数可以作为存根使用,你如何对这类函数进行修改,使其更有用? answer:Have the stub(存根) print out a message when it is ...
- CE5 中断
一.intr.h里面定义硬件中断号 #define IRQ_EINT0 0 #define IRQ_EINT1 1 #define IRQ_EINT2 2 #define IRQ_EINT3 3 #d ...
- h4和h5的区别
h4和h5的区别 相关文章 微信ID:WEB_wysj(点击关注)◎◎◎◎◎◎◎◎◎一┳═┻[▄ (页底留言开放,欢迎来吐槽) ●●● 1.HTML5为什么只需要写<!DOCTYPEHTML&g ...
- 【转载】开发备必:WEB前端开发规范文档
规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必 须按本文档规范进行前台页面开发. 本文档如有不对或者 ...
- knockout 学习实例3 html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Java 异步处理简单实践
Java 异步处理简单实践 http://www.cnblogs.com/fangfan/p/4047932.html 同步与异步 通常同步意味着一个任务的某个处理过程会对多个线程在用串行化处理,而异 ...
- 【转】STM32定时器输出比较模式中的疑惑
OCx与OCxREF和CCxP之间的关系 初学STM32,我这个地方卡了很久,现在终于有些明白了,现在把我的理解写下与大家共享,如果有不对的地方,还请指出. OCxREF就是一个参考信号,并且约定: ...
- makefile自动生成依赖关系
手工编写依赖关系不仅工作量大而且极易出现遗漏,更新也很难及时,修改源或头文件后makefile可能忘记修改.为了解决这个问题,可以用gcc的-M选项自动生成目标文件和源文件的依赖关系.-M选项会把包含 ...
- Shell 显示带颜色字体
格式: echo "/033[字背景颜色;字体颜色m字符串/033[控制码"如果单纯显示字体颜色可以固定控制码位0m.格式: echo "/033[字背景颜色;字体颜色m ...