Skip to content

문제 5 · 실습 — 피셔 투영 벡터

클래스 내 산포 행렬 SW와 투영 벡터 wSW1(m2m1)을 계산합니다.

python
import numpy as np

C1 = np.array([[2, 3], [3, 3], [3, 2]], float)
C2 = np.array([[6, 5], [7, 8], [8, 6]], float)
m1, m2 = C1.mean(0), C2.mean(0)
SW = (C1 - m1).T @ (C1 - m1) + (C2 - m2).T @ (C2 - m2)
w = np.linalg.inv(SW) @ (m2 - m1)
print("m1 =", m1, "  m2 =", m2)
print("S_W =\n", SW)
print(f"w ∝ {w}  ->  정수비 {np.round(w / w.min()).astype(int)}  = (3, 1)")
print(f"정규화 w/||w|| = {w / np.linalg.norm(w)}")

👉 문제 5로 돌아가기

PDF