시작하기무료로 시작하기

높은 상관관계 특징 걸러내기

숫자형 ANSUR 데이터셋에서 상관관계가 매우 높은 특징을 자동으로 제거해 보겠습니다. 상관관계 행렬을 계산하고, 상관계수가 0.95보다 크거나 -0.95보다 작은 열을 걸러낼 거예요.

각 상관계수는 행렬에서 두 번 나타납니다(A와 B의 상관은 B와 A의 상관과 동일). 따라서 두 특징 중 하나만 제거되도록 상관관계 행렬의 절반은 무시해야 합니다. 이를 위해 마스크 트릭을 사용하세요.

이 연습은 강의의 일부입니다

Python으로 배우는 차원 축소

강의 보기

연습 안내

  • ansur_df의 상관관계 행렬을 계산하고, 이 행렬의 절댓값을 취하세요.
  • 오른쪽 위 삼각형이 True가 되는 불리언 마스크를 만들고, 이를 상관관계 행렬에 적용하세요.
  • 상관계수 임계값을 0.95로 설정하세요.
  • DataFrame에서 to_drop에 나열된 모든 열을 삭제하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Calculate the correlation matrix and take the absolute value
corr_df = ansur_df.____().____()

# Create a True/False mask and apply it
mask = np.____(np.____(corr_df, dtype=____))
tri_df = corr_df.____(mask)

# List column names of highly correlated features (r > 0.95)
to_drop = [c for c in tri_df.columns if any(tri_df[c] >  ____)]

# Drop the features in the to_drop list
reduced_df = ansur_df.____(____, axis=1)

print(f"The reduced_df DataFrame has {reduced_df.shape[1]} columns.")
코드 편집 및 실행