더북(TheBook)

여기에서 계산한 것과 LinearDiscriminantAnalysis 클래스의 결과와 같은지 확인해 보죠. 이 데이터셋의 클래스는 세 개이기 때문에 n_components를 설정하지 않아도 자동으로 두 개의 고유 벡터만 사용합니다.

lda_eigen = LDA(solver='eigen')
lda_eigen.fit(X_train_std, y_train)

클래스 내 산포 행렬은 lda_eigen 객체의 covariance_ 속성에 저장되어 있습니다.

>>> np.allclose(s_w, lda_eigen.covariance_)
True

클래스 간의 산포 행렬은 따로 제공되지는 않지만 총 산포 행렬(total scatter matrix) ST에서 클래스 내 산포 행렬 SW를 빼서 구할 수 있습니다.

>>> Sb = np.cov(X_train_std.T, bias=True) - lda_eigen.covariance_
>>> np.allclose(Sb, s_b)
True
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.