5.2.4 새로운 특성 부분 공간을 위해 선형 판별 벡터 선택

    LDA의 남은 단계는 PCA와 유사합니다. 공분산 행렬에 대한 고윳값 분해를 수행하는 대신 행렬 SW-1SB의 고윳값을 계산하면 됩니다.

    >>> eigen_vals, eigen_vecs =\
    ...            np.linalg.eig(np.linalg.inv(S_W).dot(S_B))

    고유 벡터와 고윳값 쌍을 계산한 후 내림차순으로 고윳값을 정렬합니다.

    >>> eigen_pairs = [(np.abs(eigen_vals[i]), eigen_vecs[:,i])
    ...                for i in range(len(eigen_vals))]
    >>> eigen_pairs = sorted(eigen_pairs,
    ...                      key=lambda k: k[0], reverse=True)
    >>> print(' 내림차순의 고윳값:\n')
    >>> for eigen_val in eigen_pairs:
    ...     print(eigen_val[0])
    
    내림차순의 고윳값:
    
    349.61780890599397
    172.7615221897939
    2.7503677390586895e-14
    2.7503677390586895e-14
    2.4010440900940612e-14
    2.4010440900940612e-14
    2.2711972797109696e-14
    2.2711972797109696e-14
    1.5155189429341637e-14
    5.818499407806176e-15
    1.808279531061809e-15
    1.808279531061809e-15
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.