首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
大约PCA算法学习总结
】的更多相关文章
PCA算法学习(Matlab实现)
PCA(主成分分析)算法,主要用于数据降维,保留了数据集中对方差贡献最大的若干个特征来达到简化数据集的目的. 实现数据降维的步骤: 1.将原始数据中的每一个样本用向量表示,把所有样本组合起来构成一个矩阵,通常需对样本矩阵进行处理,得到中性化样本矩阵 2.求样本矩阵的协方差矩阵 3.求协方差矩阵的特征值和特征向量 4.将求出的特征向量按照特征值的大小进行组合形成一个映射矩阵.并根据指定的PCA保留的特征个数取出映射矩阵的前n行或者前n列作为最终的映射矩阵. 5.用映射矩阵对数据进行映射,达到数据降…
大约PCA算法学习总结
文章来源:http://blog.csdn.net/xizhibei ============================= PCA,也就是说,PrincipalComponents Analysis,主成份分析,是个非常优秀的算法.依照书上的说法: 寻找最小均方意义下,最能代表原始数据的投影方法 然后自己的说法就是:主要用于特征的降维 另外.这个算法也有一个经典的应用:人脸识别.这里略微扯一下,无非是把处理好的人脸图片的每一行凑一起作为特征向量.然后用PAC算法降维搞定之. PCA的主要思…
【转】PCA算法学习_1(OpenCV中PCA实现人脸降维)
前言: PCA是大家经常用来减少数据集的维数,同时保留数据集中对方差贡献最大的特征来达到简化数据集的目的.本文通过使用PCA来提取人脸中的特征脸这个例子,来熟悉下在oepncv中怎样使用PCA这个类. 开发环境:ubuntu12.04+Qt4.8.2+QtCreator2.5.1+opencv2.4.2 PCA数学理论: 关于PCA的理论,资料很多,公式也一大把,本人功底有限,理论方面这里就不列出了.下面主要从应用的角度大概来讲讲具体怎么实现数据集的降维. 把原始数据中每个样本用一个向量表示,然…
OpenCV学习(35) OpenCV中的PCA算法
PCA算法的基本原理可以参考:http://www.cnblogs.com/mikewolf2002/p/3429711.html 对一副宽p.高q的二维灰度图,要完整表示该图像,需要m = p*q维的向量空间,比如100*100的灰度图像,它的向量空间为100*100=10000.下图是一个3*3的灰度图和表示它的向量表示: 该向量为行向量,共9维,用变量表示就是[v0, v1, v2, v3, v4, v5, v6, v7, v8],其中v0...v8,的范围都是0-255. …
主成分分析(PCA)学习笔记
这两天学习了吴恩达老师机器学习中的主成分分析法(Principal Component Analysis, PCA),PCA是一种常用的降维方法.这里对PCA算法做一个小笔记,并利用python完成对应的练习(ps:最近公式有点多,开始没找到怎么敲公式,前面几篇都是截的图^_^,后面问了度娘,原来是支持latex的).代码和数据见github 一.PCA基本思路 将数据从原来的坐标系转换到新的坐标系,新坐标系的选择由数据本身决定.第一个新坐标轴选择的是原始数据中方差最大的方向,第二个新坐标轴选择…
PCA算法 | 数据集特征数量太多怎么办?用这个算法对它降维打击!
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第27文章,我们一起来聊聊数据处理领域的降维(dimensionality reduction)算法. 我们都知道,图片格式当中有一种叫做svg,这种格式的图片无论我们将它放大多少倍,也不会失真更不会出现边缘模糊的情况.原因也很简单,因为这种图片是矢量图,一般的图片存储的是每一个像素点的颜色值,而在矢量图当中,我们存储的是矢量,也就是起点终点以及颜色.由于矢量图只记录起点终点,所以无论我们如何放大,图片都不会失真,而…
PCA算法是怎么跟协方差矩阵/特征值/特征向量勾搭起来的?
PCA, Principle Component Analysis, 主成份分析, 是使用最广泛的降维算法. ...... (关于PCA的算法步骤和应用场景随便一搜就能找到了, 所以这里就不说了. ) 假如你要处理一个数据集, 数据集中的每条记录都是一个\(d\)维列向量. 但是这个\(d\)太大了, 所以你希望把数据维度给降下来, 既可以去除一些冗余信息, 又可以降低处理数据时消耗的计算资源(用computation budget 来描述可能更形象). 用稍微正式点的语言描述: 已知:一个数据…
DSP算法学习-过采样技术
DSP算法学习-过采样技术 彭会锋 2015-04-27 23:23:47 参考论文: 1 http://wr.lib.tsinghua.edu.cn/sites/default/files/1207488664463.pdf…
算法学习之C语言基础
算法学习,先熟悉一下C语言哈!!! #include <conio.h> #include<stdio.h> int main(){ printf(+); getch(); ; } 计算1+2的值结果:3 进一步计算加减乘除 #include <conio.h> #include<stdio.h> int main(){ printf(+); printf(-); printf(*); printf(/); printf(/); getch(); ; } 结…
Python之路,Day21 - 常用算法学习
Python之路,Day21 - 常用算法学习 本节内容 算法定义 时间复杂度 空间复杂度 常用算法实例 1.算法定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制.也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出.如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题.不同的算法可能用不同的时间.空间或效率来完成同样的任务.一个算法的优劣可以用空间复杂度与时间复杂度来衡量. 一…
C / C++算法学习笔记(8)-SHELL排序
原始地址:C / C++算法学习笔记(8)-SHELL排序 基本思想 先取一个小于n的整数d1作为第一个增量(gap),把文件的全部记录分成d1个组.所有距离为dl的倍数的记录放在同一个组中.先在各组内进行直接插入排序:然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-l<:…<d2<d1),即所有记录放在同一组中进行直接插入排序为止. 该方法实质上是一种分组插入方法. 算法编码 void shellSort(int v[], int n)…
模式识别(1)——PCA算法
作者:桂. 时间:2017-02-26 19:54:26 链接:http://www.cnblogs.com/xingshansi/articles/6445625.html 声明:转载请注明出处,谢谢. 前言 本文为模式识别系列第一篇,主要介绍主成分分析算法(Principal Component Analysis,PCA)的理论,并附上相关代码.全文主要分六个部分展开: 1)简单示例.通过简单的例子,引出PCA算法: 2)理论推导.主要介绍PCA算法的理论推导以及对应的数学含义: 3)算法…
三种方法实现PCA算法(Python)
主成分分析,即Principal Component Analysis(PCA),是多元统计中的重要内容,也广泛应用于机器学习和其它领域.它的主要作用是对高维数据进行降维.PCA把原先的n个特征用数目更少的k个特征取代,新特征是旧特征的线性组合,这些线性组合最大化样本方差,尽量使新的k个特征互不相关.关于PCA的更多介绍,请参考:https://en.wikipedia.org/wiki/Principal_component_analysis. PCA的主要算法如下: 组织数据形式,以便于模型…
降维之pca算法
pca算法: 算法原理: pca利用的两个维度之间的关系和协方差成正比,协方差为0时,表示这两个维度无关,如果协方差越大这表明两个维度之间相关性越大,因而降维的时候, 都是找协方差最大的. 将XX中的数据进行零均值化,即每一列都减去其均值. 计算协方差矩阵C=1mXTXC=1mXTX 求出CC的特征值和特征向量 将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P Y=XPY=XP就是降维到k维后的数据. 代码: # coding=utf- import matplotlib.p…
算法学习之BFS、DFS入门
算法学习之BFS.DFS入门 0x1 问题描述 迷宫的最短路径 给定一个大小为N*M的迷宫.迷宫由通道和墙壁组成,每一步可以向相邻的上下左右四格的通道移动.请求出从起点到终点所需的最小步数.如果不能到达,输出"不能走到那里".(N,M<=50,起点,终点分别用S,G表示) 输入样例:N=5,M=5 #S### ..##. #.### ..### ..G## 1 2 3 4 5 6 输出:5 0x2 BFS解法 bfs用来求解最短路径相当简单. #include <ios…
二次剩余Cipolla算法学习笔记
对于同余式 \[x^2 \equiv n \pmod p\] 若对于给定的\(n, P\),存在\(x\)满足上面的式子,则乘\(n\)在模\(p\)意义下是二次剩余,否则为非二次剩余 我们需要计算的是在给定范围内所有满足条件的\(x\),同时为了方便,我们只讨论\(p\)是奇质数的情况 前置定理 \(x^2 \equiv (x+p)^2 \pmod p\) 证明:\(x^2 \equiv x^2 + 2xp + p^2 \pmod p\)显然成立 对于\(x^2 \equiv n \pmod…
Manacher算法学习笔记 | LeetCode#5
Manacher算法学习笔记 DECLARATION 引用来源:https://www.cnblogs.com/grandyang/p/4475985.html CONTENT 用途:寻找一个字符串的最长回文子串 时间复杂度:O(N) 算法步骤: 1.添加特殊字符 由于回文串的长度可奇可偶,比如"bob"是奇数形式的回文,"noon"就是偶数形式的回文,马拉车算法的第一步是预处理,做法是在每一个字符的左右都加上一个特殊字符,比如加上'#',那么 bob -->…
第四百一十五节,python常用排序算法学习
第四百一十五节,python常用排序算法学习 常用排序 名称 复杂度 说明 备注 冒泡排序Bubble Sort O(N*N) 将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮 插入排序 Insertion sort O(N*N) 逐一取出元素,在已经排序的元素序列中从后向前扫描,放到适当的位置 起初,已经排序的元素序列为空 选择排序 O(N*N) 首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾.以…
Javascript经典算法学习1:产生随机数组的辅助类
辅助类 在几个经典排序算法学习部分,为方便统一测试不同算法,新建了一个辅助类,主要功能为:产生指定长度的随机数组,提供打印输出数组,交换两个元素等功能,代码如下: function ArraySortUtility(numOfElements) { this.dataArr = []; this.pos = 0; this.numOfElements = numOfElements; this.insert = insert; this.toString = toString; this.cle…
Kosaraju算法学习
Kosaraju 算法学习 序 这星期捣鼓了一个新的算法--Kosaraju算法 今天分享给大家 简介 Kosaraju算法,其实与tarjan算法差不多.但是码量较小,容易记忆.其时间复杂度与tarjan算法一样,为O(n+m),所以,某种程度上来说Kosaraju可以替代tarjan算法. 算法思路 如果直接让我讲Kosaraju算法到底是基于什么实现的,我肯定讲不出来,但只能知道它的基本思路--dfs两次. 就是这么简单,当然,为什么广大的oier不学习Kosaraju算法呢?因为麻烦.…
算法学习之快速排序的C语言实现
近几天在学习简单算法,今天看了一个快速排序和堆排序,堆排序还没搞懂,还是先把快速排序搞清楚吧 教程网上一艘一大堆,这里选择一个讲的比较通俗的的一个吧: http://blog.csdn.net/morewindows/article/details/6684558 感谢博主. 四种排序算法的比较 冒泡排序是最慢的排序算法.在实际运用中它是效率最低的算法.它通过一趟又一趟地比较数组中的每一个元素,使较大的数据下沉,较小的数据上升. 插入排序通过将序列中的值插入一个已经排好序的序列中,直到该序列…
OTSU算法学习 OTSU公式证明
OTSU算法学习 OTSU公式证明 1 otsu的公式如下,如果当前阈值为t, w0 前景点所占比例 w1 = 1- w0 背景点所占比例 u0 = 前景灰度均值 u1 = 背景灰度均值 u = w0*u0 + w1*u1 全局灰度均值 g = w0(u0-u)*(u0-u) + w1(u1-u)*(u1-u) = w0*(1 – w0)*(u0 - u1)* (u0 - u1) 目标函数为g, g越大,t就是越好的阈值.为什么采用这个函数作为判别依据,直观是这个函数反映了前景和背景的差值…
【算法学习】manacher
manacher太水了. 这篇blog不能称作算法学习,因为根本没有介绍…… 就贴个模板,太简单了…… #include<cstdio> #include<cstring> #define MAXN 1000005 char str[MAXN]; ],p[MAXN<<]; int main(){ scanf(); n=strlen(str+); memset(str2,-,sizeof str2); ;i<=n;++i) str2[i<<]=str[i…
我所认识的PCA算法的princomp函数与经历 (基于matlab)
我接触princomp函数,主要是因为实验室的项目需要,所以我一接触的时候就希望快点学会怎么用. 项目中需要利用PCA算法对大量数据进行降维. 简介:主成分分析 ( Principal Component Analysis , PCA )或者主元分析.是一种掌握事物主要矛盾的统计分析方法,它可以从多元事物中解析出主要影响因素,揭示事物的本质,简化复杂的问题.计算主成分的目的是将高维数据投影到较低维空间. 对于银行后台存储的大量数据进行分析,并不一件易事,由于每个人的信息属性众多,辨别起来颇为费力…
PCA算法的最小平方误差解释
PCA算法另外一种理解角度是:最小化点到投影后点的距离平方和. 假设我们有m个样本点,且都位于n维空间 中,而我们要把原n维空间中的样本点投影到k维子空间W中去(k<n),并使得这m个点到投影点的距离(即投影误差)的平方和最小.我们假设投影到的k维子空间的标准正交基(orthonormal basis)为 ,这组标准正交基组成了一个的矩阵U: 则称为子空间W 的投影矩阵(projection matrix). 如果我们不从标准正交基出发,如何求得W的投影矩阵?设是W 的任意一组基,形成一个的矩阵…
PCA算法理解及代码实现
github:PCA代码实现.PCA应用 本文算法均使用python3实现 1. 数据降维 在实际生产生活中,我们所获得的数据集在特征上往往具有很高的维度,对高维度的数据进行处理时消耗的时间很大,并且过多的特征变量也会妨碍查找规律的建立.如何在最大程度上保留数据集的信息量的前提下进行数据维度的降低,是我们需要解决的问题. 对数据进行降维有以下优点: (1)使得数据集更易使用 (2)降低很多算法的计算开销 (3)去除噪声 (4)使得结果易懂 降维技术作为数据预处理的一部…
<2014 05 09> Lucida:我的算法学习之路
[转载] 我的算法学习之路 关于 严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口——况且CS中的算法往往暗指数据结构和算法(例如算法导论指的实际上是数据结构和算法导论),所以我认为本文题目是合理的. 如果你使用的是手机或平板设备,那么请点击下面的链接以获得更好的阅读效果: http://zh.lucida.me/blog/on-learning-algorithms/ 原文作者:Lucida 这篇文章讲了什么? 我这些年学习数据结构和算法的总结. 一些不错的算法书籍和教…
dijkstra算法学习
dijkstra算法学习 一.最短路径 单源最短路径:计算源点到其他各顶点的最短路径的长度 全局最短路径:图中任意两点的最短路径 Dijkstra.Bellman-Ford.SPFA求单源最短路径 Floyed可以求全局最短路径,但是效率比较低 SPFA算法是Bellman-Ford算法的队列优化 Dijkstra算法不能求带负权边的最短路径,而SPFA算法.Bellman-Ford算法.Floyd-Warshall可以求带负权边的最短路径. Bellman-Ford算法的核心代码只有4行,Fl…
OpenCV中Camshitf算法学习(补充)
结合OpenCV中Camshitf算法学习,做一些简单的补充,包括: 实现全自动跟随的一种方法 参考opencv中的相关demo,可以截取目标物体的图片,由此预先计算出其色彩投影图,用于实际的目标跟随. Mat hsv,mask,hue,hist; cvtColor( cut_image, hsv, CV_BGR2HSV );//cut_image为提前截取的目标图片 inRange( hsv, Scalar( MIN( _hmin, _hmax ), MIN( _smin, _smax ),…
Reinforcement Learning Q-learning 算法学习-2
在阅读了Q-learning 算法学习-1文章之后. 我分析了这个算法的本质. 算法本质个人分析. 1.算法的初始状态是随机的,所以每个初始状态都是随机的,所以每个初始状态出现的概率都一样的.如果训练的数量够多的 话,就每种路径都会走过.所以起始的Q(X,Y) 肯定是从目标的周围开始分散开来.也就是目标状态为中心的行为分数会最高. 如 Q(1,5) Q(4,5) Q(5,5)这样就可以得到第一级别的经验了.并且分数最高. Q(state, action) = R(state, action)…