1️⃣ 데이터 분석 전체 흐름 : CRISP-DM
🔄 CRISP-DM 프로세스
- 비즈니스 문제 정의
- 무엇이 문제인가?
- 예: “해지 고객을 미리 예측할 수 있을까?”
- 데이터 이해
- 어떤 데이터가 있는가?
- 변수 의미, 단위, 결측치 확인
- 데이터 준비
- 분석 가능한 구조로 가공
- 모든 셀은 값이 있어야 함
- 모든 값은 숫자여야 함
- 모델링
- 적절한 알고리즘 선택
- 학습 수행
- 평가
- 기술적 관점 (정확도, AUC 등)
- 비즈니스 관점 (Lift, 타겟팅 효과)
- 배포 및 관리
- 서비스 적용
- 성능 모니터링
2️⃣ 모델과 모델링이란?
✔ 모델(Model)
데이터를 통해 발견한 패턴을 수학식으로 표현한 것
✔ 모델링(Modeling)
오차가 최소화되도록 모델을 만드는 과정
- 샘플(과거 데이터) → 전체(미래 데이터)를 추정
- 예측(Prediction) 또는 추론(Inference)
3️⃣ AI · 머신러닝 · 딥러닝 차이
| 구분 | 설명 |
| AI | 인간의 지능을 흉내 내려는 모든 시도 |
| ML | 데이터로부터 규칙을 학습 |
| DL | 신경망 기반의 머신러닝 |
머신러닝은 AI의 부분집합, 딥러닝은 머신러닝의 부분집합
4️⃣ 머신러닝의 3가지 학습 방식
① 지도학습 (Supervised Learning)
- 정답(Label)이 있는 데이터
- 입력 X → 출력 y 학습
- 예:
- 고객 정보 → 해지 여부
- 집 정보 → 집값
# 지도학습 기본 구조
X = df.drop("target", axis=1)
y = df["target"]
② 비지도학습 (Unsupervised Learning)
- 정답이 없음
- 데이터 내부 패턴 발견
- 예:
- 고객 군집화
- 이상치 탐지
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(X)
labels = kmeans.labels_
③ 강화학습 (Reinforcement Learning)
- 상태(State)에서 행동(Action)을 선택
- 보상(Reward)을 통해 학습
- 예: 게임 AI, 로봇 제어
| 요소 | 의미 |
| Agent | 학습 주체 |
| Environment | 환경 |
| Action | 행동 |
| Reward | 보상 |
| Policy | 행동 전략 |
5️⃣ 정답의 두 가지 종류
✔ Regression (회귀)
- “얼마나?”
- 연속형 숫자 예측
- 예: 주가, 수요량
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
pred = model.predict(X_test)
✔ Classification (분류)
- “A일까 B일까?”
- 범주형 예측
- 예: 해지/유지, 합격/불합격
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train, y_train)
pred = model.predict(X_test)
pred_proba = model.predict_proba(X_test)[:, 1]
6️⃣ 머신러닝 실습을 위한 데이터 전처리
① 결측치 처리 (NaN)
# 평균으로 채우기
df["Age"] = df["Age"].fillna(df["Age"].mean())
# 최빈값
df["Embarked"] = df["Embarked"].fillna(df["Embarked"].mode()[0])
# 이후값 채우기
df = df.fillna(method="bfill")
② 불필요한 변수 제거
df = df.drop(columns=["CompPrice"])
③ 가변수화 (One-Hot Encoding)
df_encoded = pd.get_dummies(df, drop_first=True)
④ 스케일링
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
7️⃣ 데이터 분할
① X / y 분리
X = df.drop("target", axis=1)
y = df["target"]
② Train / Test 분리
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=11
)
8️⃣ 모델 학습 및 평가
from sklearn.metrics import (
confusion_matrix, accuracy_score,
precision_score, recall_score,
f1_score, roc_auc_score
)
pred = model.predict(X_test)
pred_proba = model.predict_proba(X_test)[:, 1]
print("Accuracy:", accuracy_score(y_test, pred))
print("Recall:", recall_score(y_test, pred))
print("ROC-AUC:", roc_auc_score(y_test, pred_proba))
9️⃣ 모델 평가의 핵심 포인트
- 기술적 성능
- Accuracy
- Recall
- ROC-AUC
- 비즈니스 성능
- 상위 위험군 해지율
- Lift
- 타겟 마케팅 활용 가능성
좋은 모델 = 숫자가 좋은 모델이 아니라, 의사결정에 쓰일 수 있는 모델
https://www.instagram.com/p/DS1V20zEgzI/?igsh=OHJzNDd2aTNobTNk
✨ BDA 8기 운영진 모집 ✨
📅 모집 기간
2025.12.29(월) ~ 2026.01.11(일) 23:59
📌 BDA 운영진은 이런 일을 해요!
-총 10개 팀 중 한 팀에 소속되어 각자의 직무 영역에서 BDA의 발전을 도모합니다
-Slack, Notion, Google Drive 등 실무에 활용되는 협업 툴을 사용해 업무를 수행합니다
-단순 보조가 아닌, 실제 업무를 직접 기획·운영하며 실무 경험을 쌓습니다
-직무교육, 실무 프로젝트, 추천채용 제도 등 다양한 기회를 통해 스스로의 커리어를 발전시킵니다
관심있으신 분들은 지원해보시길~ !
'BDA' 카테고리의 다른 글
| [BDA] 9주차 : 이변량 분석(수치형 vs 범주) (0) | 2026.01.15 |
|---|---|
| [BDA] 7주차 이변량 분석2 범주형 vs 범주형 (0) | 2025.12.01 |
| [BDA] 6주차 수치형 vs 수치형 (0) | 2025.11.23 |
| [BDA] 5주차 단변량 분석 범주형 (0) | 2025.11.06 |
| [BDA] 4주차 단변량 분석 (1) | 2025.10.13 |