图像处理矩特征详细介绍_「人工智能」No.11 特征工程之特征抽取

【导读:当今人类即将或者已然了进入智能时代,这是·情报通·人工智能科普系列第[11]篇文章,欢迎阅读和收藏】

1 基本概念

特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对未知数据的模型准确性。

特征抽取是将任意数据(如文本或图像)转换为可用于机器学习的数字特征,具体有如下几个方面:

1、 字典特征提取(特征离散化)

2、 文本特征提取

3、 图像特征提取

2 术语解释

特征:某一类对象区别于其他类对象的相应特点或特性。特征是通过测量或处理能够抽取的数据。

特征类型:包括边缘、角、区域、脊。边缘时组成两个图像区域之间边界的像素。角是图像中点似的特征,在具备它有两维结构。区域是描写一个图像中的一个区域性的结构。

线性特征提取算法:包括 PCA (主成分分析)、 LDA (线性判别分析)、 ICA (独立成分分析)。 PCA 的思想是寻找表示数据分布的最优子空间(降维、可以去相关) ;LDA 的思想 是需找可分性判据最大的子空间; ICA 的思想是将原始数据降维并提取出相互独立的属性。

非线性特征提取算法:包括 Kernel PCA 、 Kernel FDA 、 Manifold Learning 流形学习。

d07d08352b0676a83dbb6bb95ddf4116.png

3 详细说明

特征抽取 API:sklearn.feature_extraction

3.1 字典特征抽取

对字典数据进行特征值化将其转换为 One-hot 编码。

API 介绍

sklearn.feature_extraction.DictVectorizer(sparse=True,…)* DictVectorizer.fit_transform(X) X: 字典或者包含字典的迭代器返回值:返回 sparse (稀疏)矩阵* DictVectorizer.inverse_transform(X) X:array 数组或者 sparse 矩阵 返回值 : 转换之前数据格式* DictVectorizer.get_feature_names() 返回类别名称

流程:

1、 实例化 DictVectorizer

2、 调用 fit_transform 方法输入数据并转换

编程案例:

from sklearn.feature_extraction import DictVectorizerdef dictvec():  """ 字典数据抽取 """  # 实例化  dict=DictVectorizer(sparse=False)  data=dict.fit_transform([{'city':' 北京 ','temperature':100},{'city':' 上海 ','temperature':80},{'city':' 广州 ','temperature':70}])  # 返回类别名称  name=dict.get_feature_names()  print(name)  print(data)if __name__ == '__main__':dictvec()

3.2 文本特征抽取

对文本数据进行特征值化。统计所有文章中的所有的词,重复的词只看做一次。对每篇文章,在词的列表里面进行统计每个词出现的次数。英文文章可以直接进行统计,中文的文章要进行分词才能进行统计。

API 介绍

* sklearn.feature_extraction.text.CountVectorizer(stop_words=[])* 返回词频矩阵* CountVectorizer.fit_transform(X) X: 文本或者包含文本字符串的可迭代对象 返回值:返回 sparse 矩阵* CountVectorizer.inverse_transform(X) X:array 数组或者 sparse 矩阵 返回值 : 转换之前数据格* CountVectorizer.get_feature_names() 返回值 : 单词列表

流程:

1、 实例化类 CountVectorizer

2、 调用 fit_transform 方法输入数据并转换

编程案例:

from sklearn.feature_extraction.text import CountVectorizerdef countvec():  """  对文本进行特征化  :return:None  """  # 实例化  cv=CountVectorizer()  data=cv.fit_transform(["life is short,i like python","life is too long,i dislike python"])  print(cv.get_feature_names())  print(data.toarray())if __name__ == '__main__':countvec()

3.3 图像特征提取

使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征。特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点、连续的曲线或者连续的区域。

常用的图像特征有颜色特征、纹理特征、形状特征、空间关系特征。

以颜色特征提取为例介绍。

颜色特征描述了图像或图像区域所对应的景物的表面性质。一般颜色特征是基于像素点的特征,此时所有属于图像或图像区域的像素都有各自贡献。由于颜色对图像或图像区域的方向、大小等变化不敏感,所以颜色特征不能很好地捕捉图像中对象的局部特征。

常用的颜色特征提取常用的特征提取与匹配方法

( 1 ) 颜色直方图

其优点在于:它能简单描述一幅图像中颜色的全局分布,即不同色彩在整幅图像中所占的比例,特别适用于描述那些难以自动分割的图像和不需要考虑物体空间位置的图像。其缺点在于:它无法描述图像中颜色的局部分布及每种色彩所处的空间位置,即无法描述图像中的某一具体的对象或物体。

最常用的颜色空间: RGB 颜色空间、 HSV 颜色空间。

颜色直方图特征匹配方法:直方图相交法、距离法、中心距法、参考颜色表法、累加颜色直方图法。

( 2 ) 颜色集

颜色直方图法是一种全局颜色特征提取与匹配方法,无法区分局部颜色信息。颜色集是对颜色直方图的一种近似首先将图像从 RGB 颜色空间转化成视觉均衡的颜色空间(如 HSV 空间),并将颜色空间量化成若干个柄。然后,用色彩自动分割技术将图像分为若干区域,每个区域用量化颜色空间的某个颜色分量来索引,从而将图像表达为一个二进制的颜色索引集。在图像匹配中,比较不同图像颜色集之间的距离和色彩区域的空间关系

( 3 ) 颜色矩

这种方法的数学基础在于:图像中任何的颜色分布均可以用它的矩来表示。此外,由于颜色分布信息主要集中在低阶矩中,因此,仅采用颜色的一阶矩( mean )、二阶矩( variance )和三阶矩( skewness )就足以表达图像的颜色分布。

( 4 ) 颜色聚合向量

其核心思想是:将属于直方图每一个柄的像素分成两部分,如果该柄内的某些像素所占据的连续区域的面积大于给定的阈值,则该区域内的像素作为聚合像素,否则作为非聚合像素。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值