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降维算法的更多相关文章

  1. 一步步教你轻松学主成分分析PCA降维算法

    一步步教你轻松学主成分分析PCA降维算法 (白宁超 2018年10月22日10:14:18) 摘要:主成分分析(英语:Principal components analysis,PCA)是一种分析.简 ...

  2. opencv基于PCA降维算法的人脸识别

    opencv基于PCA降维算法的人脸识别(att_faces) 一.数据提取与处理 # 导入所需模块 import matplotlib.pyplot as plt import numpy as n ...

  3. PCA 降维算法详解 以及代码示例

    转载地址:http://blog.csdn.net/watkinsong/article/details/38536463 1. 前言 PCA : principal component analys ...

  4. 降维算法整理--- PCA、KPCA、LDA、MDS、LLE 等

    转自github: https://github.com/heucoder/dimensionality_reduction_alo_codes 网上关于各种降维算法的资料参差不齐,同时大部分不提供源 ...

  5. 机器学习公开课笔记(8):k-means聚类和PCA降维

    K-Means算法 非监督式学习对一组无标签的数据试图发现其内在的结构,主要用途包括: 市场划分(Market Segmentation) 社交网络分析(Social Network Analysis ...

  6. 一步步教你轻松学奇异值分解SVD降维算法

    一步步教你轻松学奇异值分解SVD降维算法 (白宁超 2018年10月24日09:04:56 ) 摘要:奇异值分解(singular value decomposition)是线性代数中一种重要的矩阵分 ...

  7. 四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

    四大机器学习降维算法:PCA.LDA.LLE.Laplacian Eigenmaps 机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中.降维的本质是学习一个映 ...

  8. 【转】四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

    最近在找降维的解决方案中,发现了下面的思路,后面可以按照这思路进行尝试下: 链接:http://www.36dsj.com/archives/26723 引言 机器学习领域中所谓的降维就是指采用某种映 ...

  9. 机器学习实战基础(二十三):sklearn中的降维算法PCA和SVD(四) PCA与SVD 之 PCA中的SVD

    PCA中的SVD 1 PCA中的SVD哪里来? 细心的小伙伴可能注意到了,svd_solver是奇异值分解器的意思,为什么PCA算法下面会有有关奇异值分解的参数?不是两种算法么?我们之前曾经提到过,P ...

随机推荐

  1. Jena Fuseki 102

    Version Fuseki v1 Fuseki v2 since Jena 2.13.0 Both v1 and v2 are active and maintained.[2015/06/29] ...

  2. dede织梦后台如何修改?如何增加删除菜单?(

    织梦后台的模板存放在dede/templets下面, 登陆首页模板login.htm, 进入首页模板index_body.htm, 左侧菜单模板index_menu2.htm. 修改左侧菜单dede/ ...

  3. 使用response实现文件的下载

    package cn.itcast.request; import java.io.FileInputStream;import java.io.IOException;import java.io. ...

  4. supervisor使用详解

    1.什么是supervisorsupervisor是用python写的一个进程管理工具,用来启动,重启,关闭进程. 2.supervisor的安装 pip install supervisor 3.s ...

  5. selenium加载时间过长

    为了获取网站js渲染后的html,需要利用selenium加载网站,但是会出现加载时间过长的现象,因此可以限制其加载时间以及强制关掉加载: # !/usr/bin/python3.4 # -*- co ...

  6. windows ftp 连接serv_U 管理员

    连接工具名称:8uftp 小技巧:活动模式连接

  7. HA(High available)-Keepalived高可用性集群(双机热备)单点实验-菜鸟入门级

    HA(High available)-Keepalived高可用性集群   Keepalived 是一个基于VRRP虚拟路由冗余协议来实现的WEB 服务高可用方案,虚拟路由冗余协议 (Virtual ...

  8. .NET微信通过授权获取用户的基本信息

    一.填写授权回调页面的域名 二.引导用户到指定的授权页面 例如:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID& ...

  9. Logistic Regression逻辑回归

    参考自: http://blog.sina.com.cn/s/blog_74cf26810100ypzf.html http://blog.sina.com.cn/s/blog_64ecfc2f010 ...

  10. web页面打开本地app(判断是否安装)

    在应用宝中有APP申请链接: //是否可以打开App不可以跳则到下载页 $(".downNow button").on("click",function(){ ...