从零开始实现线性判别分析(LDA)算法(二类情形)
Posted 风雪夜归子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始实现线性判别分析(LDA)算法(二类情形)相关的知识,希望对你有一定的参考价值。
线性判别分析
声明:版权所有,转载请联系作者并注明出处:
http://blog.csdn.net/u013719780?viewmode=contents
知乎专栏:
https://www.zhihu.com/people/feng-xue-ye-gui-zi/columns
线性判别分析(Linear Discriminant Analysis或者Fisher’s Linear Discriminant)简称LDA,是一种监督学习算法。
LDA的原理是,将数据通过线性变换(投影)的方法,映射到维度更低纬度的空间中,使得投影后的点满足同类型标签的样本在映射后的空间比较近,不同类型标签的样本在映射后的空间比较远。
一、线性判别分析(二类情形)
在讲解算法理论之前,先补充一下协方差矩阵的定义。
1. 协方差矩阵定义
矩阵 Xmxn 协方差的计算公式:
设
x,y
分别是两个列向量,则
x,y
的协方差为
若将 x,y 合并成一个矩阵 Xmxn ,则求矩阵 Xmxn ,则矩阵 Xmxn 的协方差矩阵为
A=∑i=1...m,j=1...naij=cov(Xi,Xj)=E(Xi−Xi¯)(Xj−Xj¯)
2. 算法原理
上图中红色的方形的点为0类的原始点、蓝色的方形点为1类的原始点,经过原点的那条线就是投影的直线,从图上可以清楚的看到,红色的点和蓝色的点被原点明显的分开了。下面具体看看二分类LDA问题的情形:
现在我们觉得原始特征数太多,想将
n
维特征降到只有一维(LDA映射到的低维空间维度小于等于
假设用来区分二分类的直线(投影函数)为:
y=wTx
注意这里得到的
y
值不是0/1值,而是
已知数据集
D=x(1),x(1),…,x(m),
将
D
按照类别标签划分为两类
定义两个子集的中心:
μ1=1n1∑x(i)∈D1x(i),
μ2=1n2∑x(i)∈D2x(i),
则两个子集投影后的中心为
Matlab基于线性判别法LDA实现多分类预测(Excel可直接替换数据)
Matlab基于线性判别法LDA实现多分类预测(Excel可直接替换数据)