LDA分类器
1.1 题目的主要研究内容
(1)LDA的原理简介,LDA实现所需的预备知识,LAD的特点,以及LDA的算法过程和利用Python实现lDA的分类;
(2)对LDA算法进行概括性的总结,熟悉LDA的原理和和特性等,对PPT的了解以及进行PPT的讲解。
1.2 题目研究的工作基础或实验条件
- 硬件: PC机
- 软件: python
1.3 LDA的思想:
线性判别分析((Linear Discriminant Analysis ,简称 LDA)是一种经典的线性学习方法,在二分类问题上因为最早由 [Fisher,1936] 提出,亦称 ”Fisher 判别分析“。并且LDA也是一种监督学习的降维技术,也就是说它的数据集的每个样本都有类别输出。这点与主成分和因子分析不同,因为它们是不考虑样本类别的无监督降维技术。
LDA 的思想非常朴素:给定训练样例集,设法将样例投影到一条直线上,使得同样样例的投影尽可能接近、异样样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。其实可以用一句话概括:就是“投影后类内方差最小,类间方差最大”。
1.4 算法流程
(1)输入数据集:根据y是否等于0进行分类:
(2)求解均类内散度矩阵
(3)求解总的类内离散度矩阵Sw
(4)计算最佳向量w,计算投影直线
(5)创建列表用来接收数据得到投影点
(6)对鸢尾花数据集进行LDA算法,最总得到结果
1.5 主要程序代码
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
def LDA(X, y):
# 根据y等于0或1分类
X1 = np.array([X[i] for i in range(len(X)) if y[i] == 0])
X2 = np.array([X[i] <