Note sth about LDA(Linear Discriminant Analysis)
这篇来说说LDA的复习,LDA在第二次作业的博客中也提及了,但是那是作业思考,所以决定再开一篇只说LDA的。

动机:
  LDA的中文名字——线性判别分析。其主要功能还是降维(N $\rightarrow$ k)。
LDA算法:(用一个二维特征的二分类来说明,因为图好画←_←)
至于多分类,可以参考博客LDA线性分析推广到多分类
  明确LDA是如何进行降维(线性判别的),LDA考虑的和PCA不同之处在于——PCA的样本空间是一个样本,你来做主成分提取;而LDA的样本是一堆样本,你来找轴映射,从而将这些样本分离。于是乎,LDA考虑的目标是——最大化类间距离与最小化类内距离。(即不同类样本尽量离得远,同类尽量离得近)
算法公式概述:

$$ \mu_i = \frac{1}{N_i} \sum_{x \in X_i} x $$
$$ \overline{z_i} = w^T \mu_i = w^T \frac{1}{N_i} \sum_{x \in X_i} x = \frac {1}{N_i} \sum_{x \in X_i} w^Tx $$
Between-calss Scatter:$ J_b = || \overline{z_1} - \overline{z_2} || $
Within-class Scatter:$ J_w = s_1^2 + s_2^2 $,$ s_i = \sum_{z \in Z_i} (z-\overline{z_i})^2 $
  其实,上式中的$\overline{z_i}$就是$i$这类的中心。即下图中的$\overline{x_i}$,显然右图效果更好,因为左图其实两个类的部分样本映射完已经重叠了。


问题:
  显然我们希望最大化$J_b$,而最小化$J_w$,而且是同时的,那么我们应该如何构造我们的优化目标函数?下面提供几个思路:
1、$ arg max J(w) = J_b - J_w $
2、$ arg max J(w) = \frac{J_b}{J_w} = \frac{w^T S_b w}{w^T S_w w} $
  是不是都可以?当$J_b$变大而$J_w$减小的时候,让上述两个值最大,就是我们所需的答案。但是其实$J_b - J_w$是不可以的。因为还要考虑一个问题,虽然$J_b$和$J_w$都是正的,但是谁大谁小我们并不清楚,所以1式是会爆出负数的,而一旦爆出负数,结果就可能会出错,举个例子:$3-100>4-110$,但是$\frac{3}{100}<frac{4}{110}$,显然就出错了。而2因为都是正数,所以可以很好地进行优化。
  紧接着,我们观察一下$ arg max J(w) = \frac{w^T S_b w}{w^T S_w w} $,会发现其实$w$的解是不唯一的,因为如果$w$是解,显然$a*w$也是解,为了方便得解出解,我们添加一个约束,并将问题转化为:$arg max J_b(w) = w^T S_b w$,其中$ w^T S_w w = 1 $,这个和$ arg max J(w) = \frac{w^T S_b w}{w^T S_w w} $是等价的,但是我们可以发现——$arg max J_b(w) = w^T S_b w$,其中$ w^T S_w w = 1 $,又是一个带约束的优化问题,请出Lagrange-multipliers(拉格朗日乘子法)
  我们可以得到:
$$ L(w,\lambda) = w^T S_b w - \lambda(w^T S_w w - 1) $$
$$ \frac{\partial L}{\partial w} = 2S_b w - wS_w w $$
  此时,若$S_w$可逆,则$S_{w}^{-1} S_b w = \lambda w$,又回到了解特征方程的问题,如果$S_w$不可逆呢?我们可以求$S_w$的伪逆,这样问题也是可以解决的。
关于伪逆,即若$X$与$A^T$同型,且满足:$AXA=A$,$XAX=X$,则$X$为$A$的伪逆矩阵。

ML_Review_LDA(Ch5)的更多相关文章

  1. Mongodb Manual阅读笔记:CH5 安全性

    5 安全性 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mongodb Manual阅读 ...

  2. 《代码整洁之道》ch5~ch9读书笔记 PB16110698(~3.15) 第二周

    <代码整洁之道>ch5~ch9读书笔记 本周我阅读了本书的第5~9章节,进一步了解整洁代码需要注意的几个方面:格式.对象与数据结构.错误处理.边界测试.单元测试和类的规范.以下我将分别记录 ...

  3. 《图解机器学习-杉山将著》读书笔记---CH5

    CH5 稀疏学习 重点提炼 提出稀疏学习的缘故: 虽然带有约束条件的最小二乘学习法结合交叉验证法,在实际应用中是非常有效的回归方法,但是,当参数特别多时,计算参数以及预测值需要大量时间.此时,我们要解 ...

  4. 计算机体系结构——CH5 标量处理机

    计算机体系结构--CH5 标量处理机 右键点击查看图像,查看清晰图像 X-mind 计算机体系结构--CH5 标量处理机 先行控制技术 指令得重叠执行方式 顺序执行方式 一次重叠执行方式 二次重叠技术 ...

  5. SQL Server 2012实施与管理实战指南(笔记)——Ch5启动SQL Server服务和数据库

    5.启动SQL Server服务和数据库 在数据库和服务启动过程中,经常会出现的问题: 1.SQL Server实例无法正常启动 2.系统数据库无法正常启动 3.网络配置失败 4.用户数据库无法启动 ...

  6. ch5 MySQL 备份与恢复

    第 5 章 MySQL 备份与恢复 前言 数据库的备份与恢复一直都是 DBA 工作中最为重要的部分之一,也是基本工作之一.任何正式环境的数据库都必须有完整的备份计划和恢复测试,本章内容将主要介绍 My ...

  7. linux 私房菜 CH5 笔记

    知识点 linux 大小写敏感 接口的切换 [Ctrl] + [Alt] + [F1] ~ [F6] :文字接口登入 tty1 ~ tty6 终端机: [Ctrl] + [Alt] + [F7] :图 ...

  8. C++ Primer 5 CH5 语句

    5.1 简单语句 空语句: ; 5.2 语句作用域 5.3 条件语句 switch 语句:表达式与某个 case 匹配成功,执行 case 之后的语句直到 break 或者 switch 结尾,cas ...

  9. [HBase Manual]CH5 HBase运行模式:单实例和分布式

    HBase运行模式:单实例和分布式 HBase运行模式:单实例和分布式 1.单实例模式 1.1 单实例在HDFS下 2.分布式 2.1 伪分布式 3完全分布式 HBase有2种运行模式,单实例和分布式 ...

随机推荐

  1. Fortify漏洞之Cross-Site Scripting(XSS 跨站脚本攻击)

    书接上文,继续对Fortify漏洞进行总结,本篇主要针对XSS跨站脚步攻击漏洞进行总结,如下: 1.Cross-Site Scripting(XSS 跨站脚本攻击) 1.1.产生原因: 1. 数据通过 ...

  2. node.js 微信开发1-接入

    准备工作1 域名准备 无论是个人开发还是做公司项目域名都是必不可少的 前期我个人用过花生壳做个开发测试,挺好用的,就是现在要收费了,开通花生壳要收费,开通内网穿透要收费(为啥要内网穿透呢,因为微信接入 ...

  3. 【leetcode】280.Wiggle Sort

    原题 Given an unsorted array nums, reorder it in-place such that nums[0] <= nums[1] >= nums[2] & ...

  4. 支付宝APP支付(基于Java实现支付宝APP支付)

    贴一下支付核心代码,以供后续参考: 业务层 import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; ...

  5. 13. 请看TED 的演讲, 谈谈你对压力的看法,以及怎么和别人合作, 帮助别人,把压力转化为动力,在互相帮助的环境中成长。------------答题者:徐潇瑞

    看了ted的演讲,我觉得压力就像一根弹簧,有多大的压力,它就有多大的弹力:现实中只要你学会用一种永远不服输的顽强精神,去对待人生和社会中遇到的一切困难与挫折,宠辱不惊的看云卷云舒,悟潮起潮落.可是存在 ...

  6. G1垃圾收集器堆内存划分与角色分派【纯理论】

    接着上一次[https://www.cnblogs.com/webor2006/p/11123522.html]G1学习继续开启理论之旅.. G1的设计规划是要替换掉CMS[理想化的] G1在某些方面 ...

  7. linux网络编程之socket编程(十五)

    今天继续学习socket编程,这次主要是学习UNIX域协议相关的知识,下面开始: [有个大概的认识,它是来干嘛的] ①.UNIX域套接字与TCP套接字相比较,在同一台主机的传输速度前者是后者的两倍. ...

  8. 使用poi进行数据的导出Demo

    这是本人在项目中遇到了一个导出数据时,如果该条数据中包含汉字,就会出现excel单元格的大小与期望的样式不一样,也是查找了半天,也没有发现哪里出的问题. 现将一个小Demo奉献在这里,可以在遇到使用p ...

  9. eclipse中JDK环境的搭建

    现在就可以用记事本开发java程序了,但是eclipse是一款java开发不可缺少的IDE,并且安装简单,下面说一下步骤,首先下载eclipse, 官网下载链接:http://www.eclipse. ...

  10. 【原创】改进的大马webshell,过市面上任何防护

    因为之前使用的webshell大马很多都没用了,都被安全防护拦截了,所以通过几个大牛的指点和网上的教程整理而成自己做的增强版的webshell大马,我这个是源码,部分无加密! <?php $pa ...