NumPy 기초·연습 문제

상관계수 행렬

문제 설명PROBLEM

preview

상관계수 행렬 (Correlation Matrix)

공분산(34번)스케일에 의존합니다 — 단위를 바꾸면 값이 바뀌죠. 이를 각 특성의 표준편차로 정규화 한 것이 상관계수:

ρij=Σijσiσj\rho_{ij} = \frac{\Sigma_{ij}}{\sigma_i \, \sigma_j}

성질

  • 값 범위 [1,1][-1, 1]
  • 대각선은 항상 1 (자기자신과 완전 상관)
  • 1 — 완전 양의 선형관계
  • 0 — 선형관계 없음 (독립 보장은 아님)
  • -1 — 완전 음의 선형관계

과제

함수 correlation_matrix(X) 를 완성하세요.

  • X shape (N, D).
  • 반환: (D, D) 상관계수 행렬.
  • 방법: 공분산 → 각 축의 std 로 나눔 (np.outer(std, std)).

테스트 케이스

#이름검증
1shape (D, D)
2대각 = 1
3대칭
4범위 [-1, 1]
5np.corrcoef 일치
개념 노트와 실수 포인트

NumPy 기초

  • ⚠️ axis 헷갈림: axis=0 은 행을 가로질러 → 열별 결과, axis=1행별 결과.
  • 브로드캐스팅: shape 를 뒤에서부터 맞춤(1 또는 같은 크기).
  • 반복문 대신 벡터화 연산. @(행렬곱) 와 *(요소곱) 구분.