
두 변수가 같이 움직이는 정도를 -1에서 1 사이의 숫자로 나타낸 것이다.
상관계수 숫자들만 보면 눈이 아프다. 이를 온도계처럼 색깔로 표현한 것이 히트맵이다. 색이 진할수록 관계가 깊다는 뜻이다.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
class CorrelationAnalyzer:
def __init__(self, file_path: str):
self.df = pd.read_csv(file_path)
self.numeric_df = self.df.select_dtypes(include=['number'])
def plot_heatmap(self):
corr_matrix = self.numeric_df.corr()
plt.figure(figsize=(8, 6))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', fmt=".2f")
plt.title("Correlation Heatmap")
plt.show()
# --- 실행부 ---
analyzer = CorrelationAnalyzer('test_data.csv')
analyzer.plot_heatmap()

만약 우리가 히트맵을 그려보지 않았다면 막연히 "나이 많은 사람들이 점수가 높겠지"라고 생각했을 것이다. 하지만 시각화를 통해 "실제로는 상관이 없으니 점수를 높이기 위해 다른 요인을 찾아야 한다"는 아주 중요한 결론을 얻게 된 것이다.