LDA :有监督的降维算法

LDA和PCA类似,只是在 PCA 中, 没有考虑数据的标签(类别) , 只是把原数据映射到一些方差比较大的方向上,而LDA考虑类别标签了。
LDA 首先是为了分类服务的,使得投影后的样本尽可能按照原始类别分开 。 LDA 的目标一一最大化类间距菌和最小化类内距离 。
如图:如果按照PCA降维,主成分方向为Y轴,而LDA降维,主成分分析为x。显然以x方向为主成分降维后的数据更便于分类,用最简单的线性分类器就能实现。
在这里插入图片描述
假设最后的主成分方向为w,为求得使得距离最大的w,目标函数为:
在这里插入图片描述
python程序:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
%matplotlib inline
from sklearn.datasets.samples_generator import make_classification
X, y = make_classification(n_samples=1000, n_features=3, n_redundant=0, n_classes=3, n_informative=2, n_clusters_per_class=1,class_sep =0.5, random_state =10)
fig = plt.figure()
ax = Axes3D(fig, rect=[0, 0, 1, 1], elev=30, azim=20)
plt.scatter(X[:, 0], X[:, 1], X[:, 2],marker='o',c=y)

from sklearn.decomposition import PCA
pca = PCA(n_components=2)
pca.fit(X)
print pca.explained_variance_ratio_
print pca.explained_variance_
X_new = pca.transform(X)
plt.scatter(X_new[:, 0], X_new[:, 1],marker='o',c=y)
plt.show()

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
lda = LinearDiscriminantAnalysis(n_components=2)
lda.fit(X,y)
X_new = lda.transform(X)
plt.scatter(X_new[:, 0], X_new[:, 1],marker='o',c=y)
plt.show()

程序参考:https://blog.csdn.net/lhz76ttw1u/article/details/60768981
PCA与LDA算法在目标函数上有何区别与联系?
PCA 选择的是投影后数据方差最大的方向 。 由于PCA是无监督的,因此 PCA 假设方差越大,信息量越多,用主成分来表示原始数据可以去除冗余的维度达到降维 。 而 LDA 选择的是投影后类内方差小、类间方差大的方向 。 真用到了类别标签信息,为了找到数据中具有判别性的维度,使得原始数据在这些方向上投影后, 不同类别尽可能区分开 。
举一个简单的例子,在语音识别中,我们想从一段音频中提取出人的语音信号,这时可以使用 PCA 先进行降维,过滤掉一些固定频率(方差较小)的背景噪声 。 但如果我们的需求是从这段音频中区分出声音属于哪个人,那么我们应该使用 LDA 对数据进行降维 , 使每个人的i吾吾信号具有区分性 。LDA其实都相当于一个简单的分类器了。
从应用的角度,我们可以掌握一个基本的原则一一对无监督的任务使用 PCA 进行降维,对有监督的则应用 LDA 。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值