降维与分类

1.假设我们有m维的样本 x1,x2,...,xN x 1 , x 2 , . . . , x N , N1 N 1 属于 ω1 ω 1 , N2 N 2 属于 ω2 ω 2
2.我们需要寻找一个标量 y y ,将样本x投影到一条线上(C-1空间,C=2)。
这里写图片描述
3.这些条线需要满足投影后类间的差距必须最大。
类间差距太小,这不是需要的直线
这里写图片描述
类间差距足够大,这就是我们要找的直线
这里写图片描述

为了寻找这样的直线,我们必须设定一个测度。

样本x和投影y的均值是:
这里写图片描述
是不是两个类别均值距离越大,效果就越好呢?
这里写图片描述
然而并不是,均值距离并不是一个很好的测度,因为它们有考虑类别的标准差。如下图,如果投影在x轴上,均值距离很大,但是分类效果不好(投影后重叠比较多)。如果投影在y轴上,均值距离虽然小,但是分类效果要比投影在x轴上的好。
这里写图片描述
解决办法是将举止距离通过类内方差标准化,也称为散布矩阵(scatter)。每一个份额里我们都定义一个散布矩阵。
S2iˇ S i 2 ˇ 描述了 ωi ω i 类投影后的方差。
S21ˇ S 1 2 ˇ + S22ˇ S 2 2 ˇ 描述了两个类别的标准差,这个也被称为类内离散度(within-class scatter)
这里写图片描述
所以LDA算法要寻找的直线就是投影后均值距离足够大,类内方差足够小。就是最大化下面的函数:
这里写图片描述
通过这个公式我们就可以找到最优的直线:
这里写图片描述

Si S i 是类别 wi w i 的协方差矩阵, Sw S w 是类内离散矩阵
这里写图片描述

下图是投影后对应的各类别协方差矩阵,以及类内离散矩阵
这里写图片描述
同样均值距离可以表示为下图:
矩阵 SB S B 被称为类间散布(between_class scatter), SˇB S ˇ B 是投影后的类间散布。
这里写图片描述
所以最后的公式可以简化为:
J(w) J ( w ) 通过不同类别的均值(类间散布)被不同类别方差(类内散布)标准化之后的值来测量的。
这里写图片描述

求最佳的直线,就是让 j(w) j ( w ) 的导数为0:
这里写图片描述

广义本征值( generalized eigen value)
这里写图片描述

参考文献:
https://blog.csdn.net/G090909/article/details/50197331
https://www.cnblogs.com/pinard/p/6244265.html
http://sklearn.apachecn.org/cn/0.19.0/modules/lda_qda.html
https://blog.csdn.net/u010016927/article/details/75094715
https://blog.csdn.net/g090909/article/details/50198615
https://zhuanlan.zhihu.com/p/23965433
https://blog.csdn.net/daunxx/article/details/51881956
https://blog.csdn.net/u014664226/article/details/52199892
https://www.cnblogs.com/pangxiaodong/archive/2011/10/21/2218484.html
http://sebastianraschka.com/Articles/2014_python_lda.html
https://blog.csdn.net/leayc/article/details/76299694
http://www.php.cn/python-tutorials-391013.html
https://blog.csdn.net/brucewong0516/article/details/78684005
https://blog.csdn.net/jnulzl/article/details/49894041

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值