1.2_数据的特征抽取

Posted alexzhang92

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.2_数据的特征抽取相关的知识,希望对你有一定的参考价值。

现实世界中多数特征都不是连续变量,比如分类、文字、图像等,为了对非连续变量做特征表述,需要对这些特征做数学化表述,因此就用到了特征提取. sklearn.feature_extraction提供了特征提取的很多方法

分类特征变量提取

我们将城市和环境作为字典数据,来进行特征的提取。

sklearn.feature_extraction.DictVectorizer(sparse = True)

将映射列表转换为Numpy数组或scipy.sparse矩阵

  • sparse 是否转换为scipy.sparse矩阵表示,默认开启

方法

fit_transform(X,y)

应用并转化映射列表X,y为目标类型

inverse_transform(X[, dict_type])

将Numpy数组或scipy.sparse矩阵转换为映射列表

from sklearn.feature_extraction import DictVectorizer
onehot = DictVectorizer() # 如果结果不用toarray,请开启sparse=False
instances = [{city: 北京,temperature:100},{city: 上海,temperature:60}, {city: 深圳,temperature:30}]
X = onehot.fit_transform(instances).toarray()
print(onehot.inverse_transform(X))

 

文本特征提取(只限于英文)

文本的特征提取应用于很多方面,比如说文档分类、垃圾邮件分类和新闻分类。那么文本分类是通过词是否存在、以及词的概率(重要性)来表示。

(1)文档的中词的出现

数值为1表示词表中的这个词出现,为0表示未出现

sklearn.feature_extraction.text.CountVectorizer()

将文本文档的集合转换为计数矩阵(scipy.sparse matrices)

方法

fit_transform(raw_documents,y)

学习词汇词典并返回词汇文档矩阵

from sklearn.feature_extraction.text import CountVectorizer
content = ["life is short,i like python","life is too long,i dislike python"]
vectorizer = CountVectorizer()
print(vectorizer.fit_transform(content).toarray())

 

需要toarray()方法转变为numpy的数组形式

温馨提示:每个文档中的词,只是整个语料库中所有词,的很小的一部分,这样造成特征向量的稀疏性(很多值为0)为了解决存储和运算速度的问题,使用Python的scipy.sparse矩阵结构

(2)TF-IDF表示词的重要性

TfidfVectorizer会根据指定的公式将文档中的词转换为概率表示。(朴素贝叶斯介绍详细的用法)

class sklearn.feature_extraction.text.TfidfVectorizer()

方法

fit_transform(raw_documents,y)

学习词汇和idf,返回术语文档矩阵。

from sklearn.feature_extraction.text import TfidfVectorizer
content = ["life is short,i like python","life is too long,i dislike python"]
vectorizer = TfidfVectorizer(stop_words=english)
print(vectorizer.fit_transform(content).toarray())
print(vectorizer.vocabulary_)

 

图像特征提取

 

以上是关于1.2_数据的特征抽取的主要内容,如果未能解决你的问题,请参考以下文章

python数据挖掘(从数据集中抽取特征)

[转] 轻松使用多种预训练卷积网络抽取图像特征

机器学习带你搞懂什么是特征工程?(特征抽取&特征预处理&特征选择&数据降维)

机器学习带你搞懂什么是特征工程?(特征抽取&特征预处理&特征选择&数据降维)

特征抽取 — TF-IDF

机器学习 | 特征工程(数据预处理特征抽取)