深度学习基础之特征工程概述——慕课学习笔记

2.1特征工程

引自知乎:“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。”

自动分词就是将用自然语言书写的文章、句段经计算机处理后,以词为单位给以输出,为后续加工处理提供先决条件。

词根提取(stemming) :是抽取词的词干或词根形式(不一-定能够表达完整语义)。
深度学习基础之特征工程概述——慕课学习笔记
词形还原(lemmatization) :是把词汇还原为一般形式(能表达完整语义)。如将“drove"处理为“drive"。
深度学习基础之特征工程概述——慕课学习笔记
词性标注( part-of-speech tagging) :是指为分词结果中的每个单词标注一个正确的词性的程序,也即确定每个词是名词、动词、形容词或者其他词性的过程。(参考美国滨州树库词性标注规范)
深度学习基础之特征工程概述——慕课学习笔记

句法分析(Syntactic analysis) :其基本任务是确定句子的句法结构或者句子中词汇之间的依存关系。
深度学习基础之特征工程概述——慕课学习笔记
Natural Language Toolkit (自然语言处理工具包)
NLTK提供了很多文本处理的功能:
■Tokenization (词语切分,单词化处理)
■Stemming (词干提取)
■Tagging (标记,如词性标注)
■Parsing (句法分析)

此外,还提供了50多种语料和词汇资源的接口,如WordNet等。

Text Processing API支持如下功能:.
■词根提取与词形还原(Stemming & Lemmatization)
■情感分析(Sentiment Analysis )
■词性标注和语块抽取(Tagging and Chunk Extraction )
■短语抽取和命名实体识别(Phrase Extraction & Named Entity Recognition)

基于curl访问Text Processing API
Curl (CommandLine Uniform Resource Locator)是利用URL语法在命令行方式下工作的开源文件传输工具。支持Unix、多种Linux发行版、Win32、Win64等。
深度学习基础之特征工程概述——慕课学习笔记
TextBlob工具:https://github.com/sloria/TextBlob
●功能:
■Tokenization (splitting text into words and sentences) ( 切词)
■Noun phrase extraction (名词短语抽取)
■Part-of-speech tagging (词性标注)
■Sentiment analysis (情感分析)
■Classification (Naive Bayes, Decision Tree) (分类)
■Language translation and detection powered by Google Translate (语
言翻译与检测)
■Word and phrase frequencies (词频统计)
■Spelling correction (拼写检查)
■Word inflection词形变化(singularization and pluralization 单数和复
数) and lemmatization (词干提取)

中文处理工县jieba:中文分词、词性标注工具
功能:
■分词(包括并行分词、支持自定义词典)
■词性标注
■关键词提取

2.2向量空间模型及文本相似度计算

文档的向量化表示: BOW假设和VSM模型

为了便于计算文档之间的相似度,需把文档转成统一空间的向量。
深度学习基础之特征工程概述——慕课学习笔记
假设有下面三个文档:
深度学习基础之特征工程概述——慕课学习笔记
类似这样一批文档的集合,通常也被称为文集或者语料(corpus) 。
上述语料中,共有17个不同的词:
深度学习基础之特征工程概述——慕课学习笔记
因此可构造一个17维的向量空间:
深度学习基础之特征工程概述——慕课学习笔记
停用词(Stop words)通常是非常常见且实际意义有限的词,如英文中“the”, “a”, “of”,"an” 等;中文中“的”、“是”、“而且”等。几乎可能出现在所有场合,因而对某些应用如信息检索、文本分类等区分度不大。

在信息检索等应用中,这些词在构建向量空间时通常会被过滤掉。因此这些词也被称为停用词。

但在某些应用如短语搜索phrase search中,停用词可能是重要的构成部分,因此要避免进行停用词过滤。

N-gram模型
N-gram通常是指一段文本或语音中连续N个项目(item) 的序列。项目(item) 可以是单词、字母、碱基对等。

N=1时称为uni-gram, N=2称为bi-gram, N=3称为tri-gram, 以此类推。
深度学习基础之特征工程概述——慕课学习笔记
欧氏距离(euclidean metric)是一个通常采用的距离定义,指在n维空间中两个点之间的真实距离。
深度学习基础之特征工程概述——慕课学习笔记
深度学习基础之特征工程概述——慕课学习笔记
余弦相似度,又称为余弦相似性,是通过计算两个向量的夹角余弦值来评估他们的相似度。

余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性"。深度学习基础之特征工程概述——慕课学习笔记
Tf-idf词条权重计算
背景:特征向量里某些高频词在文集内其他文档里面也经常出现。它们往往太普遍,对区分文档起的作用不大。
深度学习基础之特征工程概述——慕课学习笔记
即:包含词条t的文档数目越多,idf(t)越小。
深度学习基础之特征工程概述——慕课学习笔记
深度学习基础之特征工程概述——慕课学习笔记
nd表示文档总数,df(t)表示包含词条t的文档数。

计算举例:
深度学习基础之特征工程概述——慕课学习笔记
结果还可采用归一化处理(归一化后面有讲解):
深度学习基础之特征工程概述——慕课学习笔记

2.3特征处理(特征缩放、特征选择及降维)

特征缩放:或称无量纲处理。主要是对每个列,即同一特征维度的数值进行规范化处理。

1.不同特征(列)可能不属于同一量纲,即特征的规格不一样。例如,假设特征向量由两个解释变量构成,第- 一个变量值范围[0,1],第二个变量值范围[0,100]。
2.如果某一特征的方差数量级较大,可能会主导目标函数,导致其他特征的影响被忽略。

常用方法:标准化法、区间缩放法。

特征值的缩放—标准化法
 标准化的前提是特征值服从正态分布。
 标准化需要计算特征的均值和标准差,公式表达为:
深度学习基础之特征工程概述——慕课学习笔记
特征值的缩放—区间缩放法
 区间缩放法利用了边界值信息,将特征的取值区间缩放到某个特定范围。假设max和min为希望的调整后范围,则:
深度学习基础之特征工程概述——慕课学习笔记
 由于希望的调整后范围一般为[0,1]。此时,公式变为:
深度学习基础之特征工程概述——慕课学习笔记
特征值的归一化:或称规范化
归一化是依照特征矩阵的行(样本)处理数据,其目的在于样本向量在点乘运算或计算相似性时,拥有统一的标准,也就是说都转化为单位向量”。即使每个样本的范式(norm) 等于1.
深度学习基础之特征工程概述——慕课学习笔记
定量特征的二值化
对于某些定量特征,需要将定量信息转为区间划分。如将考试成绩,转为“及格”或“不及格”.
深度学习基础之特征工程概述——慕课学习笔记
缺失特征值的弥补计算
常见的弥补策略:利用同一特征的均值进行弥补。

创建多项式特征
如果基于线性特征的模型不够理想,也可以尝试创建多项式特征。
深度学习基础之特征工程概述——慕课学习笔记
得到多项式特征后,只是特征空间发生了变化。

特征选择
选择对于学习任务(如分类问题)有帮助的若干特征。

为什么要进行特征选择?
1)降维以提升模型的效率;
2) 降低学习任务的难度;
3)增加模型的可解释性。

特征选择的角度:
深度学习基础之特征工程概述——慕课学习笔记
特征选择方法1–方差选择法
方差非常小的特征维度对于样本的区分作用很小,可以剔除。
深度学习基础之特征工程概述——慕课学习笔记
特征选择方法2–皮尔森相关系数法
深度学习基础之特征工程概述——慕课学习笔记
计算完毕后,可以将与目标值相关性较小的特征过滤掉。

Pearson 相关系数对线性关系比较敏感。如果关系是非线性的,即便两个变量具有一一对应的关系,Pearson 相关性也可能会接近0。

特征选择方法3–基于森林的特征选择法
其原理是某些分类器,自身提供了特征的重要性分值。因此可以直接调用这些分类器,得到特征重要性分值,并排序。
深度学习基础之特征工程概述——慕课学习笔记
特征选择方法4–递归特征消除法
以sklearn中的函数为例:
深度学习基础之特征工程概述——慕课学习笔记
特征降维–线性判别分析法(LDA)
降维本质上是从一个维度空间映射到另一个维度空间。

线性判别分析(Linear Discriminant Analysis,简称LDA)是一种监督学习的降维技术,即数据集的每个样本有类别输出。

LDA的基本思想:“ 投影后类内方差最小,类间方差最大”。即将数据在低维度上进行投影,投影后希望同类数据的投影点尽可能接近,而不同类数据的类别中心之间的距离尽可能的大。

如下图中,右图就比左图效果要好:
深度学习基础之特征工程概述——慕课学习笔记
特征降维-主成分分析法(PCA)
主成分分析(principal component analysis)是一种无监督的降维方法。即没有用到样本的类别标签。

PCA的基本思想是采用数学变换,把给定的一组相关特征维度通过线性变换转成另一组不相关的维度(即principal components),这些新的维度按照方差依次递减的顺序排列:形成第一主成分、第二主成分等等。