【笔记6-2】数据挖掘:数据预处理
清华大学【数据挖掘:数据预处理】
https://www.bilibili.com/video/av38471473
(一)数据预处理概述
算法实际应用的过程中,面对的数据往往是杂乱无章(dirty data)的,比如数据的缺失,噪声数据,数据不匹配,数据冗余,数据集不平衡等。因此,数据预处理的过程包含众多内容,对于后续的分析至关重要。
数据预处理内容:
- 数据清洗
- 数据转换
- 数据描述
- 特征选择
- 特征提取
(二)数据清洗
1. 缺失数据处理
缺失数据往往是设备故障,数据未提供或者NA(not applicable)造成的,通常可以分为完全随机缺失,依条件随机缺失,非随机缺失。
缺失值的处理:
- 丢弃/删除数据
- 填充数据:重新采集,利用领域知识,固定值填充,均值/中位数填充。
2. 离群点处理
离群点是与整体数据差异较大的点,往往会对回归和聚类的效果产生较大的影响。
离群点的检测(LOF:local outlier factor):
首先对
d
i
s
t
a
n
c
e
k
(
O
)
distance_k(O)
distancek(O) 进行定义,它代表的是距离点
O
O
O 最近的
k
k
k 个点中,最远的那个点与
O
O
O 之间的距离,如下图所示:
此时点
A
,
B
A,B
A,B 之间的
k
k
k 近邻距离为两点之间欧式距离与点
B
B
B 的
k
k
k 近邻距离的最大值,表示如下:???
d
i
s
t
a
n
c
e
k
(
A
,
B
)
=
m
a
x
{
d
i
s
t
a
n
c
e
k
(
B
)
,
d
(
A
,
B
)
}
distance_k(A,B)=max\{distance_k(B),d(A,B)\}
distancek(A,B)=max{distancek(B),d(A,B)}然后点
A
A
A 的lrd可以表示为:
l
r
d
(
A
)
=
1
/
(
∑
B
∈
N
k
(
A
)
d
i
s
t
a
n
c
e
k
(
A
,
B
)
∣
N
k
(
A
)
∣
)
lrd(A)=1/(\frac{\sum_{B\in N_k(A)}distance_k(A,B)}{|N_k(A)|})
lrd(A)=1/(∣Nk(A)∣∑B∈Nk(A)distancek(A,B))其中,
∣
N
k
(
A
)
∣
|N_k(A)|
∣Nk(A)∣ 代表
A
A
A 的
k
k
k 近邻集合中点的个数。由上式可知,当一个点与近邻距离越小时,对应的lrd的值越大。但是并不能直接说lrd值越大,就越不可能是离群点,而是需要考虑各个点的相对离群程度,于是引入了LOF值。
L
O
F
k
(
A
)
=
∑
B
∈
N
k
(
A
)
l
r
d
(
B
)
l
r
d
(
A
)
∣
N
k
(
A
)
∣
=
∑
B
∈
N
k
(
A
)
l
r
d
(
B
)
∣
N
k
(
A
)
∣
/
l
r
d
(
A
)
LOF_k(A)=\frac{\sum_{B\in N_k(A)}\frac{lrd(B)}{lrd(A)}}{|N_k(A)|}=\frac{\sum_{B\in N_k(A)}lrd(B)}{|N_k(A)|}/lrd(A)
LOFk(A)=∣Nk(A)∣∑B∈Nk(A)lrd(A)lrd(B)=∣Nk(A)∣∑B∈Nk(A)lrd(B)/lrd(A)由上述
L
O
F
LOF
LOF 值的计算方法可知,当一个点的 lrd 值相对于其他点而言越小时,对应的
L
O
F
LOF
LOF 值越大,该点则越有可能是离群点。
比如上图中,圆圈旁边的数值即为
L
O
F
LOF
LOF 值,
L
O
F
LOF
LOF 值越大,该点越可能是离群点。
3. 重复数据检测
由于数据在实际使用过程中,来源不一,可能会产生数据重复,数据冗余的问题,因此需要对重复数据进行去重处理。
但是,在数据量大的情况下,如果对每条数据与其他数据进行逐一进行比较效率会非常低,因此经常采用滑动窗口的方法。滑动窗口即设定一个窗口的大小,每次只对窗口中的数据进行比较,比较之后将窗口在数据集上滑动一个单位以更新窗口中的数据内容。
滑动窗口存在一个问题,当相同数据距离较远,无法涵盖在同一个窗口中时,就无法对这些相同数据进行比较,因此数据的排序要尽量遵循相同或相似数据排列更近的原则。一般会对数据构造一个键值,然后对键值排序,使得相似数据具有相似键值进而被排列到一起。
(三)数据转换
在对数据进行过数据清洗之后,需要进行的数据处理操作依旧有很多,比如对数据类型进行转换,对数据进行归一化,采样等等,这个过程成为数据的转换过程。
1. 类型转换
变量类型:
连续型变量(如温度),离散型变量(如人数),序列型变量(ordinal,如等级),名词型变量(nominal,如职位),字符型变量
2. 采样
目的:数据量过大,需要减少计算量(而统计学中的采样是因为难以获取全量数据)
方法:
- 过采样:解决样本不平衡的问题(如SMOTE采样)
- 边界采样:采集边界样本实现模型的高效训练
附:样本不平衡可能造成的问题
样本不平衡时,若模型以准确率为衡量标准,可能会造成分类器仅对结果进行大样本类别的预测,而无法分辨出小样本部分的特征。相应的解决方法有 G − m e a n , F − s c o r e G-mean, F-score G−mean,F−score 来作为模型表现的衡量标准。 G − m e a n = ( A c c + ∗ A c c − ) 1 / 2 G-mean=(Acc^+*Acc^-)^{1/2} G−mean=(Acc+∗Acc−)1/2 w h e r e A c c + = T P T P + F N , A c c − = T N T N + F P where \ Acc^+=\frac{TP}{TP+FN},Acc^-=\frac{TN}{TN+FP} where Acc+=TP+FNTP,Acc−=TN+FPTN F − s c o r e = 2 ∗ P r e c i s i o n ∗ R e c a l l P r e c i s i o n + R e c a l l F-score=\frac{2*Precision*Recall}{Precision+Recall} F−score=Precision+Recall2∗Precision∗Recall w h e r e P r e c i s i o n = T P T P + F P , R e c a l l = T P T P + F N where \ Precision=\frac{TP}{TP+FP}, Recall=\frac{TP}{TP+FN} where Precision=TP+FPTP,Recall=TP+FNTP
3. 归一化
为了避免变量数值量纲差异太大,往往需要对变量进行归一化处理,将变量归一化到相近的区间上来。常见的归一化方法有两种:
- min-max normalization: v ′ = v − m i n m a x − m i n ( n e w _ m a x − n e w _ m i n ) + n e w _ m i n v'=\frac{v-min}{max-min}(new\_max-new\_min)+new\_min v′=max−minv−min(new_max−new_min)+new_min
- z-score normalization: v ′ = v − μ σ v'=\frac{v-\mu}{\sigma} v′=σv−μ
(四)数据描述
常见的数据描述统计量:
- 均值(mean)
- 中位数(median)
- 众数(mode)
- 方差(variance)
- 相关系数(correlation coefficient)
r
A
,
B
=
∑
(
A
−
A
ˉ
)
(
B
−
B
ˉ
)
(
n
−
1
)
σ
A
σ
B
r_{A,B}=\frac{\sum(A-\bar A)(B-\bar B)}{(n-1)\sigma_A \sigma_B}
rA,B=(n−1)σAσB∑(A−Aˉ)(B−Bˉ)
注意,相关系数为0时,不代表变量之间没有相关性,只能说明两者线性不相关 - 卡方检验(chi-square test) χ = ∑ ( O b s e r v e d − E x p e c t e d ) 2 E x p e c t e d \chi=\sum \frac{(Observed-Expected)^2}{Expected} χ=∑Expected(Observed−Expected)2
(五)特征选择
特征质量判断标准:如果样本在某一特征的区分下呈现出差异较大的分布,则该特征可以被认为是可以区分样本集的较好特征。
比如,抽烟这一特征可以将样本中男女的分布进行很好的区分,因此可以被认定为一个好特征。
将特征选择的过程进行量化,可以通过信息熵来完成。
1. 信息熵
信息熵的定义如下: H ( X ) = − ∑ i = 1 n p ( x i ) l o g b p ( x i ) H(X)=-\sum_{i=1}^np(x_i)log_bp(x_i) H(X)=−i=1∑np(xi)logbp(xi)例如,对于不做特征区分的原始样本集中,男女均匀分布,各占0.5,则对应的原始信息熵可以表示为: H ( S ) = − 0.5 l o g 2 0.5 − 0.5 l o g 2 0.5 = 1.0 H(S)=-0.5log_20.5-0.5log_20.5=1.0 H(S)=−0.5log20.5−0.5log20.5=1.0信息熵可以理解为事件的不确定性程度。若我们以是否抽烟作为分类依据,则对应的信息熵可以表示为: X : { a = " N o n − s m o k e r " ; b = " s m o k e r " } X:\{a="Non-smoker";b="smoker"\} X:{a="Non−smoker";b="smoker"} H ( S ∣ X = a ) = − 0.8 l o g 2 0.8 − 0.2 l o g 2 0.2 = 0.7219 H(S|X=a)=-0.8log_20.8-0.2log_20.2=0.7219 H(S∣X=a)=−0.8log20.8−0.2log20.2=0.7219 H ( S ∣ X = b ) = − 0.05 l o g 2 0.05 − 0.95 l o g 2 0.95 = 0.2864 H(S|X=b)=-0.05log_20.05-0.95log_20.95=0.2864 H(S∣X=b)=−0.05log20.05−0.95log20.95=0.2864假设不抽烟的人群占比 0.6,抽烟人群占比 0.4,则包含特征 X 的总体信息熵为: H ( S ∣ X ) = 0.6 H ( S ∣ X = a ) + 0.4 H ( S ∣ X = b ) = 0.5477 H(S|X)=0.6H(S|X=a)+0.4H(S|X=b)=0.5477 H(S∣X)=0.6H(S∣X=a)+0.4H(S∣X=b)=0.5477最终,由特征 X 带来的信息量(不确定性的减少程度)即 information gain(信息增益)可以表示为: G a i n ( S , X ) = H ( S ) − H ( S ∣ X ) = 1.0 − 0.5477 = 0.4523 Gain(S,X)=H(S)-H(S|X)=1.0-0.5477=0.4523 Gain(S,X)=H(S)−H(S∣X)=1.0−0.5477=0.4523
2. 特征子集搜索
当我们需要从多个特征中选取某几个重要的特征时,如果采用排列组合方法比较所有可能的特征组合,有 C n m C_n^m Cnm 种可能,需要进行大量的计算,对于计算资源而言耗费巨大。
- 分支定界(branch and bound):
分支界定方法中认为特征集合间遵循特征组合效果(J)的单调性原则,因此在剪枝过程中,可以通过比较父节点与子节点的特征组合的效果来提前进行剪枝,以此减少后续的比较计算。
比如上图中,如果左下角(2,3)对应的组合效果大于右上角(1,3,4,5)的组合效果,那么节点(1,3,4,5)之后的分支都不需要再进行比较。从而有效地节约了时间。
- TOP K 特征组合 J ( X k ) = { J ( x 1 ) , J ( x 2 ) , . . . , J ( x k ) } , J ( x 1 ) > J ( x 2 ) > . . . > J ( x k ) J(X_k)=\{J(x_1),J(x_2),...,J(x_k)\},J(x_1)>J(x_2)>...>J(x_k) J(Xk)={J(x1),J(x2),...,J(xk)},J(x1)>J(x2)>...>J(xk)将各个特征的效果进行排序,然后取效果最好的前k个进行组合(实际上这样的组合并不一定是最优的,因为特征之间可能存在重合)
- 逐渐扩大特征集 J ( X k + x 1 ) > J ( X k + x 2 ) > . . . > J ( X k + x D − k ) , x i ∉ X k J(X_k+x_1)>J(X_k+x_2)>...>J(X_k+x_{D-k}),x_i \notin X_k J(Xk+x1)>J(Xk+x2)>...>J(Xk+xD−k),xi∈/Xk
- 逐渐缩小特征集 J ( X k − x 1 ) > J ( X k − x 2 ) > . . . > J ( X k − x k ) , x i ∈ X k J(X_k-x_1)>J(X_k-x_2)>...>J(X_k-x_{k}),x_i \in X_k J(Xk−x1)>J(Xk−x2)>...>J(Xk−xk),xi∈Xk
- 其他优化算法:模拟退火,禁忌搜索,遗传算法等。
(六)特征提取
1. 主成分分析(PCA)
在进行特征提取时,将特征维度上的方差视为该特征所能反映的信息量,方差越大,则认为该特征能反映的信息越多,更能对样本进行区分。
以一个服从高斯分布的数据集为例,由上图可知,该数据集存在一条主轴(major axis)和一条次轴(minor axis)如前文所述,需要选取能反映更多信息的具有大方差的特征,因此应该选取主轴所对应的特征,即
X
1
X_1
X1。
而当我们的数据并不呈现出完美的高斯分布时,就需要寻找合适的角度对坐标中心进行平移和旋转,而这个平移和旋转的过程实际上就是移除数据之间的相关性(correlation)的过程。
S
(
X
)
=
1
n
−
1
X
X
T
→
c
o
r
r
e
l
a
t
i
o
n
r
e
m
o
v
e
S
(
Y
)
=
1
n
−
1
Y
Y
T
S(X)=\frac{1}{n-1}XX^T\xrightarrow[correlation]{remove}S(Y)=\frac{1}{n-1}YY^T
S(X)=n−11XXTremovecorrelationS(Y)=n−11YYT也就是说,我们的目标是找到一个
S
(
Y
)
S(Y)
S(Y) 对角线上元素非零,而非对角线上元素全为零。
Y
=
P
X
→
S
(
Y
)
=
1
n
−
1
Y
Y
T
→
Y
Y
T
=
(
P
X
)
(
P
X
)
T
=
P
X
X
T
P
T
\begin{aligned}Y=PX& \rightarrow S(Y)=\frac{1}{n-1}YY^T\\&\rightarrow YY^T=(PX)(PX)^T=PXX^TP^T\end{aligned}
Y=PX→S(Y)=n−11YYT→YYT=(PX)(PX)T=PXXTPT 由于
X
X
T
XX^T
XXT 可以通过特征分解成
X
X
T
=
Q
D
Q
T
XX^T=QDQ^T
XXT=QDQT,其中
D
D
D 为对角阵,因此上式可以进一步表示成
(
n
−
1
)
S
(
Y
)
=
P
X
X
T
P
T
=
P
Q
D
Q
T
P
T
=
(
P
Q
)
D
(
P
Q
)
T
\begin{aligned} (n-1)S(Y)&=PXX^TP^T\\&=PQDQ^TP^T\\&=(PQ)D(PQ)^T\end{aligned}
(n−1)S(Y)=PXXTPT=PQDQTPT=(PQ)D(PQ)T要使得最终结果同样为对角阵,则意味着
P
Q
PQ
PQ 为单位矩阵,因此
P
=
Q
−
1
=
Q
T
P=Q^{-1}=Q^T
P=Q−1=QT
也就是说在实际求解过程中,对
X
X
X 进行特征分解得到对应的
Q
Q
Q 矩阵之后,再求其转置/逆矩阵即可得到目标矩阵
P
P
P
从另外一个角度看,PCA的目标还可以理解为寻找一条新的轴,使得所有数据到该轴的投影距离之和最小,具体过程表示如下:
J
(
e
)
=
∑
t
=
1
n
∣
∣
x
k
′
−
x
k
∣
∣
2
=
∑
t
=
1
n
∣
∣
α
k
e
−
x
k
∣
∣
2
=
∑
t
=
1
n
α
k
2
∣
∣
e
∣
∣
2
−
2
∑
t
=
1
n
α
k
e
t
x
k
+
∑
t
=
1
n
∣
∣
x
k
∣
∣
2
=
−
∑
t
=
1
n
α
k
2
+
∑
t
=
1
n
∣
∣
x
k
∣
∣
2
=
−
∑
t
=
1
n
e
t
x
k
x
k
t
e
+
∑
t
=
1
n
∣
∣
x
k
∣
∣
2
\begin{aligned} J(e)&=\sum_{t=1}^n||x_k'-x_k||^2=\sum_{t=1}^n||\alpha_ke-x_k||^2\\&=\sum_{t=1}^n\alpha_k^2||e||^2-2\sum_{t=1}^n\alpha_ke^tx_k+\sum_{t=1}^n||x_k||^2\\&=-\sum_{t=1}^n\alpha_k^2+\sum_{t=1}^n||x_k||^2\\&=-\sum_{t=1}^ne^tx_kx_k^te+\sum_{t=1}^n||x_k||^2\end{aligned}
J(e)=t=1∑n∣∣xk′−xk∣∣2=t=1∑n∣∣αke−xk∣∣2=t=1∑nαk2∣∣e∣∣2−2t=1∑nαketxk+t=1∑n∣∣xk∣∣2=−t=1∑nαk2+t=1∑n∣∣xk∣∣2=−t=1∑netxkxkte+t=1∑n∣∣xk∣∣2令
S
=
∑
t
=
1
n
x
k
x
k
t
S=\sum_{t=1}^nx_kx_k^t
S=∑t=1nxkxkt,则最小化目标函数可以转换成
m
a
x
e
e
t
S
e
,
s
.
t
.
∣
∣
e
∣
∣
=
1
max_e \ e^tSe,s.t. \ ||e||=1
maxe etSe,s.t. ∣∣e∣∣=1,后续可以再采用拉格朗日乘子算法进行求解。
u
=
e
t
S
e
−
λ
(
e
t
e
−
1
)
∂
u
∂
e
=
2
S
e
−
2
λ
e
=
0
→
S
e
=
λ
e
u=e^tSe-\lambda(e^te-1)\\ \frac{\partial u}{\partial e}=2Se-2\lambda e=0 \\ \rightarrow Se=\lambda e
u=etSe−λ(ete−1)∂e∂u=2Se−2λe=0→Se=λe观察上式可知,
λ
\lambda
λ 为
S
S
S 的特征值,对应的
e
e
e 为特征向量,这就意味着 PCA 就是将原始数据投影到
S
S
S 的最大的特征值所对应的特征向量的方向上。
2. 线性判别分析(LDA)
PCA 属于无监督学习,无法处理带有标签的分类问题,此时需要考虑LDA。与PCA一样,LDA也是对数据进行降维,但是LDA降维的目的是为了保留样本之间的区分信息。
目标:不同类别之间的距离尽可能远,同类别之间的距离尽可能近。
投影/降维之后的效果衡量标准:Fisher 准则 J = ∣ μ 1 − μ 2 ∣ 2 S 1 2 + S 2 2 J=\frac{|\mu_1 - \mu_2|^2}{S_1^2+S_2^2} J=S12+S22∣μ1−μ2∣2分子代表两个投影类别中心的距离,分母则代表投影后类别内的方差/散度,目标是让类内方差小,类间距离大,因此最终目的是让J整体更大。
同样的,这个过程中需要求解的是一个投影方向,求解过程如下:
已知
μ
i
=
1
N
i
∑
x
∈
ω
i
x
\mu_i=\frac{1}{N_i}\sum_{x\in \omega_i}x
μi=Ni1∑x∈ωix,对应的变换之后的均值则可以表示为:
μ
~
i
=
1
N
i
∑
y
∈
ω
i
y
=
1
N
i
∑
x
∈
ω
i
w
T
x
=
w
T
μ
i
\tilde\mu_i=\frac{1}{N_i}\sum_{y\in \omega_i}y=\frac{1}{N_i}\sum_{x\in \omega_i}w^Tx=w^T\mu_i
μ~i=Ni1y∈ωi∑y=Ni1x∈ωi∑wTx=wTμi则前述分子的计算可以表示如下:
(
μ
~
1
−
μ
~
2
)
2
=
(
w
T
μ
1
−
w
T
μ
2
)
2
=
w
T
(
μ
1
−
μ
2
)
(
μ
1
−
μ
2
)
T
w
(\tilde\mu_1-\tilde\mu_2)^2=(w^T\mu_1-w^T\mu_2)^2=w^T(\mu_1-\mu_2)(\mu_1-\mu_2)^Tw
(μ~1−μ~2)2=(wTμ1−wTμ2)2=wT(μ1−μ2)(μ1−μ2)Tw如果用
S
B
=
(
μ
1
−
μ
2
)
(
μ
1
−
μ
2
)
T
S_B=(\mu_1-\mu_2)(\mu_1-\mu_2)^T
SB=(μ1−μ2)(μ1−μ2)T 来表示类间散度,则上式可以改写成:
(
μ
~
1
−
μ
~
2
)
2
=
w
T
S
B
w
(\tilde\mu_1-\tilde\mu_2)^2=w^TS_Bw
(μ~1−μ~2)2=wTSBw又已知
S
i
=
∑
x
∈
w
i
(
x
−
μ
i
)
(
x
−
μ
i
)
T
S_i=\sum_{x\in w_i}(x-\mu_i)(x-\mu_i)^T
Si=∑x∈wi(x−μi)(x−μi)T,则有:
s
~
i
2
=
∑
y
∈
ω
i
(
y
−
μ
~
i
)
2
=
∑
x
∈
ω
i
(
w
T
x
−
w
T
μ
i
)
2
=
∑
x
∈
ω
w
T
(
x
−
μ
i
)
(
x
−
μ
i
)
T
w
=
w
T
S
i
w
\begin{aligned}\tilde s_i^2&=\sum_{y\in \omega_i}(y-\tilde\mu_i)^2=\sum_{x\in \omega_i}(w^Tx-w^T\mu_i)^2\\&=\sum_{x\in \omega}w^T(x-\mu_i)(x-\mu_i)^Tw=w^TS_iw\end{aligned}
s~i2=y∈ωi∑(y−μ~i)2=x∈ωi∑(wTx−wTμi)2=x∈ω∑wT(x−μi)(x−μi)Tw=wTSiw令
S
1
+
S
2
=
S
W
S_1+S_2=S_W
S1+S2=SW,则分母可以改写成
s
~
1
2
+
s
~
2
2
=
w
T
S
W
w
\tilde s_1^2+\tilde s_2^2=w^TS_Ww
s~12+s~22=wTSWw因此最终的目标函数为:
J
(
w
)
=
∣
μ
~
1
−
μ
~
2
∣
2
s
~
1
2
+
s
~
2
2
→
J
(
w
)
=
w
T
S
B
w
w
T
S
W
w
J(w)=\frac{|\tilde \mu_1-\tilde \mu_2|^2}{\tilde s_1^2+\tilde s_2^2}\rightarrow J(w)=\frac{w^TS_Bw}{w^TS_Ww}
J(w)=s~12+s~22∣μ~1−μ~2∣2→J(w)=wTSWwwTSBw上式得到的最终目标函数又成为广义瑞利熵,求解这一目标函数最直接的方式就是进行求导:
d
d
w
[
J
(
w
)
]
=
d
d
w
[
w
T
S
B
w
w
T
S
W
w
]
=
0
⇒
[
w
T
S
W
w
]
d
[
w
T
S
B
w
]
d
w
−
[
w
T
S
B
w
]
d
[
w
T
S
W
w
]
d
w
=
0
⇒
[
w
T
S
W
w
]
2
S
B
w
−
[
w
T
S
B
w
]
2
S
W
w
=
0
⇒
[
w
T
S
W
w
w
T
S
W
w
]
S
B
w
−
[
w
T
S
B
w
w
T
S
W
w
]
=
0
⇒
S
B
w
−
J
S
W
w
=
0
⇒
S
W
−
1
S
B
w
−
J
w
=
0
⇒
S
W
−
1
S
B
w
=
J
w
\begin{aligned} &\frac{d}{dw}[J(w)]=\frac{d}{dw}[\frac{w^TS_Bw}{w^TS_Ww}]=0\\ &\Rightarrow [w^TS_Ww]\frac{d[w^TS_Bw]}{dw}-[w^TS_Bw]\frac{d[w^TS_Ww]}{dw}=0\\ &\Rightarrow[w^TS_Ww]2S_Bw-[w^TS_Bw]2S_Ww=0\\&\Rightarrow[\frac{w^TS_Ww}{w^TS_Ww}]S_Bw-[\frac{w^TS_Bw}{w^TS_Ww}]=0\\&\Rightarrow S_Bw-JS_Ww=0\\& \Rightarrow S_W^{-1}S_Bw-Jw=0\\&\Rightarrow S_W^{-1}S_Bw=Jw\end{aligned}
dwd[J(w)]=dwd[wTSWwwTSBw]=0⇒[wTSWw]dwd[wTSBw]−[wTSBw]dwd[wTSWw]=0⇒[wTSWw]2SBw−[wTSBw]2SWw=0⇒[wTSWwwTSWw]SBw−[wTSWwwTSBw]=0⇒SBw−JSWw=0⇒SW−1SBw−Jw=0⇒SW−1SBw=Jw观察上式可知,上述问题又可以视为一个特征值,特征向量求解问题:
S
B
w
=
(
μ
1
−
μ
2
)
(
μ
1
−
μ
2
)
T
w
=
(
μ
1
−
μ
2
)
R
R
=
(
μ
1
−
μ
2
)
T
w
J
w
=
S
W
−
1
(
S
B
w
)
=
S
W
−
1
(
μ
1
−
μ
2
)
R
w
=
R
J
S
W
−
1
(
μ
1
−
μ
2
)
\begin{aligned}S_Bw&=(\mu_1-\mu_2)(\mu_1-\mu_2)^Tw=(\mu_1-\mu_2)R \\ R&=(\mu_1-\mu_2)^Tw \\ Jw&=S_W^{-1}(S_Bw)=S_W^{-1}(\mu_1-\mu_2)R \\ w&=\frac{R}{J}S_W^{-1}(\mu_1-\mu_2)\end{aligned}
SBwRJww=(μ1−μ2)(μ1−μ2)Tw=(μ1−μ2)R=(μ1−μ2)Tw=SW−1(SBw)=SW−1(μ1−μ2)R=JRSW−1(μ1−μ2)上式中的R和J为标量,不影响向量的求解。因此,最终需要求解的投影方向为:
w
∗
=
a
r
g
m
a
x
w
{
w
T
S
B
w
w
T
S
W
w
}
=
S
W
−
1
(
μ
1
−
μ
2
)
w^*=argmax_w\{\frac{w^TS_Bw}{w^TS_Ww}\}=S_W^{-1}(\mu_1-\mu_2)
w∗=argmaxw{wTSWwwTSBw}=SW−1(μ1−μ2)