源代码获取通道:C++实现LDA, 实现PCA

pca_z运行结果:

LDA_Z运行结果:

原理简单易懂,用于降维。

Visual C++ 无法解析的外部符号问题

ref:http://blog.csdn.net/huyu107/article/details/51980029
最后采用的方法是,先不管他,在main函数中把代码调对,再封装……然后奇迹般的没有任何报错……

在VS环境下用Eigen进行SVD分解
先输入数组,二维数组,然后转换为MatrixXd类型,然后调用SVD,调用方法是:ja
期间注意两点:
第一:Map函数可将数组映射成矩阵,但是映射规则和MATLAB储存矩阵的方式类似,是按列进行的投射的。比如[ 1,3,3,4,5,1]投射[2*3]的结果是[1,4;3,5;3,1];
第二:调用SVD时,可以使用Full,Thin两种模式,奇异值分解后得到的前部分是一样的,所以如果只取前面部分,可以不用太care;
SVD原理可以参考:http://blog.csdn.net/yueliangku/article/details/41725905

使用Eigen进行线性方程组的求解

可以参考: http://blog.csdn.net/u013354805/article/details/48250547

STD:

实现矩阵归一化时,Matlab中的mean,和std原理要反复推敲,注意行列关系,比如求均值是对列求,得到一个行向量,std公式根号下前面的系数是(N-1)!

y=std(x) 算出x的标准偏差。 x可以是vector或者一个matrix矩阵。

若x是vector,则y是算x的标准偏差。
若x是matrix,则y是个vector,存放的是算每一列/行的标准偏差。 std (x, flag,dim)
fla表示标注公差时是要除以n还是n-1
flag==0………是除以n-1
flag==1………是除以n
dim表示维数
dim==1……….是按照列分
dim==2……….是按照行分 若是三维的矩阵,dim==3就按照第三维来分数据

默认std格式是std(x,0,1);

 >>x=[ 1 2 3 4; 4 5 6 1 ]>>std(x)
ans =2.1213    2.1213    2.1213    2.1213>> std(x,1)
ans =1.5000    1.5000    1.5000    1.5000>> std(x,0,2)
ans =1.29102.1602>> std(x,1,2)
ans =1.11801.8708

具体分析:
A=[1,2;3,4];
CC=mean(A,1) %每列求均值

result: 2 3

A=[1,2;3,4];
CC=mean(A,2) % 每行就均值

result: 1.5000
3.5000
A=[1,2;3,4];
CC=mean2(A) % 矩阵均值

result :2.5000

std(x,0,1)与mean(x,1) 其实得到的都是行向量,也即对例进行处理
A=[1,2;3,4];
CC=std(A,0,1) % 矩阵均值
result: 1.4142 1.4142
验证std(A,0,2),其实结果也一样的, 0.7071 0.7071。

然而std2与mean2一样,是对矩阵求均 方差。

A=[1,2;3,4];
CC=std2(A)

测试代码运行时间:

在C++中计算运行的时间是调用clock函数,使用clock函数获得程序开始和结束所需的时间,相减就得到程序所花的时间。

clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下:

clock_t clock(void) ;

简单而言,就是该程序从启动到函数调用占用CPU的时间。这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中

称之为挂钟时间(wal-clock);若挂钟时间不可取,则返回-1。其中clock_t是用来保存时间的数据类型。

#include<iostream>
#include<ctime>
using namespace std;  int main()
{  clock_t start,finish;  start=clock();  cout << "HW .... " << endl;  finish=clock();  cout << finish-start   << "/" << CLOCKS_PER_SEC  << " (s) "<< endl;  return 0;
}

PCA,LDA的C++实现(内附代码~)相关推荐

  1. 我用Python爬取了难下载的电子教材(内附代码)

    我用Python爬取了难下载的电子教材(内附代码) 第一次在CSDN上面分享经历,有点激动.本大二狗最近这段时间去不了学校又想看教材,不巧学习通上面的部分内容老师设置了不可下载啊.好在最近学习了一点P ...

  2. 数据结构六种常见的排序方法(超详细图解内附代码)

    这里写目录标题 实验目的 实验内容 实验要求 六种排序方法细解 直接插入排序 冒泡排序 简单选择排序 希尔排序 快速排序 归并排序 六种排序好坏分析 代码段 运行结果 实验目的 1.能够清楚表述主要内 ...

  3. 资本-劳动力错配指数计算、金融错配指标两大维度指标(内附代码)

     一.资本错配和劳动力错配指数计算  1.数据来源:各省级统计年鉴/中国统计年鉴. 2.时间跨度:2000-2019年 3.区域范围:31省市自治区 4.指标说明: 资源的稀缺性决定了经济学研究的一个 ...

  4. 使用NeMo快速完成NLP中的信息抽取任务,英伟达专家实战讲解,内附代码

    信息抽取(IE)是从非结构化.半结构化的可读文档或其他电子表示来源中自动提取结构化信息的任务.信息抽取技术为文本挖掘.智能检索.智能对话.知识图谱.推荐系统等应用提供了基本的技术支持. 近日,英伟达x ...

  5. 使用NeMo快速入门NLP、实现机器翻译任务,英伟达专家实战讲解,内附代码

    对话式AI是当前AI领域最火热的细分领域之一,其中自然语言处理(NLP)是最为困难的问题之一. 那么,零基础.对会话式AI感兴趣的小伙伴们如何快速入门 NLP领域? 近日,英伟达x量子位发起的NLP公 ...

  6. 几个 Python“小伎俩” | 内附代码

    来源 | NewBeeNLP(ID:gh_627b00c8dbd0) 责编 | 夕颜 写在前面 今天,我们一起回顾下Python Cookbook,全书是以问答对的形式展开,这是我很久之前看的笔记.C ...

  7. 爬虫实战 | 手把手用Python教你采集可视化知乎问题的回答(内附代码)

    击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 名花倾国两相欢,常得君王带笑看. 问 ...

  8. 【C语言】初始C语言系列 代码详解 _ 编程入门 _【内附代码和图片】_ [初阶篇 _ 总结复习]

    [前言] 本篇文章为初始C语言部分,C语言是编程的入门语言,所以也说是编程入门: 学好C语言的入门内容,才能真正的入门编程,而C语言的学习对于刚入门的同学还是有一些难度的,需要踏踏实实的自己去理解. ...

  9. F16代码详解从一个初学者的的角度结合飞行器原理和公式(内附代码,Simulink model 和手册在压缩包)

    首先我们拿到代码压缩包打开后一定很迷,文件夹下很乱,所以用matlab打开,按文件名称归类再看会更合适. 在"名称"右边空白右键单击,选择按类型排序,这三个脚本就是我们的主函数所在 ...

最新文章

  1. input 的read only 和 disable的区别
  2. 团队作业3——需求改进系统设计
  3. 《大数据》第2期“应用”——医疗健康大数据:应用实例与系统分析
  4. 用Redis存储Tomcat集群的Session
  5. C/C++ 结构体成员在内存中的对齐规则(转载)
  6. UVa101 - The Blocks Problem
  7. Matlab查找图像块在原图中的位置
  8. python使用openpyxl插入excel批注,同时修改excel批注框大小
  9. 计算机专业研究生核心能力培养(1)——论文阅读与积累
  10. 【DBC】DBC文件格式详解
  11. vue路由跳转不执行mounted方法
  12. 读论文:SELFEXPLAIN: A Self-Explaining Architecture for Neural Text Classifiers
  13. DeeperNetwork2022 新年献词:邀您共赴,WEB3.0的星辰大海
  14. Yii2日志使用方法
  15. Android解析错误 解析软件包错误
  16. 东北大学计算机科学与技术专业考研科目,东北大学(专业学位)计算机技术研究生考试科目和考研参考书目...
  17. 【疑问解答】LACP是什么?如何工作?如何配置?
  18. HTML5 em标签:定义文字斜体
  19. Springboot Failed to parse configuration class x nested exception is Java class path resource
  20. mac使用Homebrew安装node

热门文章

  1. 【机器学习】深入浅出经典贝叶斯统计
  2. 小鸟云:因被黑客窃取190GB文件 厄瓜多尔国营电信公司决定采用云服务器
  3. 2020春季学期哈工大软件构造学习心得四
  4. Python实战系列-上海银行间同业拆借利率最新报错解决方案
  5. 专有钉钉下载(windows、IOS、Android)地址
  6. 《卷积网络》深度卷积网络实例
  7. DNA与剑桥的老鹰酒吧
  8. python制作图像数据集_详细图像数据集增强原理的python代码
  9. LCP 2.分式简化
  10. X4扭曲字体或图形 coreldraw_CorelDRAW X4下载