다음 가장 큰 두 개의 고윳값에 해당하는 고유 벡터를 선택합니다. 이 데이터셋에 있는 분산의 약 60%를 잡아낼 수 있을 것입니다. 이 예제에서는 나중에 2차원 산점도를 그리기 위해 두 개의 고유 벡터만 선택했습니다. 실전에서는 계산 효율성과 모델 성능 사이의 절충점을 찾아 주성분 개수를 결정해야 합니다.
>>> w = np.hstack((eigen_pairs[0][1][:, np.newaxis],
... eigen_pairs[1][1][:, np.newaxis]))
>>> print('투영 행렬 W:\n', w)
투영 행렬 W:
[[-0.13724218 0.50303478]
[ 0.24724326 0.16487119]
[-0.02545159 0.24456476]
[ 0.20694508 -0.11352904]
[-0.15436582 0.28974518]
[-0.39376952 0.05080104]
[-0.41735106 -0.02287338]
[ 0.30572896 0.09048885]
[-0.30668347 0.00835233]
[ 0.07554066 0.54977581]
[-0.32613263 -0.20716433]
[-0.36861022 -0.24902536]
[-0.29669651 0.38022942]]
앞 코드를 실행하여 최상위 두 개의 고유 벡터로부터 13×2 차원의 투영 행렬 W를 만듭니다.