CV学习笔记-特征提取

简介: CV学习笔记-特征提取

特征提取

1. 概述

图像中常见的特征有边缘、角、区域等。通过各属性间的关系,改变原有的特征空间,例如组合不同的属性得到新的属性,这样的处理叫做特征提取。

注意特征选择是从原始的特征数据集中选择出子集,是一种包含关系,并没有造成原始特征空间的变动,而特征提取不同,这是一个重要的区别点。

2. 主要方法

特征提取的主要方法:主成分分析(PCA)

特征提取的主要目的:降维,排除信息量小的特征进而减少计算量等。

3. PCA

1. PCA算法的实现

根据向量的空间变换理论,我们可以把一个三维向量(x1,y1,z1)变换到(x2,y2,z2),因为我们特征提取后,特征空间发生了变化,假定原本特征空间中的基底为(x,y,z),新空间的基底为(a,b,c),若在新的特征空间中,某一维在新基底下的投影都接近于0,可以忽略,那么,我们可以直接用(a,b,c)的降维基底来表示数据(如(x2,y2,z2)在c分量上的投影均接近0,那么(a,b)就可以表示这个特征空间),这样数据就从三维空间降维到了二维空间。

重点是如何求解新的基底(a,b,c)

求解步骤:

  • 对原始数据零均值化(中心化)
  • 求协方差矩阵
  • 对协方差矩阵求特征向量和特征值,使用这些特征向量组成新的特征空间。

2. 零均值化(中心化)

过程:中心化就是将样本集的中心平移到坐标系的原点O上,使得所有数据的中心为(0,0),即将变量减去它的均值,使均值为0.

目的:使得样本集的数据中心变为(0,0),中心化数据之后,计算得到的方向才能比较好的反映原来的数据。

2018122814580746.png

降维的几何意义:

对于一组数据,如果其在某一基底方向上的方差越大,则说明点的分布越分散,表明这个方向上所代表的属性(特征)可以越好地反映源空间数据集。所以在降维地时候,主要目的是找到一个超平面能够使得数据点地分布方差呈最大,这样数据表现在新的坐标轴上的时候已经足够分散了。

方差的定义:

2018122814580746.png

PCA算法的优化目标就是:

  • 降维后同一维度的方差最大
  • 不同维度之间的相关性为0

3. 协方差矩阵的定义

定义:

2018122814580746.png

意义:衡量两个属性之间的关系

当Cov(X, Y) >(<)(=) 0时,X与Y正(负)(不)相关

特点:

  • 协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的。
  • 样本矩阵的每一行是一个样本,每列为一个维度,所以样本集要按列计算均值。
  • 协方差矩阵的对角线就是各个维度的方差,也即(Cov(X,X) = D(X))

特别地,数据中心化后的协方差矩阵,也即中心化矩阵的协方差矩阵公式:

2018122814580746.png

4.对协方差矩阵求特征值与特征矩阵

其实对于特征值与特征向量的求法,在大学数学中已经是一个很熟练通用的方法了,那么它在图像中到底有何种意义呢?

特征向量:即为对于图像矩阵做特征值分解后在图像中提取的特征。

特征值:其对应的特征(特征向量)在图像中的重要程度。

对数字图像矩阵做特征值分解,其实是在提取这个图像的特征,提取出来的向量即为特征向量,而对应的特征值就是这个特征在图像中的重要程度。在线性代数中,一个矩阵就是一个线性变换,向量在通常情况下做一个随机的线性变换后会变得与变换前的向量失去通常意义上可见关系,特征向量在使用原始矩阵做线性变换后,与变换前的特征向量仅仅是有了倍乘关系,也就是说,特征向量在原始矩阵的变换下仍然“保持原样”,那么这些向量(特征向量)就可以作为矩阵的核心代表了。所以,一个矩阵(线性变换)可以由其特征值和特征向量完全表述,这是因为从数学上看,这个矩阵的所有特征向量组成了这个向量空间的一组基底,而矩阵作为变换的本质其实就是把一个基底下的东西变换到另一个基底表示的空间中。

举例:比如一个100x100的图像矩阵A分解之后,会得到一个100x100的特征向量组成的矩阵Q,以及一个100x100的只有对角线上的元素不为0的矩阵E,这个矩阵E对角线上的元素就是特征值,而且还是按照从大到小排列的(取模,对于单个数来说,其实就是取绝对值),也就是说这个图像A提取出来了100个特征,这100个特征的重要性由100个数字来表示,这100个数字存放在对角矩阵E中。

5. 对特征值进行排序

方法:

2018122814580746.png

评价模型的好坏,K值的确定:

通过特征值的计算我们可以得到主成分所占的百分比,用来衡量模型的好坏。

对于前K个特征值所保留的信息量计算方法如下:

2018122814580746.png

6. PCA算法优缺点

优点:

  • 完全无参数限制。在PCA的计算过程中完全不需要认为的设定参数或是根据任何经验模型对计算进行干预,最后的结果只与数据相关,与用户是独立的。
  • 用PCA技术可以对数据进行降维,同时对新求出的“主元”向量的重要性进行排序,根据需要取前面最重要的部分,将后面的维数省去,可以达到降维从而简化模型或是对数据进行压缩的效果。同时最大程度地保持了原有数据地信息。

各主成分之间正交,可消除原始数据成分之间的相互影响。

计算方法简单,易于在计算机上实现。

缺点:

  • 如果用户对观测对象有一定的先验知识,掌握了数据的一些特征,却无法通过参数化等方法对处理过程进行干预,可能会得不到预期的效果,效率也不高。
  • 贡献率小的主成分往往可能含有对样本差异的重要信息。

个人学习笔记,仅交流学习,转载请注明出处!


相关文章
|
机器学习/深度学习 计算机视觉 Python
图像数据的特征提取与预处理方法,涵盖图像数据的特点、主要的特征提取技术
本文深入探讨了图像数据的特征提取与预处理方法,涵盖图像数据的特点、主要的特征提取技术(如颜色、纹理、形状特征)及预处理步骤(如图像增强、去噪、分割)。同时介绍了Python中常用的OpenCV和Scikit-image库,并提供了代码示例,强调了预处理的重要性及其在提升模型性能中的作用。
2060 5
|
传感器 数据采集 机器学习/深度学习
自动驾驶之传感器数据处理自动化
自动驾驶之传感器数据处理自动化
354 1
|
机器学习/深度学习 算法
反向传播原理的梯度下降算法
反向传播原理的梯度下降算法
|
机器学习/深度学习 自然语言处理 算法
数据准备指南:10种基础特征工程方法的实战教程
在数据分析和机器学习中,从原始数据中提取有价值的信息至关重要。本文详细介绍了十种基础特征工程技术,包括数据插补、数据分箱、对数变换、数据缩放、One-Hot编码、目标编码、主成分分析(PCA)、特征聚合、TF-IDF 和文本嵌入。每种技术都有具体应用场景和实现示例,帮助读者更好地理解和应用这些方法。通过合理的特征工程,可以显著提升模型的性能和预测能力。
910 3
数据准备指南:10种基础特征工程方法的实战教程
|
机器学习/深度学习 数据采集 自然语言处理
特征提取:它是什麼?为什么需要它?
【8月更文挑战第23天】
1828 0
|
Java 数据库连接 Spring
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could
这个错误通常出现在使用Spring Boot进行数据库连接时。错误信息表明Spring Boot未能配置一个DataSource,因为没有指定'url'属性,并且没有发现默认的数据库连接。
6157 0
|
机器学习/深度学习 存储 计算机视觉
特征提取
特征提取
396 3
WK
|
机器学习/深度学习 监控 算法
反向传播算法是如何工作的
反向传播算法通过最小化损失函数优化神经网络。首先,输入数据经由前向传播得到预测结果,并计算损失;接着,反向传播计算各参数的梯度,并利用梯度下降法更新权重和偏置。这一过程反复进行,直至满足停止条件。算法具备高效性、灵活性及可扩展性,能处理复杂模式识别与预测任务,适用于不同类型与规模的神经网络,显著提升了模型的预测准确性和泛化能力。
WK
672 3
|
机器学习/深度学习 计算机视觉 Python
【Python 机器学习专栏】图像数据的特征提取与预处理
【4月更文挑战第30天】本文探讨了图像数据的特征提取与预处理在机器学习中的重要性。图像数据具有大容量、信息丰富和冗余性高的特点。特征提取涉及颜色、纹理和形状特征;预处理包括图像增强、去噪和分割。Python的OpenCV和Scikit-image库在处理这些任务时非常有用。常见的特征提取方法有统计、变换和基于模型的方法,而预处理应注意保持图像真实性、适应性调整及验证评估。有效的特征提取和预处理能提升模型性能,Python工具使其更高效。
969 0
|
机器学习/深度学习 API 开发者
深入浅出:使用Python实现机器学习模型的部署
在本文中,我们将探讨如何使用Python语言将机器学习模型从开发环境迁移到生产环境的过程。与传统的技术文章摘要不同,我们不仅会概述关键步骤和常见挑战,还将引入一个简易的案例研究,通过这个案例,读者能够更直观地理解模型部署的全过程及其重要性。我们将重点讨论模型封装、API设计、容器化技术以及云服务部署等关键技术,旨在为广大开发者提供一个清晰、实用的模型部署指南。