深度学习基础与实践(三)
一、特征工程
-
我们老师给我们讲过这样一句话:“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。”
-
深度学习也要用到特征,需要对输入的特征进行组合变换等处理。
-
举例:以特征处理在nlp(自然语言处理)中的应用为例
- 自动分词:将用自然语言书写的文章、句段经计算机处理后,以词为单位给以输出,为后续加工处理提供先决条件。
- 词根提取与词形还原:抽取词的词干或词根形式与把词汇还原为一般形式
- 词性标注:为分词结果中的每个单词标注一个正确的词性的程序,也即确定每个词是名词、动词、形容词或者其他词性的过程。
- …
- 自动分词:将用自然语言书写的文章、句段经计算机处理后,以词为单位给以输出,为后续加工处理提供先决条件。
二、向量空间模型
(仍然以nlp为例)
- 为了便于计算文档之间的相似度,需把文档转成统一空间的向量。
- BOW(bag‐of‐words model): 为了计算文档之间的相似度,假设可以忽略文档内的单词顺序和语法、句法等要素,将其仅仅看作是若干个词汇的集合。
- VSM(Vector space model): 即向量空间模型。其是指在BOW词袋模型假设下,将每个文档表示成同一向量空间的向量。
三、特征处理
1.特征值的缩放
-
特征值缩放(Feature Scaler)也可以称为无量纲处理。主要是对每个列,即同一特征维度的数值进行规范化处理。
-
应用背景:
- 不同特征(列)可能不属于同一量纲,即特征的规格不一样。例如,假设特征向量由两个解释变量构成,第一个变量值范围[0,1],第二个变量值范围[0,100]。
- 如果某一特征的方差数量级较大,可能会主导目标函数,导致其他特征的影响被忽略。
-
下面介绍集中常用方法和常见的例子:
(1)标准化法
-
标准化的前提是特征值服从正态分布。
-
标准化需要计算特征的均值和标准差,公式表达为: X s c a l e = ( X ( a x i s = 0 ) − X . m e a n ( a x i s = 0 ) ) X . s t d ( a x i s = 0 ) X_scale = \frac {(X(axis = 0) - X.mean(axis = 0))} {X.std(axis = 0)} Xscale=X.std(axis=0)(X(axis=0)−X.mean(axis=0))
( X . s t d X.std X.std:标准差(Standard Deviation),又常称均方差,用 σ \sigma σ表示,是方差的算术平方根)
(2)区间缩放法
-
区间缩放法利用了边界值信息,将特征的取值区间缩放到某个特定范围。假设max和min为希望的调整后范围,则 X s c a l e = ( X ( a x i s = 0 ) − X . m i n ( a x i s = 0 ) ) ( X . m a x ( a x i s = 0 ) − X . m i n ( a x i s = 0 ) ) ∗ ( m a x − m i n ) + m i n X_scale = \frac {(X(axis = 0) - X.min(axis = 0))} {(X.max(axis = 0) - X.min(axis = 0))} * (max - min) + min Xscale=(X.max(axis=0)−X.min(axis=0))(X(axis=0)−X.min(axis=0))