【기계 학습】LDA를 공부해 본다
6752 단어 MachineLearning데이터 과학기계 학습LDA
LDA란?
LDA (Linear Discriminant Analysis)는 기계 학습에서 변수의 차원을 줄이는 데 사용되는 기술입니다. 차원 삭제의 대표적인 기법에 PCA도 있지만, PCA와의 큰 차이는, PCA는 교사 없는 학습인 것에 비해, LDA 교사 있어의 식별 모델입니다.
LDA의 메커니즘
LDA의 목적은 클래스 간 분산을 최대화하면서 클래스 내 분산을 최소화하는 경계를 그리는 것입니다.
1) 클래스 간 분산
S_b = \sum^g_{i=1} N_i(\overline{x}_i - \overline{x})(\overline{x}_i - \overline{x})^T
2) 클래스 내 분산
S_w = \sum^g_{i=1} (N_i-1)S_i = \sum^g_{i=1} \sum^{N_i}_{i=1}(\overline{x}_{i,j} - \overline{x}_i)(x_{i,j} - \overline{x}_i)^T
3) 저차원 공간에 매핑
P_{lda} = arg max \dfrac {\left| P^TS_bP\right| }{\left| P^TS_wP\right|}
4) 판별식
LDA의 판별식은 아래와 같이 각 클래스에 대한 가우스 분포가 됩니다.
P(X|y = k) = \dfrac {1}{(2\pi)^{1/2}|\Sigma_k|^{1/2} exp(-\dfrac{1}{2}(X-\mu_k)^t \sum^{-1}_{k}(X-\mu_k))}
scikit learn 에 LDA
LDA 매개변수
매개변수
개요
값
기본
솔버
학습 최적화 계산 유형
"svd", "lsqr", "eigen"
"svd"(큰 데이터 세트에 적합)
shrinkage
"lsqr", "eigen"에서 사용되는 학습 데이터의 부족 보정
None, "auto", floa(0~1)
None
n_components
줄이는 차원 수
int
-
store_covariance
공분산 행렬을 계산할지 여부
bool
-
tol
SDV 임계값
float
-
from sklearn import datasets
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from matplotlib import pyplot as plt
iris = datasets.load_iris()
X = iris.data
y = iris.target
target_names = iris.target_names
lda = LinearDiscriminantAnalysis(n_components=2)
X_r = lda.fit(X, y).transform(X)
시각화
colors = ['blue', 'red', 'green']
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,
label=target_name)
plt.xlabel('LDA1')
plt.ylabel('LDA2')
plt.legend(loc='best', shadow=False, scatterpoints=1)
plt.title('LDA of IRIS dataset')
plt.show()
LDA의 장점과 단점
장점
LDA의 목적은 클래스 간 분산을 최대화하면서 클래스 내 분산을 최소화하는 경계를 그리는 것입니다.
1) 클래스 간 분산
S_b = \sum^g_{i=1} N_i(\overline{x}_i - \overline{x})(\overline{x}_i - \overline{x})^T
2) 클래스 내 분산
S_w = \sum^g_{i=1} (N_i-1)S_i = \sum^g_{i=1} \sum^{N_i}_{i=1}(\overline{x}_{i,j} - \overline{x}_i)(x_{i,j} - \overline{x}_i)^T
3) 저차원 공간에 매핑
P_{lda} = arg max \dfrac {\left| P^TS_bP\right| }{\left| P^TS_wP\right|}
4) 판별식
LDA의 판별식은 아래와 같이 각 클래스에 대한 가우스 분포가 됩니다.
P(X|y = k) = \dfrac {1}{(2\pi)^{1/2}|\Sigma_k|^{1/2} exp(-\dfrac{1}{2}(X-\mu_k)^t \sum^{-1}_{k}(X-\mu_k))}
scikit learn 에 LDA
LDA 매개변수
매개변수
개요
값
기본
솔버
학습 최적화 계산 유형
"svd", "lsqr", "eigen"
"svd"(큰 데이터 세트에 적합)
shrinkage
"lsqr", "eigen"에서 사용되는 학습 데이터의 부족 보정
None, "auto", floa(0~1)
None
n_components
줄이는 차원 수
int
-
store_covariance
공분산 행렬을 계산할지 여부
bool
-
tol
SDV 임계값
float
-
from sklearn import datasets
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from matplotlib import pyplot as plt
iris = datasets.load_iris()
X = iris.data
y = iris.target
target_names = iris.target_names
lda = LinearDiscriminantAnalysis(n_components=2)
X_r = lda.fit(X, y).transform(X)
시각화
colors = ['blue', 'red', 'green']
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,
label=target_name)
plt.xlabel('LDA1')
plt.ylabel('LDA2')
plt.legend(loc='best', shadow=False, scatterpoints=1)
plt.title('LDA of IRIS dataset')
plt.show()
LDA의 장점과 단점
장점
from sklearn import datasets
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from matplotlib import pyplot as plt
iris = datasets.load_iris()
X = iris.data
y = iris.target
target_names = iris.target_names
lda = LinearDiscriminantAnalysis(n_components=2)
X_r = lda.fit(X, y).transform(X)
colors = ['blue', 'red', 'green']
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,
label=target_name)
plt.xlabel('LDA1')
plt.ylabel('LDA2')
plt.legend(loc='best', shadow=False, scatterpoints=1)
plt.title('LDA of IRIS dataset')
plt.show()
장점
단점
LDA의 응용
QDA(Quadratic Discriminant Analysis):
클래스별 분산 공분산 계산.
FDA(Flexible Discriminant Analysis): 입력 데이터를 선형 분리할 수 없는 경우.
RDA(Regularised Discriminant Analysis): 정규화하여 분산 공분산을 계산함으로써 다변수의 영향을 억제한다.
참조
Priyankur Sarkar, "hat is LDA: Linear Discriminant Analysis for Machine Learning", 2019
htps //w w. k의 w㎇d 게후 t. 코 m / b ぉ g / data-s shiense / ぃ 네아 r ぢ sc 리미 난 t 아나 ly shi s ぉ r 마치 네 - r r g
Reference
이 문제에 관하여(【기계 학습】LDA를 공부해 본다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shuva/items/f06e6c19017f5a4a0400
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【기계 학습】LDA를 공부해 본다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shuva/items/f06e6c19017f5a4a0400텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)