2018-01-12 22:03:04 volvet 阅读数 6666
  • 机器学习案例实战第六课-PCA与Xgboost视频教学

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 用实例演示机器学习中的Xgboost算法和PCA原理。本视频课程首先讲解两个案例,基于文本分类的股价预测与PCA降维应用在鸢尾花数据集上。简介Xgboost算法原理,并安装xgboost实例演示如何进行操作。 会员卡优惠购买:http://edu.csdn.net/lecturer/1079

    3108 人正在学习 去看看 唐宇迪

PCA(Principal Component Analysis), 也就是主成分分析, 是数据分析的常用方法, 其原理是: 反映对象特征的多个属性往往存在线形相关, 所以可以找到一个合理的方法, 对此多个属性变换为线性无关的另一组属性, 变换后的属性个数小于最初的属性的个数, 也就是起到了数据降维的作用, 这样可以减少数据分析的复杂度. 自然, PCA在机器学习,计算机视觉和图像处理上, 也有重要作用. 如本文末参考文献中使用PCA来估计图像局部方向.
f(x,y)为一感兴趣图像区域, 则可求得其梯度gi为:

gi=f(x,y),i=1,2,...,n

a为此区域方向, 则其必正交于图像梯度, 于是, 估计区域方向就可以用最小化下式来推算:
i=1n(aTgi)2=aTi=1n(gigTi)a=aTCa

其中, 
C=i=1ngxgx,i=1ngxgyi=1ngxgy,i=1ngygy

可用Langrange Multiplier 来求解, a就是C的对应于最小特征值的特征向量.
此方法在RAISR中得到了应用. 下图就是RAISR跟双线形上采样的比较.

这里写图片描述

此程序刚完成, 未作仔细检验, 并没有自信其逻辑一定正确. 还有训练样本集是网上找的一个很小的图像数据库, 一共200张图片,所以次训练远远称不上充分。 所以理论上应该能取得更好的效果.

Reference

  • Multiscale Principle Component Analysis for Image Local Orientation Estimation.
2015-12-21 17:11:35 baimafujinji 阅读数 11954
  • 机器学习案例实战第六课-PCA与Xgboost视频教学

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 用实例演示机器学习中的Xgboost算法和PCA原理。本视频课程首先讲解两个案例,基于文本分类的股价预测与PCA降维应用在鸢尾花数据集上。简介Xgboost算法原理,并安装xgboost实例演示如何进行操作。 会员卡优惠购买:http://edu.csdn.net/lecturer/1079

    3108 人正在学习 去看看 唐宇迪

欢迎关注我的博客专栏“图像处理中的数学原理详解

全文目录请见 图像处理中的数学原理详解(总纲)

http://blog.csdn.net/baimafujinji/article/details/48467225



如果你对PCA的推导和概念还不是很清楚,建议阅读本文的前导文章

http://blog.csdn.net/baimafujinji/article/details/50372906


6.4.3 主成分变换的实现


本小节通过一个算例验证一下之前的推导。在前面给出的例子中,各点在原始的

由于方程是齐次的,所以不独立。因为系数矩阵有零行列式,所以方程有非无效解。从两个方程的任何一个可见

现在考虑该结论该如何解释。特征向量g1和g2是在原坐标系中用来定义主成分轴的向量,如图6-20所示,其中,e1和e2分别是水平和垂直的方向向量。显而易见,这些数据在新坐标系中是非相关的。该新坐标系是原坐标系的旋转,出于这种原因,可以将主成分变换理解为旋转变换(即使在高维空间上亦是如此)。

6.4.4 基于K-L变换的图像压缩

从图像压缩的角度出发,我们必然希望变换系数协方差矩阵Σx 中除对角线外的所有协方差均为零,成为对角线矩阵,即原来像素间的相关性经变换后全部解除,或者至少大部分协方差要等于或接近于零。为此,需要选择适当的变换矩阵,它作用于Σx 后使其变成对角线型。通过前面的分析和推导,可知这样的变换矩阵是存在的。如果用协方差矩阵Σx 的特征向量作变换的基向量,即由Σx 的特征向量作为正交变换的变换矩阵,就可以得到对角线型的变换域协方差矩阵Σy 。K-L变换就是采用这种矩阵进行变换的正交变换,它可以在变换域完全解除相关性,因此是理论上的最佳变换。同时,换一个角度也可以证明,K-L变换是均方误差最小准则下的最佳变换,即当压缩比确定的情况下,采用K-L变换后,重建图像的均方误差比采用任何其他正交变换的都小。

但是回顾之前进行的K-L变换,哪个步骤可以称为图像压缩的切入点呢?一幅大小为M×N的图像,它的协方差矩阵Σx大小为MN×MN。由上述K-L变换理论可知,对X进行K-L变换的变换矩阵就是Σx的特征向量矩阵,该矩阵大小亦为MN×MN,其大小远远大于原始图像数据矩阵。而且要在解码时恢复原图像,不但需要变换后的系数矩阵Y,还需要知道逆变换矩阵(也就是变换矩阵的转置)。如果不经过任何处理就这样直接将K-L变换用于数字图像的压缩编码,不但达不到任何数据压缩的效果,还极大的增加了数据量。即使仅保留一个最大的特征值,变换矩阵中和该特征值对应的特征向量为M×N维,系数矩阵 Y 保留的元素为一个。要重建图像数据,需要保留的元素个数为仍大于原矩阵,所以达不到压缩的目的。另外,求一个矩阵的协方差矩阵和特征向量矩阵,都是非常复杂的运算过程,需要大量的计算。当X比较大时,运算时间的耗用可能是非常大的。有时甚至会出现因为过于复杂而导致Σx和变换矩阵无法求解的情况。


要解决上述问题,可以考虑将图像分成若干个小块,然后对每个小块分别进行K-L变换(这与本章前面的处理方式基本保持一致)。这样使得Σx和变换矩阵都比较小,计算机处理起来比较容易而且速度快。这里仍然将图像划分为多个不重叠的8×8小块(当图像垂直和水平方向的像素数不是8的倍数时补0,使之均为8的倍数)。然后再分别对每一个小块执行K-L变换,变换矩阵的数目为K个,每个矩阵大小为64×64,仅变换矩阵就要记录K×64×64个数据,还是远远大于原始数据的个数M×N。是否可以让变换矩阵的数量变得少些,最好只保留一个变换矩阵。回忆前面做K-L变换的例子,变换矩阵的大小与输入矩阵的维度有关,而与样本数量无关,据此可以将每个8×8小块变成一个行向量(也就是一个64维的数组),原图中的每一个小方块都是一个64维的样本。所以最后只需要一个64×64的变换矩阵即可,它对于原图像的任意一个数据块都适用。这样的处理方式并不是完全意义上的K-L 变换,因为采用分块的处理方式,各个数据块之间的相关性是没有消除的。但实验亦表明,这样的K-L 变换虽然不能完全消除图像各像素点之间的相关性,也能达到很好的去相关效果,在去相关性性能上优于离散余弦变换。


图像数据经K-L变换后,得到的系数矩阵Y大部分系数都很小,接近于零。只有很少的几个系数的数值比较大,这正是K-L变换所起到的去除像素间的相关性,把能量集中分布在较少的变换系数上的作用的结果。据此,在图像数据压缩时,系数矩阵Y保留M个分量,其余分量则舍去。在实际编程开发中,经K-L变换后的系数矩阵中的数值都是按从大到小的顺序排列的,所以直接舍去后面的64−M个分量即可。通过这一步的处理,便可动态地调节压缩编码系统的压缩比和重建图像的质量。解码时,首先做K-L逆变换,然后将上述过程逆转,可以得到重建后的图像数据矩阵。


我们在MATLAB中编写的示例程序演示了运用上述方法对图像实施基于K-L变换的压缩处理的过程。最后可以通过编程实现基于K-L变换的图像压缩算法并测试其压缩效果,所得之测试结果如图6-22所示。该程序验证了三种不同的压缩比,即舍去排序后的系数矩阵中的32/64(对应压缩比50%)、48/64(对应压缩比75%)以及56/64(对应压缩比87.5%)。相关测试程序源码读者可以从本书的在线支持资源中下载得到。


最后需要补充说明的是尽管K-L变换可以将数据之间的相关性完全去除,所以理论上是一种最理想的数据压缩方案,但它在实际应用过程中仍然受到很大局限。例如,它没有快速算法,不同的图像所对应的变换矩阵也不同,从这个角度来说,单纯将K-L变换直接应用于图像数据压缩的理论价值要大于实际价值。它的存在意义,一方面是可以作为理论验证的参考模板,另一方面就是需要对原始算法加以改进后再付诸应用。


我的“图像处理中的数学原理”专栏中之系列文章已经以《图像处理中的数学修炼》为名结集出版(清华大学出版社)。该书详细介绍图像处理中的数学原理,为你打开一道通往图像世界的数学之门,详细内容及目录请见 http://blog.csdn.net/baimafujinji/article/details/48467225


2015-12-21 16:47:14 baimafujinji 阅读数 13605
  • 机器学习案例实战第六课-PCA与Xgboost视频教学

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 用实例演示机器学习中的Xgboost算法和PCA原理。本视频课程首先讲解两个案例,基于文本分类的股价预测与PCA降维应用在鸢尾花数据集上。简介Xgboost算法原理,并安装xgboost实例演示如何进行操作。 会员卡优惠购买:http://edu.csdn.net/lecturer/1079

    3108 人正在学习 去看看 唐宇迪

欢迎关注我的博客专栏“图像处理中的数学原理详解

全文目录请见 图像处理中的数学原理详解(总纲)

http://blog.csdn.net/baimafujinji/article/details/48467225



阅读本文需要最基本的线性代数知识和概率论基础:)


6.4.2 主成分变换的推导

前面提到的一国经济增长与城市化水平关系的问题是典型二维问题,而协方差也只能处理二维问题,那维数多了自然就需要计算多个协方差,所以自然会想到使用矩阵来组织这些数据。为了帮助读者理解上面给出的协方差矩阵定义,在此举一个简单的三维的例子,假设数据集有 {x,y,z} 三个维度,则协方差矩阵为


可见,协方差矩阵是一个对称的矩阵,而且对角线是各个维度上的方差。下面通过一个例子来尝试演算协方差矩阵(很多数学软件都为该操作提供了支持)。需要提醒读者注意的是,协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的。例如有一个样本容量为 9 的三维数据,如下


根据公式,计算协方差需要计算均值,那是按行计算均值还是按列呢,前面也特别强调了,协方差矩阵是计算不同维度间的协方差,要时刻牢记这一点。样本矩阵的每行是一个样本,每列为一个维度,所以要按列计算均值。经过计算,不难得到上述数据对应的协方差矩阵如下


众所周知,为了描述一个点在直角坐标系中的位置,至少需要两个分量。图6-17所示是两个二维数组,其中左图显示的各个点之间相关性微乎其微,而右图所示的各个点之间则高度相关,显然数据散布在一定角度内较为集中。对于右图而言,只要知道某个点一维分量的大小就可以大致确定其位置,两个分量中任一分量的增加或者减少都能引起另一分量相应的增减。相反,左图中的情况却不是这样。


对之前给出的协方差矩阵定义式稍加改写,以使其获得计算上更为直观的便利。则有在X矢量空间(或坐标系下),协方差矩阵Σx的无偏计算公式为


表6-2给出了对于图6-17中左图所示的6个样本点的集合,以及经计算后求得的样本集协方差矩阵和相关矩阵的结果。应当注意,协方差矩阵和相关矩阵二者都是沿对角线对称的。从相关矩阵来看,各个数据分量间存在不相关关系的明显事实就是协方差矩阵(以及相关矩阵)中非对角线元素都是零。

最终计算可得


主成份变换的实现(包含一个实际的计算示例)以及它在图像处理中的应用举例,我将在下一篇文章中给出。

图像处理中的数学原理详解21——PCA实例与图像编码http://blog.csdn.net/baimafujinji/article/details/50373143



我的“图像处理中的数学原理”专栏中之系列文章已经以《图像处理中的数学修炼》为名结集出版(清华大学出版社)。该书详细介绍图像处理中的数学原理,为你打开一道通往图像世界的数学之门,详细内容及目录请见 http://blog.csdn.net/baimafujinji/article/details/48467225



2019-10-08 21:53:04 weixin_42530310 阅读数 9
  • 机器学习案例实战第六课-PCA与Xgboost视频教学

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 用实例演示机器学习中的Xgboost算法和PCA原理。本视频课程首先讲解两个案例,基于文本分类的股价预测与PCA降维应用在鸢尾花数据集上。简介Xgboost算法原理,并安装xgboost实例演示如何进行操作。 会员卡优惠购买:http://edu.csdn.net/lecturer/1079

    3108 人正在学习 去看看 唐宇迪

PCA(主成分分析法)

PCA是一种常用的数据降维的方法。数据降维在图像处理中是常用到的思路。。PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分。在降维的同时,要最大的保持图像的特征。,我们是使用协方差矩阵。找到方差最大的前k个值

def pca(X):
    #获取维数
    num_data,dim=X.shape
    #数据中心化
    mean_X=X.mean(axis=0)
    X=X-mean_X
    if dim>num_data:
        M=dot(X,X.T)#,M为协方差矩阵,找出最大的特征值对应的特征向量
        e,EV=linalg.eigh(M)#特征值和特征向量
        tmp=dot(X.T,EV)
        V=tmp[::-1]#将特征向量逆转
        S=sqrt(e)[::-1]
        for i in range(V.shape[1]):
            V[:,i]/=S
    else:
    #使用SVD方法
    U,S,V=linalg.svd(X)
    V=V[:num_data]
return V,S,mean_X
PCA
2017-06-01 11:01:09 u012513618 阅读数 4343
  • 机器学习案例实战第六课-PCA与Xgboost视频教学

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 用实例演示机器学习中的Xgboost算法和PCA原理。本视频课程首先讲解两个案例,基于文本分类的股价预测与PCA降维应用在鸢尾花数据集上。简介Xgboost算法原理,并安装xgboost实例演示如何进行操作。 会员卡优惠购买:http://edu.csdn.net/lecturer/1079

    3108 人正在学习 去看看 唐宇迪

在讲解PCA之前,首先提供一些关于矩阵的小知识
均值

ave(x)=mi=1xim

协方差

cov(x,y)=mi=1(xiave(x))(yiave(yi))m1

cov(x,x)=mi=1(xiave(x))(xiave(xi))m1=Dx

推导:
cov(x,y)=E(xEx)(yEy)
=E(xyyExxEy+ExEy)
=ExyExEy
=cov(y,x)

实对称矩阵的性质

  1. 实对称矩阵不同特征值对应的特征向量都是正交的
  2. 实对称矩阵的特征值都是实数,特征向量都是实向量
  3. N阶实对称矩阵必可以对角化,且相似对角矩阵上的元素即为矩阵本身的特征值。
    这里写图片描述

协方差矩阵
假设数据有三个维度{x,y,z},则协方差矩阵为:

这里写图片描述

可见协方差矩阵也是实对称矩阵,因而,上述实对称矩阵的性质协方差矩阵也都有。

PCA(principal components analysis)


百度百科对PCA解释为:主成分分析(Principal Component Analysis,PCA), 是一种统计方法。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。

应用:对原有数据进行简化,即找出最有效的元素和结构,如图像,基因数据,视频,音频,化工等高维数据。

目标:PCA目标是使用使用另一组基去重新描绘得到的数据空间,新的基要尽可能揭示原有数据的关系。

本质:实际上是K-L变换(卡洛南-洛伊(Karhunen-Loeve)变换),又名:最优正交变换
注:K-L变换在http://www.cnblogs.com/liu-jun/archive/2013/03/20/2970132.html 中有详细介绍。

PCA算法是寻找一个低维空间来尽可能的表现原始数据(将原始数据进行投影,类似于向量投影【|A|cosθ 】 )。从下图中可以看出, u1是数据变化的主方向,而 u2是次方向。

主轴和次轴方向


PCA计算流程

有了K-L变换的知识做铺垫后,接下来提供PCA具体的计算过程

  1. 数据标准化
    为什么要进行数据标准化,最主要的原因是消除量纲(即单位)带来的差异。常见的数据标准化方法有 0-1标准化,最大最小标准化。
  2. 计算协方差矩阵
    设标准化的数据矩阵为X,则协方差矩阵cov(X,X)=1nXTX
  3. 求取协方差矩阵的特征值和特征向量
    在matlab或者python里面都有相应的求特征值和特征向量的函数,如,matlab中可直接使用eig()这个函数求取特征值和特征向量
  4. 对特征值从大到小排序,依据主元贡献率贺主元个数得到相应的的特征向量
    接下来便是如何计算贡献率和计算主元个数了
    贡献率是分析经济效益的一个指标。它是指有效或有用成果数量与资源消耗及占用量之比,即产出量与投入量之比,或所得量与所费量之比。
    主元:特征值按从大到小顺序排序后的特征向量
    主元贡献率 :
X为标准化矩阵
za(:,i)=A*eigenvectors1(:,i); 
设d1是按大到小排序好的特征值矩阵(1*m)
Gx=d1./sum(d1)
If sum(GX(i))>0.99 #i为主元个数
   break

这里写图片描述

实例分析

MATLAB中自带的PCA函数
[COEFF, SCORE, LATENT, TSQUARED] = princomp(A) ;
说明:
COFFEE即是排序后特征向量矩阵(eigenvectors1)
LATENT即是排序后对应的特征值(eigenvalues)
SCORE即是未按特征值重要性级别排除删除特征值而计算出的主元

这里写图片描述

这里写图片描述

总结:

1.协方差矩阵计算的是不同维度的协方差,而不是不同样本的协方差。
2.样本的每一行代表的是一个样本,每一列代表的是一个维度

这里写图片描述

提问

样本的数量一定要比样本的特征维数多么?如果不是?为什么?
PCA按照贡献率忽略掉一些特征属性,那么有没有可能它所忽略的投影方向有可能刚好包含了重要的可分性信息?

没有更多推荐了,返回首页