特征向量

机器学习之降维方法

≯℡__Kan透↙ 提交于 2019-12-26 19:06:05
数据降维的 目的 :数据降维,直观地好处是维度降低了,便于计算和可视化,其更深层次的意义在于有效信息的提取综合及无用信息的摈弃。 数据降维的 好处 :降维可以方便数据可视化+数据分析+数据压缩+数据提取等。 降维方法 __ 属性选择 :过滤法;包装法;嵌入法;       | _ 映射方法 _ 线性映射方法:PCA、LDA、SVD分解等             | _ 非线性映射方法:                       |__核方法:KPCA、KFDA等                       |__二维化:                       |__流形学习:ISOMap、LLE、LPP等。             | __ 其他方法:神经网络和聚类 PCA方法简介   主成分分析的思想,就是线性代数里面的K-L变换,就是在均方误差准则下失真最小的一种变换。是将原空间变换到特征向量空间内,数学表示为Ax=λx。   PCA优缺点:   优点:1)最小误差。2)提取了主要信息   缺点:1)计算协方差矩阵,计算量大 LDA方法简介 (1)LDA核心思想:往线性判别超平面的法向量上投影,使得区分度最大(高内聚,低耦合)。   (2)LDA优缺点:   优点:1)简单易于理解   缺点:2)计算较为复杂 (3)问题 之前我们讨论的PCA、ICA也好,对样本数据来言

MATLAB 学习

倖福魔咒の 提交于 2019-12-26 09:33:21
一、eig函数的使用方法 在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),常用的调用格式有 5种: (1) E=eig(A):求矩阵A的全部特征值,构成向量E。 (2) [V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成 V的列向量。 (3) [V,D]=eig(A,'nobalance'):与第2种格式类似,但第2种格式中先对A作相似 变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量。 (4) E=eig(A,B):由eig(A,B)返回N×N阶方阵A和B的N个广义特征值,构成向量E 。 (5) [V,D]=eig(A,B):由eig(A,B)返回方阵A和B的N个广义特征值,构成N×N阶对 角阵D,其对角线上的N个元素即为相应的广义特征值,同时将返回相应的特征向 量构成N×N阶满秩矩阵,且满足AV=BVD。 eig Find eigenvalues and eigenvectors Syntax d = eig(A) d = eig(A,B) [V,D] = eig(A) [V,D] = eig(A,'nobalance') [V,D] = eig(A,B) [V,D] = eig(A,B,flag) d = eig(A)和 [V,D] = eig(A)最为常用 注意,第一列为对应第一个特征值的特征向量。

机器学习降维算法一:PCA (Principal Component Analysis)

六月ゝ 毕业季﹏ 提交于 2019-12-25 00:29:01
引言: 机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中。降维的本质是学习一个映射函数 f : x->y ,其中 x 是原始数据点的表达,目前最多使用向量表达形式。 y 是数据点映射后的低维向量表达,通常 y 的维度小于 x 的维度(当然提高维度也是可以的)。 f 可能是显式的或隐式的、线性的或非线性的。 当然还有一大类方法本质上也是做了降维,叫做feature selection,目的是从原始的数据feature集合中挑选一部分作为数据的表达。 目前大部分降维算法处理向量表达的数据,也有一些降维算法处理高阶张量表达的数据。 之所以使用降维后的数据表示是因为: (1)在原始的高维空间中,包含有冗余信息以及噪音信息,在实际应用例如图像识别中造成了误差,降低了准确率;而通过降维 , 我们希望减少 冗余信息 所造成的误差 , 提高识别(或其他应用)的精度。 (2)或者希望通过降维算法来寻找数据内部的本质结构特征。 (3)通过降维来加速后续计算的速度 (4)还有其他很多目的,如解决数据的sparse问题 在很多算法中,降维算法成为了数据预处理的一部分,如 PCA 。事实上,有一些算法如果没有降维预处理,其实是很难得到很好的效果的。 如果你需要处理数据,但是数据原来的属性又不一定需要全部保留,那么PCA也许是一个选择。 主成分分析算法( PCA )

PCA降维及SVD

荒凉一梦 提交于 2019-12-23 12:37:36
PCA降维 1.相关背景 我们在实际工作中经常需要分析不同组呈现来的成千上百个指标的数据,这些指标之间经常有一些相关性指标,比如厘米和英尺,这样的指标我们只要保留一个就可以,还有一些隐藏的高度相关的特征,以通过降维方法来进行数据预处理。 2. 数据降维 主成分分析(Principal Component Analysis,简称PCA)是一种常用的降维方法,属于无监督学习。所谓降维就是将数据指标从高维度减到低维度,因为低维度的数据有如下优点: 1) 更容易进行数据分析和数据可视化 2)更容易进行数据存储 3)降低算法的运行成本 3.PCA原理 样本点分布在正交属性空间中,我们如何找到一个超平面(直线的高维推广)对所有样本点最合适的表达? 1.最近重构性:样本点到这个超平面的距离足够近(类似线性回归) 2.最大可分性:样本点到这个超平面的投影尽可能分开(方差最大化) 以上两种方式得到的主成分分析的推导是等价的,下面从”最大可分析“进行推导PCA的过程。 3.1 向量的表示及基变换 3.1.1 向量的內积 a ⃗ ⋅ b ⃗ = ∣ a ⃗ ∣ ∣ b ⃗ ∣ c o s α ( α 为 两 个 向 量 的 夹 角 ) \vec a\cdot\vec b = |\vec a||\vec b|cos\alpha(\alpha为两个向量的夹角) a ⋅ b = ∣ a ∣ ∣ b ∣ c o

线代:1.6矩阵的特征值和特征向量

扶醉桌前 提交于 2019-12-18 04:42:47
文章目录 任务详解: 1.向量的内积和范数 向量的内积以及正交性 定义1: 定义2 定义3 定义4 判定矩阵A可逆的小结 2.特征值特征向量以及矩阵的相似 方阵的特征值与特征向量 定义6 本课程来自 深度之眼 ,部分截图来自课程视频。 【第一章 线性代数】1.6矩阵的特征值和特征向量 在线LaTeX公式编辑器 任务详解: 1、掌握内积,正交,线性相关,线性无关的概念 2、掌握规范正交基,正交矩阵 3、掌握特征值特征向量的几何意义与算法 1.向量的内积和范数 向量的内积以及正交性 定义1: 设有n维向量(如果不做特殊说明,n维向量都是指列向量) [x,y]称为向量x与y的内积(或者叫点积,elementwise). 内积是两个向量之间的一种运算,其结果是一个实数,用矩阵记号表示,当x与y都是列向量时,有 [ x , y ] = x T y = y T x [x,y]=x^Ty=y^Tx [ x , y ] = x T y = y T x 有时候也记做:<x,y> 还有一个重要性质:柯西不等式 [ x , y ] 2 ≤ [ x , x ] [ y , y ] [x,y]^2≤[x,x][y,y] [ x , y ] 2 ≤ [ x , x ] [ y , y ] 由以上性质加上我们中学在二维空间里面向量夹角的概念,我们可以推广到高维空间

PCA原理分析和Matlab实现方法(三)

╄→гoц情女王★ 提交于 2019-12-16 05:05:14
PCA主成分分析原理分析和Matlab实现方法(三) 【 尊重 原创,转载请注明出处 】http://blog.csdn.net/guyuealian/article/details/68487833 网上关于PCA(主成分分析)原理和分析的博客很多,本博客并不打算长篇大论推论PCA理论,而是用最精简的语言说明鄙人对PCA的理解,并在最后给出用Matlab计算PCA过程的三种方法,方便大家对PCA的理解。 PS:本博客所有源代码,都可以在附件中找到 下载 : http://download.csdn.net/detail/guyuealian/9799160 关于PCA原理的文章,可参考: [1]http://blog.csdn.net/guyuealian/article/details/68483384 [2]http://blog.csdn.net/guyuealian/article/details/68483213 [3] 张铮的《精通Matlab数字图像处理与识别 》 一、 PCA原理简要说明 PCA算法主要用于降维,就是将样本数据从高维空间投影到低维空间中,并尽可能的在低维空间中表示原始数据。 PCA的几何意义可简单解释为: 0维-PCA:将所有样本信息都投影到一个点,因此无法反应样本之间的差异;要想用一个点来尽可能的表示所有样本数据,则这个点必定是样本的均值。 1维

奇异值分解SVD

可紊 提交于 2019-12-13 00:45:46
在介绍奇异值分解(SVD)之前我们先来回顾一下关于矩阵的一些基础知识。 矩阵基础知识 方阵 给定一个$ n×m $的矩阵$ A $,若n和m相等也就是矩阵的行和列相等那矩阵$ A $就是一个方阵。 单位矩阵 在线性代数中,n阶单位矩阵,是一个$ n×n $的方阵,其主对角线元素为1,其余元素为0。单位矩阵以$ mathbf { I } _ { n } $表示。 单位矩阵性质: $$ text { 1. } I _ { n } B _ { n times m } = B _ { n times m } $$ $$ text { 2. } B _ { n times m } I _ { m } = B _ { n times m } $$ $$ text { 3. } A _ { n } I _ { n } = I _ { n } A _ { n } = A _ { n } $$ $$ text { 4. } I _ { n } I _ { n } = I _ { n } $$ 转置 矩阵的转置是最简单的一种矩阵变换。简单来说若$ n×m $的矩阵$ A $的转置为$ A ^ { mathrm { T } } $,则$ A ^ { mathrm { T } } $是一个$ m×n $的矩阵并且有$ mathbf { A } _ { i j } = mathbf { A } _ { j

主成分分析(PCA)原理详解

我的未来我决定 提交于 2019-12-10 10:07:52
个人分类: 机器学习与Python 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhongkelee/article/details/44064401 转载请声明出处: http://blog.csdn.net/zhongkelee/article/details/44064401 一、PCA简介 1. 相关背景 上完陈恩红老师的《机器学习与知识发现》和季海波老师的《矩阵代数》两门课之后,颇有体会。最近在做主成分分析和奇异值分解方面的项目,所以记录一下心得体会。 在许多领域的研究与应用中,往往需要对反映事物的多个变量进行大量的观测,收集大量数据以便进行分析寻找规律。多变量大样本无疑会为研究和应用提供了丰富的信息,但也在一定程度上增加了数据采集的工作量,更重要的是在多数情况下,许多变量之间可能存在相关性,从而增加了问题分析的复杂性,同时对分析带来不便。如果分别对每个指标进行分析,分析往往是孤立的,而不是综合的。盲目减少指标会损失很多信息,容易产生错误的结论。 因此需要找到一个合理的方法,在减少需要分析的指标同时,尽量减少原指标包含信息的损失,以达到对所收集数据进行全面分析的目的。由于各变量间存在一定的相关关系,因此有可能用较少的综合指标分别综合存在于各变量中的各类信息。主成分分析与因子分析就属于这类降维的方法。 2. 问题描述

主成分分析(PCA)原理总结

穿精又带淫゛_ 提交于 2019-12-10 04:13:48
    主成分分析(Principal components analysis,以下简称PCA)是最重要的降维方法之一。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。一般我们提到降维最容易想到的算法就是PCA,下面我们就对PCA的原理做一个总结。 1. PCA的思想     PCA顾名思义,就是找出数据里最主要的方面,用数据里最主要的方面来代替原始数据。具体的,假如我们的数据集是n维的,共有m个数据$(x^{(1)},x^{(2)},...,x^{(m)})$。我们希望将这m个数据的维度从n维降到n'维,希望这m个n'维的数据集尽可能的代表原始数据集。我们知道数据从n维降到n'维肯定会有损失,但是我们希望损失尽可能的小。那么如何让这n'维的数据尽可能表示原来的数据呢?     我们先看看最简单的情况,也就是n=2,n'=1,也就是将数据从二维降维到一维。数据如下图。我们希望找到某一个维度方向,它可以代表这两个维度的数据。图中列了两个向量方向,$u_1$和$u_2$,那么哪个向量可以更好的代表原始数据集呢?从直观上也可以看出,$u_1$比$u_2$好。     为什么$u_1$比$u_2$好呢?可以有两种解释,第一种解释是样本点到这个直线的距离足够近,第二种解释是样本点在这个直线上的投影能尽可能的分开。     假如我们把n'从1维推广到任意维,则我们的希望降维的标准为

简单的验证码识别

会有一股神秘感。 提交于 2019-12-09 11:00:10
这是我尝试写的第一篇技术博客,借鉴了很多博客和教程,写出了自己的代码,代码较为冗杂而且程序十分耗时。所以本文主要提供验证码识别的一个简单的思路,代码实现的部分还望各位大佬指点。 看了好几篇验证码图片识别的博文,不难归纳出验证码识别的大概思路是 收集训练集——>图像处理——>得到图片特征值——>训练——>识别 ,其中图像处理部分又包括了 灰度化、二值化、去噪、分割 等过程。本文将尽量有详有略地讲述整个过程,以及本菜鸡在开发过程中遇到的问题。 话不多说,现在开始。 一、训练集的收集 要收集足够多的验证码,只需要写一个简单的 爬虫 ,去一些各大网站的登录系统爬取就好。本菜鸡爬的是自己学校教务系统的登录网站,所以不太方便附上代码。本菜鸡总共爬取了500张验证码作为训练集,以及200张验证码用于测试,并已将自己得到的验证码放到了github上,github地址在文末给出。 这一过程需要注意,必须要 手动输入这些验证码的答案 ,并将这些答案保存下来。而且为了提高识别的正确率,需要 检查自己输入的验证码内容是否有误 接下来我们就要对收集到的训练集进行处理。 二、图像处理 以下用到了Python3的PIL(Pillow)库: 1、干扰线的处理 让我们先来看看得到验证码图片: 我们可以看到,每一张验证码图片上,都有很多的干扰线,虽然这些干扰线不会影响到我们自己识别验证码