# 概述
特征提取 (feature extraction) 和特征选择 (feature selection) 是多特征处理的两种方式。其中,特征选择是在众多特征中选择出有用的特征,将无用特征直接抛弃。而特征提取则认为所有特征都有其存在的价值,需要通过某些算法找到特征的最佳组合,以反映多个特征背后的内在特征。
# 特征提取
特征提取的主要作用包括:
- 可视化 (visualization)
- 数据压缩 (data compression)
- 消除噪点 (noise removal)
特征提取的基本算法包括:
- 无监督算法
- 主成分分析 (Principal Component Analysis, PCA)
- 非负矩阵分解 (Nonnegative Matrix Factorization, NMF)
- 独立分量分析 (Independent Component Analysis, ICA)
- 有监督算法
- 线性判别分析 (Linear Discriminant Analysis, LDA)
两种算法的特征提取过程实际上是找到了原有特征的线性组合。
# PCA
主成分分析 (Principal Component Analysis, PCA) 是最基本、最常用的无监督特征提取方法。其想法是将高维度样本点有损压缩降低至低维度。在无监督情况下,我们需要最小化信息损失以达到最好的效果。而在有监督的情况下,则需要最大化类间距离 (LDA).
# MF
# LDA
线性判别分析 (Linear Discriminant Analysis, LDA) 是有监督的分类方法。
设输入为d 维样本点{x1,x2,…,xN}. 其可以分为两类C1,C2, 数目分别为n1,n2. 我们希望寻找一个投影向量 (projection vector) θ∈Rd×1, 以将各点xi 映射到一条直线yi=θxi 上,使得映射后类内间距最小,类间间距最大。
于是,构造类内均值μi=ni1∑x∈Cix, 则投影后的类内均值为μ~i=ni1∑x∈Ciy=ni1∑x∈Ciθ⊤x=θ⊤μi.
构造类内散度矩阵 (Within-class scatter) 为
Sw:=i=1,2∑x∈Ci∑(x−μi)(x−μi)⊤∈Rd×d
类间距离可以直接采用两类的均值进行刻画,于是构造类间散度矩阵 (Between-class scatter) 为
Sb=(μ1−μ2)(μ1−μ2)⊤
则优化目标为
{maxJ1(θ)=θ⊤SbθminJ2(θ)=θ⊤Swθ
注意到θ 的长度本身不影响投影向量,仅θ 的长度与之相关。因此不妨设θ⊤Swθ=1, 则优化目标转化为
θmin−θ⊤Sbθ
采用拉格朗日乘子法求极值,令λ 为拉格朗日乘子,则转化为
minJ(θ)=−θ⊤Sbθ+λ(θ⊤Swθ−1)
求偏导得
∂θ∂J=−2Sbθ+2λSwθ=0
即
Sbθ=λSwθ
注意到,此处的拉格朗日乘子法得到的根一定对应最小值,因为我也不知道。
# 特征选择
# 概述
我们首先给出一个特征选择的定义:
对一系列特征 X={X1,X2,…,xD} 以及目标变量 Y, 寻找一个能够实现 Y 上最佳分类的最小集合 S 的过程称为特征选择。
特征选择的主要算法包括包装法 (wrapper methods), 过滤法 (filter methods) 和嵌入法 (embedded methods).
# Warpper Method
# Filter Method
# Embedded Method