LDA(線性判別分析) python實現

2022-03-15 07:46:52 字數 2060 閱讀 2058

求解最佳投影方向,使得同類投影點盡可能的進,異類投影點盡可能的遠

同類投影點距離用同類樣本協方差矩陣表示

\[\omega^t \sigma_i \omega \quad

\]異類投影點距離

\[||\omega^t\mu_0 - \omega^t\mu_1||_2^2

\]\(\mu_i \, \)

優化函式

\[j(\omega) = \frac

\]求上述函式極大值,解出\(\omega\)

\[s_w = \sigma_0 + \sigma_1 = \sum_(x - \omega)(x - \omega)^t + \sum_(x - \omega)(x - \omega)^t

\]\[s_b = (\mu_0 - \mu_1)(\mu_0 - \mu_1)^t\]則

\[j(\omega) = \frac

\]利用拉格朗日乘數法,可得

\[\omega = s_w^(\mu_0 - \mu_1)

\]

import numpy as np 

import matplotlib.pyplot as plt

m = 2 #屬性個數

n = 50#二分類。每類樣本n個

#隨機生成兩個屬性的n個第一類樣本

feature11 = np.random.randint(0, 7, size = n)

feature12 = np.random.randint(0, 7, size= n)

temp_x1 = np.row_stack((feature11, feature12))

x1 = np.mat(temp_x1)

#隨機生成兩個屬性的n個第二類樣本

feature21 = np.random.randint(5,11, size= n)

feature22 = np.random.randint(7, 14, size= n)

temp_x2 = np.row_stack((feature21, feature22))

x2 = np.mat(temp_x2)

#求投影向量omega

mu1 = np.mat(np.zeros((2,1)))

mu2 = np.mat(np.zeros((2,1)))

x_1t = np.array(x1)

x_2t = np.array(x2)

for i in range(m):

mu1[i, 0] = sum([j for j in x_1t[i,:]])/n

for i in range(m):

mu2[i, 0] = sum([j for j in x_2t[i,:]])/n

#print(mu1, mu2)

s_w1 = np.mat(np.zeros(m))

s_w2 = np.mat(np.zeros(m))

for i in range(n):

s_w1 = s_w1 + (x1[:, i] - mu1)*(x1[:, i] - mu1).t

for i in range(n):

s_w2 = s_w2 + (x2[:, i] - mu2)*(x2[:, i] - mu2).t

s_w = s_w1 + s_w2

omega = np.linalg.pinv(s_w)*(mu1 - mu2)

#print(omega)

#畫出散點圖、投影面

fig = plt.figure(1)

plt.scatter(feature11, feature12, marker='+')

plt.scatter(feature21, feature22, marker='*')

xx_1 = np.linspace(0,10,num=50)

yy_1 = omega[1,0]/omega[0,0]*xx_1

plt.plot(xx_1,yy_1,color='r')

plt.show()

《機器學習》    周志華老師

LDA 線性判別分析

1.lda是什麼 線性判別式分析 linear discriminant analysis 簡稱為lda。也稱為fisher線性判別 fisher linear discriminant,fld 是模式識別的經典演算法,在1996年由belhumeur引入模式識別和人工智慧領域。基本思想是將高維的模...

線性判別分析LDA

首先搞清楚什麼叫判別分析?discriminant analysis就是根據研究物件的各種特徵值判別其型別歸屬問題的一種多變數統計分析方法。根據判別標準不同,可以分為距離判別 fisher判別 bayes判別法等。比如在knn中用的就是距離判別,當然這裡的 距離 又有好幾種 歐氏距離 街區距離 甚至...

LDA 線性判別分析

定義 1.lda 線性判別式分析 linear discriminant analysis 也稱為fisher線性判別 fisher linear discriminant,fld 基本思想 將高維的模式樣本投影到最佳鑑別向量空間,以達到抽取分類資訊和壓縮特徵空間維數的效果,投影後保證模式樣本在新的...