PCA和LDA降维的比较

Posted 机器人小z

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PCA和LDA降维的比较相关的知识,希望对你有一定的参考价值。

PCA 主成分分析方法,LDA 线性判别分析方法,可以认为是有监督的数据降维。下面的代码分别实现了两种降维方式:

print(__doc__)

import matplotlib.pyplot as plt

from sklearn import datasets
from sklearn.decomposition import PCA
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

iris = datasets.load_iris()

X = iris.data
y = iris.target
target_names = iris.target_names

pca = PCA(n_components=2)
X_r = pca.fit(X).transform(X)

lda = LinearDiscriminantAnalysis(n_components=2)
X_r2 = lda.fit(X, y).transform(X)

# Percentage of variance explained for each components
print(\'explained variance ratio (first two components): %s\'
      % str(pca.explained_variance_ratio_))

plt.figure()
for c, i, target_name in zip("rgb", [0, 1, 2], target_names):
    plt.scatter(X_r[y == i, 0], X_r[y == i, 1], c=c, label=target_name)
plt.legend()
plt.title(\'PCA of IRIS dataset\')

plt.figure()
for c, i, target_name in zip("rgb", [0, 1, 2], target_names):
    plt.scatter(X_r2[y == i, 0], X_r2[y == i, 1], c=c, label=target_name)
plt.legend()
plt.title(\'LDA of IRIS dataset\')

plt.show()

结果如下

以上是关于PCA和LDA降维的比较的主要内容,如果未能解决你的问题,请参考以下文章

常用降维方法之PCA 和 LDA

面试题:LDA和PCA区别

机器学习面试问答:PCA算法介绍?PCA算法过程?PCA为什么要中心化处理?PCA为什么要做正交变化?PCA与线性判别分析LDA降维的区别?

PCA和LDA的对比

PCA和LDA

人脸识别基于PCA+LDA实现人脸识别matlab 源码