0Pricing
Learn AI with Python · 강의

단변량 분석

개별 특성을 이해하기 위해 분포 그래프, 히스토그램, 상자수염 그래프, 개수 그래프를 사용합니다.

단변량 분석은(는) CoddyKit의 무료 Learn AI with Python 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn AI with Python 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

단변량 분석이란 무엇인가요?

단변량 분석은 한 번에 하나의 변수를 살펴보며 분포의 중심, 퍼짐, 형태, 특이한 값을 이해하는 방법입니다.

적절한 그래프는 변수의 자료형에 따라 달라집니다.

  • 수치형 → 히스토그램, KDE, 상자 그림, 바이올린 그림
  • 범주형 → 개수 그래프(빈도를 나타내는 막대 그래프)

그래프 작성 라이브러리 설정

매트플롯립(plt)과 시본(sns)을 사용합니다. 시본은 매트플롯립을 기반으로 하며 통계 그래프에 더 보기 좋은 기본 설정을 제공합니다.

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd

sns.set_theme(style="whitegrid")
df = pd.read_csv("data.csv")

plt.hist로 히스토그램 그리기

히스토그램은 수치형 값을 구간으로 나누고 각 구간에 속하는 값의 개수를 셉니다. 이를 통해 분포의 전반적인 형태를 확인할 수 있습니다.

bins 인수는 해상도를 조절합니다. 구간이 너무 적으면 구조가 가려지고, 너무 많으면 잡음이 늘어납니다.

plt.hist(df["age"], bins=30, edgecolor="black")
plt.xlabel("Age")
plt.ylabel("Count")
plt.title("Age Distribution")
plt.show()

KDE 그래프 — 부드러운 밀도

커널 밀도 추정(sns.kdeplot)은 분포를 근사하는 부드러운 곡선을 그립니다. 들쭉날쭉한 히스토그램 막대보다 읽기 쉬울 수 있습니다.

sns.histplot(..., kde=True)를 사용하면 두 그래프를 함께 그려 막대 위에 부드러운 곡선을 겹쳐 표시할 수 있습니다.

sns.kdeplot(df["age"], fill=True)
plt.show()

sns.histplot(df["age"], bins=30, kde=True)
plt.show()

Skew 찾기

Skew는 비대칭성을 측정합니다. 오른쪽으로 긴 꼬리는 오른쪽(양의) skew이고, 왼쪽으로 긴 꼬리는 왼쪽(음의) skew입니다.

소득, 가격, 개수 데이터는 대개 오른쪽으로 치우쳐 있습니다. df[col].skew()로 수치화할 수 있으며, 0에서 크게 벗어난 값은 skew가 있음을 나타냅니다.

print(df["income"].skew())   # e.g. 2.3 -> strong right skew
sns.histplot(df["income"], bins=40, kde=True)
plt.show()

이봉성 찾기

이봉형 분포에는 두 개의 봉우리가 있습니다. 이는 서로 다른 두 집단이 섞여 있다는 신호인 경우가 많습니다(예: 하나의 가격 열에 두 종류의 제품이 섞여 있는 경우).

KDE 그래프를 사용하면 이봉성이 뚜렷하게 보입니다. 두 개의 봉우리가 있는지 살펴보세요. 숨겨진 범주형 변수가 이러한 분리를 설명할 수 있다는 단서입니다.

sns.kdeplot(df["price"], fill=True)
plt.title("Two peaks suggest two subpopulations")
plt.show()

sns.boxplot으로 상자 그림 그리기

상자 그림은 중앙값(가운데 선), 사분위 범위(IQR, 상자), 그리고 약 1.5배 IQR까지 뻗은 수염을 보여 줍니다. 수염을 벗어난 점은 이상치로 표시됩니다.

sns.boxplot(x=df["income"])
plt.title("Income — box plot")
plt.show()

이상치와 IQR 규칙

상자 그림은 IQR 규칙을 사용합니다. 어떤 점이 Q1 - 1.5*IQR보다 작거나 Q3 + 1.5*IQR보다 크면 이상치입니다.

경계값을 직접 계산하여 극단적인 값을 필터링하거나 상한·하한으로 제한할 수 있습니다.

q1 = df["income"].quantile(0.25)
q3 = df["income"].quantile(0.75)
iqr = q3 - q1
low, high = q1 - 1.5*iqr, q3 + 1.5*iqr
outliers = df[(df["income"] < low) | (df["income"] > high)]
print(len(outliers), "outliers")

sns.violinplot으로 바이올린 그림 그리기

바이올린 그림은 상자 그림과 좌우가 대칭인 KDE를 결합한 것입니다. 각 높이에서의 폭이 밀도를 나타내므로, 형태와 요약 통계를 한 번에 확인할 수 있습니다.

바이올린 그림은 단순한 상자 그림으로는 드러나지 않는 왜도나 이봉성을 보여 주는 데 유용합니다.

sns.violinplot(x=df["age"])
plt.title("Age — violin plot")
plt.show()

범주형 변수의 개수 그래프

범주형 열에는 sns.countplot을 사용하세요. 이는 범주별 빈도를 나타내는 막대 그래프이며, value_counts()를 시각적으로 표현한 것입니다.

order 인수를 사용하면 읽기 쉽도록 빈도순으로 막대를 정렬할 수 있습니다.

order = df["city"].value_counts().index
sns.countplot(y="city", data=df, order=order)
plt.title("Records per city")
plt.show()

적절한 단변량 그래프 선택하기

빠른 선택 가이드:

  • 수치형 열의 형태 → 히스토그램 또는 KDE
  • 이상치와 사분위수 → 상자 그림
  • 형태와 요약 정보를 함께 확인 → 바이올린 그림
  • 범주별 빈도 → 개수 그래프

빠른 확인: 그래프 선택

하나의 수치형 열에서 중앙값, 사분위수, 이상치를 확인하려고 합니다.

복습: 단변량 분석

이제 한 번에 하나의 변수를 살펴보는 방법을 배웠습니다.

  • 분포의 형태를 확인하는 plt.hist 및 sns.kdeplot
  • 비대칭성을 수치화하는 .skew()와 이봉성을 확인하는 KDE 봉우리
  • 이상치를 확인하는 sns.boxplot 및 IQR 규칙
  • 형태와 요약 정보를 함께 확인하는 sns.violinplot
  • 범주별 빈도를 확인하는 sns.countplot

다음에는 두 개 이상의 변수 사이의 관계를 살펴봅니다.

자주 묻는 질문

“단변량 분석” 강의는 무료인가요?

네 — “단변량 분석” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn AI with Python 강의 전체를 잠금 해제할 수 있습니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

“단변량 분석”에서 뭘 배우나요?

개별 특성을 이해하기 위해 분포 그래프, 히스토그램, 상자수염 그래프, 개수 그래프를 사용합니다. 브라우저에서 직접 실행하는 실습 코드로 Learn AI with Python을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Learn AI with Python을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Learn AI with Python은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“단변량 분석” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Learn AI with Python 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Learn AI with Python 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. EDA 작업 흐름과 데이터 프로파일링
  2. 단변량 분석
  3. 이변량 및 다변량 분석
  4. 특성 분포 및 목표값 분석
← Learn AI with Python(으)로 돌아가기