Python

DevJin·6일 전
post-thumbnail

상관계수란?

두 변수가 같이 움직이는 정도를 -1에서 1 사이의 숫자로 나타낸 것이다.

  • 1에 가까울수록: "나이가 많아지면 점수도 무조건 오른다" (강한 양의 상관관계)
  • -1에 가까울수록: "나이가 많아지면 점수는 떨어진다" (강한 음의 상관관계)
  • 0에 가까울수록: "둘은 아무 상관이 없다"

히트맵(Heatmap)

상관계수 숫자들만 보면 눈이 아프다. 이를 온도계처럼 색깔로 표현한 것이 히트맵이다. 색이 진할수록 관계가 깊다는 뜻이다.


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()


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

profile
AI/ML Engineer 🧑‍💻

0개의 댓글