5.1.4 특성 변환
공분산 행렬을 고유 벡터와 고윳값 쌍으로 성공적으로 분해한 후 Wine 데이터셋을 새로운 주성분 축으로 변환하는 나머지 세 단계를 진행해 보죠. 이 절에서 진행할 남은 단계는 다음과 같습니다.
• 고윳값이 가장 큰 k개의 고유 벡터를 선택합니다. 여기서 k는 새로운 특성 부분 공간의 차원입니다(k ≤ d).
• 최상위 k개의 고유 벡터로 투영 행렬 W를 만듭니다.
• 투영 행렬 W를 사용해서 d 차원 입력 데이터셋 X를 새로운 k 차원의 특성 부분 공간으로 변환합니다.
좀 더 쉽게 설명하면 고윳값의 내림차순으로 고유 벡터를 정렬하고 선택된 고유 벡터로 투영 행렬을 구성합니다. 이 투영 행렬을 사용하여 데이터를 저차원 부분 공간으로 변환합니다.
먼저 고윳값의 내림차순으로 고유 벡터와 고윳값의 쌍을 정렬하겠습니다.
>>> # (고윳값, 고유 벡터) 튜플의 리스트를 만듭니다
>>> eigen_pairs = [(np.abs(eigen_vals[i]), eigen_vecs[:, i])
... for i in range(len(eigen_vals))]
>>> # 높은 값에서 낮은 값으로 (고윳값, 고유 벡터) 튜플을 정렬합니다
>>> eigen_pairs.sort(key=lambda k: k[0], reverse=True)