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 ...
随机推荐
- Asm.Def点大兵
syzoj上的题,收货很多,orz天天学长 原题: Asm.Def奉命组建一支m人的特种作战小队前往圣迭戈.他有n名候选人,可以在其中任意挑选.由于小队中每个人都有独特的作用,所以次序不同的两种选法被 ...
- Android项目的目录结构
assets 资产目录, 存放一个文件的 这个文件会被打包到应用程序的apk(安装包 ) bin 编译后的文件目录 gen 自动生成文件的目录 roject.properties 代表编译的版本 ...
- valgind使用错误——检测不同位目标程序
当64位的valgrind工具测试32位的程序时,会报如下错误: ==22235== Memcheck, a memory error detector ==22235== Copyright (C) ...
- vb6 关闭显示器
Option Explicit Private Const WM_SYSCOMMAND As Long = &H112 Private Const SC_MONITORPOWER As Lon ...
- 家有学霸的CEO
小余老师说 http://learning.sohu.com/20161101/n471998591.shtml
- selenium多个窗口切换
浏览器里面支持多窗口打开,例如这样: html里面写了: target="_blank" 造成新打开一个窗口,但是selenium不会自动跳转到新的串口,需要自己切换: # 你打开 ...
- linux IO调度
I/O 调度算法再各个进程竞争磁盘I/O的时候担当了裁判的角色.他要求请求的次序和时机做最优化的处理,以求得尽可能最好的整体I/O性能.在linux下面列出4种调度算法CFQ (Completely ...
- 使用新浪云(SAE)实现基于mySql和微信公众平台的关键字请求响应服务
本例是作者初次尝试微信公众平台开发之作,实现传统的关键字请求响应功能.即:用户发关键字,公众号通过关键字进行检索, 在mysql数据库中读取与关键字相关的信息,并返回给用户.本例在微信订阅号(开发者模 ...
- Linux-第一天
1.etc 配置目录 2.swap 3.挂载点 建立一个目录,作为一个设备的访问入口,光盘镜像文件.移动硬盘.U盘以及Windows网络共享和UNIX NFS网络共享等 mnt目录, 建立挂载点:mn ...
- web.xml 文件配置01
web.xml 文件配置01 前言:一般的web工程中都会用到web.xml,方便开发web工程.web.xml主要用来配置Filter.Listener.Servlet等.但是要说明的是web. ...