使用python進行LDA分析

主成分分析的目標是向量在低維空間中的投影能有很好地近似替代原始向量,但這種投影對分類不一定合適。由於PCA是無監督學習,沒有利用樣本標籤信息,不同類型樣本的特徵向量在這個空間中的投影可能很接近。線性判別分析也是一種子空間投影技術,但是它的目的是用來分類,讓投影后的向量對於分類任務有很好的區分度。
在這裏插入圖片描述

sklearn進行PCA及LDA分析

import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
import matplotlib
%matplotlib inline
# 載入iris數據集
iris = datasets.load_iris()
# 特徵向量爲4維的
X = iris.data
# 標籤值用於將樣本顯示成不同的顏色
y = iris.target
target_names = iris.target_names
target_names
array(['setosa', 'versicolor', 'virginica'], dtype='<U10')
# 創建LDA降維模型,並計算投影矩陣,對X執行降維操作,得到降維後的結果X_r
lda = LinearDiscriminantAnalysis(n_components = 2)
X_r = lda.fit(X, y).transform(X)
colors = ['navy', 'turquoise', 'darkorange']
plt.figure()
# 顯示降維後的樣本
for color, i, target_name in zip(colors, [0, 1, 2], target_names):
    plt.scatter(X_r[y == i, 0], X_r[y == i, 1], alpha=.8, color=color,label=target_name)
plt.legend(loc='best', shadow=False, scatterpoints=1)
plt.title('LDA of IRIS dataset')
plt.show()

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-QLZiW3kB-1591675332529)(output_4_0.png)]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章