K-Means 클러스터링 — 데이터를 K개의 그룹으로 자동 분류합니다. 레이블(정답) 없이 비슷한 데이터끼리 묶는 비지도 학습 알고리즘입니다.
Train으로 클러스터를 학습하고, Val·Test에서 동일한 클러스터 할당 품질을 비교합니다.
비지도학습클러스터링실루엣점수Inertia
🔵 K-Means — 단계별 알고리즘 시뮬레이터
샘플 데이터 K 값
1 / 6
K-최근접 이웃 (KNN) — 새 데이터와 가장 가까운 K개의 이웃을 찾아 분류·예측합니다. 타겟 컬럼의 고유값이 20 이하면 분류, 초과하면 회귀로 자동 전환됩니다.
지도학습분류/회귀거리 기반Train/Val/Test
🟣 KNN — 단계별 알고리즘 시뮬레이터
샘플 데이터 K (이웃 수)
1 / 6
선형 회귀 (Linear Regression) — 수치형 타겟을 예측합니다. Ridge는 L2 정규화, Lasso는 L1 정규화를 적용해 과적합을 방지합니다.
회귀RMSERidgeLasso
📈 선형 회귀 — 단계별 알고리즘 시뮬레이터
1 / 6
📊
STEP 1 — 데이터 수집
수집된 데이터의 분포를 확인합니다.
로지스틱 회귀 (Logistic Regression) — 범주형 타겟을 분류합니다. 이름은 "회귀"지만 실제로는 분류 알고리즘으로, 각 클래스의 확률을 출력합니다.
분류확률 출력F1 Score다중 분류
🔀 로지스틱 회귀 — 단계별 알고리즘 시뮬레이터
1 / 6
📊
STEP 1 — 데이터 수집
이진 분류 데이터를 시각화합니다.
결정 트리 (Decision Tree) — 데이터를 if-else 규칙으로 분기해 예측합니다. 해석이 직관적이며, 깊이(max_depth)로 과적합을 제어합니다.
분류/회귀피처 중요도트리 깊이Gini/Entropy
🌿 결정 트리 — 질문으로 가지를 뻗어 보기 (학생 12명)
1 / 6
🌱
STEP 1 — 섞인 뿌리에서 출발
학생 12명이 합격·불합격 반반으로 뒤섞인 뿌리 노드입니다.
랜덤 포레스트 (Random Forest) — 수백 개의 결정 트리를 앙상블해 예측합니다. 단일 트리보다 과적합이 적고 피처 중요도를 제공합니다.
앙상블분류/회귀피처 중요도과적합 강건
💡 랜덤포레스트를 관통하는 3가지 핵심 원리
🎒 1. 부트스트랩 (배깅)전체 학생 데이터 중 복원 추출(중복 허용)로 무작위 샘플을 뽑아 각 나무에게 나눠 줍니다. 나무마다 공부하는 교과서가 약간씩 달라집니다.
🎲 2. 무작위 피처 선택나무를 자를 때 모든 질문(피처)을 쓰지 않고, 랜덤하게 일부 질문들만 후보로 올려 최적의 질문을 고릅니다. 나무의 다양성이 극대화됩니다.
📦 3. 집단지성 (다수결)새로운 학생이 왔을 때, 수많은 나무들이 각자 예측한 결과들을 모아 가장 많은 표를 얻은 예측값을 최종 결론으로 도출합니다.
시나리오 — 우리는 [공부시간, 수면시간, 출석률] 데이터를 기반으로 이 학생이 시험에 합격(Pass)할지 불합격(Fail)할지 예측하는 숲을 만듭니다.
🗂 학습 데이터 — 학생 10명 값을 수정하면 숲이 즉시 다시 학습됩니다
🎛 하이퍼파라미터 설정 (숲 디자인)
생성할 나무 개수 (Forest Size)4개
나무가 많을수록 예측이 안정적이고 과적합이 줄어듭니다.
나무의 최대 깊이 (Max Depth)3단계
깊이가 너무 깊으면 훈련 데이터에만 과하게 집착(과적합)할 수 있습니다.
최소 분할 샘플 수 (Min Samples Split)2개
이 값을 낮추어야 잘게 분할되어 깊은 단계까지 내려갑니다.
노드당 무작위 선택할 변수 개수2개
전체 피처(공부, 수면, 출석) 중 몇 개를 랜덤 후보로 뽑아 분할 기준으로 쓸지 정합니다.
🌲 생성된 숲 — 나무를 클릭해 내부를 살펴보세요
🔍 선택된 나무 구조 (CART · 지니 불순도)
🎒 이 나무의 부트스트랩 샘플
🗳️ 실시간 다수결(Voting) 시뮬레이터 — 새 학생 정보를 조절해보세요
👤 가상의 테스트 학생 정보
📚 공부시간6h
💤 수면시간7h
🎯 출석률85%
📋 개별 나무 판정
집단지성 최종 판정
합격 0표불합격 0표
🔬 전체 버전 페이지 — 단계별 애니메이션·지니 계산 과정 포함
XGBoost — Gradient Boosting 기반의 강력한 앙상블 알고리즘입니다. 캐글 대회에서 가장 많이 사용되는 알고리즘으로, 정확도와 속도 모두 우수합니다.
Gradient Boosting분류/회귀피처 중요도정규화
💡 XGBoost를 관통하는 3가지 핵심 원리
⛓ 1. 순차 부스팅 (잔차 전파)나무를 한 그루씩 차례로 만듭니다. 뒤 나무는 정답이 아니라 앞 나무들이 남긴 오차(잔차)만 학습해, 릴레이처럼 실수를 메워 갑니다.
⚖️ 2. 리프 가중치 공식리프의 출력은 w = −G / (H + λ). 그래디언트(G)·헤시안(H) 합에 L2 규제(λ)를 더해, 확신이 약한 리프일수록 출력을 자동으로 눌러 줍니다.
🐢 3. 학습률(η) 축소각 나무의 출력을 η배로 줄여서 누적합에 더합니다. 조금씩 천천히 배우는 대신, 한 나무의 실수가 전체를 망치지 못합니다.
시나리오 — 같은 학생 10명 데이터로, 이번엔 나무들이 협력(다수결)이 아니라 릴레이(누적합)로 배웁니다. 초기 예측에서 시작해 잔차를 차례로 메워 최종 점수를 완성합니다.
🗂 학습 데이터 — 학생 10명 목적 함수에 따라 타깃 열이 바뀝니다 · 수정 시 즉시 재학습
🎛 하이퍼파라미터 설정 (부스팅 설계)
학습률 (Learning Rate, η)0.3
각 나무의 기여를 얼마나 축소해 누적할지 정합니다. 작을수록 천천히·안정적으로 배웁니다.
부스팅 트리 수 (Estimators)3개
잔차를 메울 나무를 몇 그루 이어붙일지. 많을수록 잔차가 줄지만 과적합 위험이 커집니다.
L2 가중치 규제 (λ)1.0
리프 가중치 분모(H+λ)에 더해져 출력을 누릅니다. 클수록 보수적인 예측이 됩니다.
초기 예측값 (Base Score)0.5
모든 학생에게 동일하게 주는 출발점입니다. 첫 나무는 이 값의 오차부터 메웁니다.
⛓ 부스팅 체인 — 나무를 클릭해 잔차가 줄어드는 과정을 살펴보세요
🔍 선택된 나무 구조 — 리프 가중치 w = −G/(H+λ)
📉 이 나무가 물려받은 잔차 (학생별)
➕ 점수 누적합 예측 시뮬레이터 — 새 학생 정보를 조절해보세요
👤 가상 학생 프로필
📚 공부시간6h
💤 수면시간7h
🎯 출석률85%
🧮 부스팅 예측 누적 연산 흐름
XGBoost 최종 판정
🔬 전체 버전 페이지 — 순차 학습 애니메이션·수식(MathJax) 렌더 포함
분류 평가지표 — Confusion Matrix & 파생 지표 — 모델이 얼마나 잘 분류하는지 다각도로 측정합니다. 슬라이더로 민감도·특이도를 바꿔보며 지표 간 트레이드오프를 직접 체험하세요.
Confusion MatrixPrecisionRecallF1 ScoreROCAUC
🔲 Confusion Matrix 구조

모델의 예측 결과를 실제 정답과 비교해 4개의 칸으로 정리한 표입니다. 단순 정확도가 놓치는 오류 유형을 명확히 드러냅니다.

← 모델 예측 →
예측 양성
예측 음성
실제 양성
TP True Positive 올바른 양성 예측 ✓
FN False Negative 놓친 양성 (Type II)
실제 음성
FP False Positive 잘못된 경보 (Type I)
TN True Negative 올바른 음성 예측 ✓
TP·TN은 정답, FP는 오탐(경보 과잉), FN은 미탐(놓친 사례). 어떤 오류가 더 위험한가에 따라 최적화 방향이 달라집니다.
📐 파생 지표 공식
Accuracy (정확도)
(TP+TN)
─────────
TP+FP+FN+TN
전체 중 맞힌 비율. 불균형 데이터에서 오해 소지 있음.
Precision (정밀도)
TP
─────────
TP + FP
양성 예측 중 진짜 양성 비율. FP를 줄이는 게 목표.
Recall / Sensitivity
TP
─────────
TP + FN
실제 양성 중 잡아낸 비율. FN을 줄이는 게 목표.
F1 Score
2 × P × R
─────────
P + R
Precision과 Recall의 조화평균. 불균형 시 유용.
Specificity
TN
─────────
TN + FP
실제 음성 중 정확히 음성으로 예측한 비율.
AUC-ROC
∫ TPR d(FPR)
임계값 변화에 따른 ROC 곡선 아래 면적. 1에 가까울수록 우수.
🎮 인터랙티브 Confusion Matrix 시뮬레이터

슬라이더를 조정하면 행렬과 모든 지표가 실시간 업데이트됩니다. 프리셋을 눌러 다양한 현실 시나리오를 탐색하세요.

전체 30개 샘플 구성 ● 양성 15 + ○ 음성 15 = 30개
실제 양성 수 (총 30개 중)
민감도 (Recall / Sensitivity)80% 실제 양성 중 모델이 양성으로 맞힌 비율
특이도 (Specificity)90% 실제 음성 중 모델이 음성으로 맞힌 비율
← 모델 예측 →
예측 양성
예측 음성
실제 양성
80TP
20FN
실제 음성
10FP
90TN
해석 결과가 여기 표시됩니다.
🗂️ 샘플 데이터 미리보기 — 실제값 vs 예측값

슬라이더 비율에 따라 30개 샘플을 생성합니다. 각 행의 색이 Confusion Matrix의 어느 칸에 해당하는지 확인하세요.

📈 ROC 곡선 & AUC
📖 지표 해석 가이드 — 언제 무엇을 봐야 할까?

🏥 Recall 우선 상황

암 진단, 사기 탐지, 결함 검출 등 놓치는 것이 치명적인 경우.
FN(실제 환자를 정상이라 판정)을 최소화. Recall이 높을수록 미탐이 줄어듦.

📧 Precision 우선 상황

스팸 필터, 법적 분류, 추천 시스템 등 오탐이 비용이 높은 경우.
FP(정상 메일을 스팸 처리)를 최소화. Precision이 높을수록 신뢰도 상승.

⚖️ F1 Score 사용 상황

Precision·Recall 간 균형이 중요할 때, 특히 클래스 불균형 데이터에서. 단순 Accuracy는 다수 클래스를 전부 맞춰도 높게 나올 수 있어 F1이 더 신뢰됨.

📉 AUC-ROC 사용 상황

임계값(threshold)에 무관하게 모델 자체의 분리 능력을 비교할 때. 0.5 = 무작위, 1.0 = 완벽. 여러 모델 비교 시 AUC가 단일 지표로 유용.

⚠️ Accuracy의 함정

양성 1%, 음성 99%인 데이터에서 모두 음성 예측 시 Accuracy = 99%.
불균형 데이터에서는 Accuracy 단독 사용은 위험하며, Precision·Recall·F1을 함께 봐야 합니다.

🔁 Precision-Recall 트레이드오프

임계값을 낮추면 더 많이 양성 예측 → Recall↑ Precision↓.
임계값을 높이면 확실한 것만 양성 예측 → Precision↑ Recall↓.
시뮬레이터에서 슬라이더로 직접 확인해보세요.

LightGBM — Leaf-wise 성장·GOSS·EFB로 대용량 데이터를 빠르게 학습하는 부스팅 알고리즘입니다. XGBoost 대비 압도적인 속도와 낮은 메모리 사용이 특징입니다.
Gradient BoostingLeaf-wise대용량·고속GOSS/EFB
💡 LightGBM을 관통하는 3가지 핵심 원리
🌿 1. Leaf-wise 성장깊이별로 균형 있게 자라는 Level-wise와 달리, 손실을 가장 많이 줄이는 리프 하나만 골라 쪼갭니다. 같은 분할 횟수로 더 낮은 오차에 도달합니다.
🎯 2. GOSS (샘플링)오차(그래디언트)가 큰 데이터는 100% 보존하고, 이미 잘 맞히는 데이터는 일부만 뽑아 가중치로 보정합니다. 데이터를 덜 보고도 정확도를 지킵니다.
📦 3. EFB (피처 묶기)동시에 0이 아닌 값을 갖지 않는 상호 배타적 희소 피처들을 하나로 병합해 차원을 줄입니다. 정보 손실 없이 연산량이 감소합니다.
시나리오 — 같은 학생 10명 데이터로, 같은 분할 횟수에서 Level-wise(XGBoost 방식)와 Leaf-wise(LightGBM 방식)가 어떻게 다른 나무를 만드는지 단계별로 비교합니다.
🗂 학습 데이터 — 학생 10명 값을 수정하면 두 트리가 즉시 다시 성장합니다
🎛 하이퍼파라미터 설정 (성장 규칙)
리프 노드 개수 (Num Leaves)6개
트리가 가질 수 있는 최대 리프 수입니다. LightGBM의 대표 복잡도 제어 손잡이입니다.
최대 깊이 (Max Depth)3단계
Leaf-wise는 한쪽으로 깊게 자랄 수 있어, 깊이 제한이 과적합 방지에 중요합니다.
최소 리프 샘플 수 (Min Data in Leaf)1개
분할 후 양쪽 리프가 최소 이만큼 샘플을 가져야 분할이 허용됩니다.
L2 규제 (λ)0.1
분할 이득(Gain) 계산의 분모에 더해져, 확신이 약한 분할을 억제합니다.
🌗 트리 성장 방식 비교 — 같은 단계에서 두 나무가 어떻게 달라지나
1 / 5
⬛ Level-wise (균형 중심)XGBoost 기본
🌿 Leaf-wise (손실 중심)LightGBM 기본
🎯 GOSS 샘플링 — 오차가 큰 학생만 남기고 데이터를 줄여보세요
큰 오차 보존율 (a)20%
작은 오차 샘플율 (b)20%
📦 EFB 피처 번들링 — 희소 피처 2개를 정보 손실 없이 1개로
피처 A·B는 동시에 0이 아닌 행이 없는 상호 배타적 희소 피처입니다.
🔬 전체 버전 페이지 — 결정 경계 실험·FAQ 포함
🐍  — Python 코드
pip install (필요 패키지)