
파이썬 머신러닝의 세계에 입문하면 가장 먼저 마주하는 핵심 질문이 있습니다. "내가 풀고자 하는 문제가 회귀인가, 아니면 분류인가?"입니다. 이 선택은 단순히 알고리즘을 고르는 단계를 넘어, 데이터 전처리 방식, 모델의 출력 형태, 그리고 성과를 측정하는 지표까지 모든 파이프라인을 결정짓는 중대한 분기점입니다. 본 가이드에서는 현업 데이터 사이언티스트의 시각에서 두 개념의 근본적인 차이를 분석하고, 실무에서 마주하는 복잡한 데이터 상황에 대한 명쾌한 해결 방법을 제시합니다.
1. 회귀와 분류의 수학적 정의 및 출력 데이터의 차이
회귀와 분류의 가장 큰 차이점은 알고리즘이 내뱉는 '출력값(Target)'의 성격에 있습니다. 연속적인 수치선을 다루느냐, 아니면 분절된 카테고리를 다루느냐에 따라 모델의 학습 방식이 완전히 달라집니다.
회귀 vs 분류 핵심 메커니즘 비교표
| 비교 항목 | 회귀 (Regression) | 분류 (Classification) |
|---|---|---|
| 출력값 형태 | 연속적인 숫자 (Continuous Value) | 이산적인 레이블 (Discrete Label) |
| 핵심 질문 | "얼마나(How Much)?" | "어느 것(Which One)?" |
| 주요 평가지표 | MSE, RMSE, R-Squared ($R^2$) | Accuracy, F1-Score, AUC-ROC |
| 데이터 예시 | 주택 가격, 내일의 기온, 매출액 | 스팸 여부, 질병 유무, 이미지 태깅 |
| 알고리즘 예시 | Linear Regression, Ridge, Lasso | Logistic Regression, SVM, KNN |
2. 개발자를 위한 파이썬 회귀/분류 실무 Example 7선
데이터 타입에 따라 어떤 모델을 선택하고 어떻게 구현해야 하는지, 현업에서 즉시 사용 가능한 방법들을 파이썬 코드로 정리했습니다.
Example 1: [회귀] 선형 회귀를 이용한 부동산 가격 예측
from sklearn.linear_model import LinearRegression
import numpy as np
# 특징: 면적(평), 방 개수
X = np.array([[18, 2], [24, 3], [32, 3], [42, 4]])
# 타겟: 가격(억 원) - 연속적인 수치
y = np.array([4.2, 5.8, 7.5, 9.2])
reg = LinearRegression().fit(X, y)
# 새로운 평수에 대한 연속적인 수치 예측
print(f"30평대 예상 가격: {reg.predict([[30, 3]])[0]:.2f}억 원")
Example 2: [분류] 로지스틱 회귀를 통한 고객 이탈 여부 판단
from sklearn.linear_model import LogisticRegression
# 타겟: 0(유지), 1(이탈) - 이산적인 클래스
X_train = [[30, 200], [10, 50], [45, 350], [5, 20]] # 가입기간, 결제액
y_train = [0, 1, 0, 1]
clf = LogisticRegression().fit(X_train, y_train)
# 0 또는 1이라는 명확한 그룹으로 분류
result = clf.predict([[15, 60]])
print("이탈 위험군" if result[0] == 1 else "안정 유지군")
Example 3: 회귀 성능 지표(RMSE) 계산 방법
from sklearn.metrics import mean_squared_error
y_true = [100, 200, 300]
y_pred = [110, 190, 320]
# 오차의 크기를 수치화하여 모델의 정밀도 평가
mse = mean_squared_error(y_true, y_pred)
rmse = np.sqrt(mse)
print(f"회귀 모델의 RMSE 오차: {rmse:.2f}")
Example 4: 분류 성능 지표(F1-Score)와 혼동 행렬
from sklearn.metrics import classification_report
y_true = [0, 1, 1, 0, 1]
y_pred = [0, 1, 0, 0, 1]
# 단순 정확도 외에 정밀도와 재현율을 종합한 F1-Score 확인
print(classification_report(y_true, y_pred))
Example 5: 결정 트리(Decision Tree)의 회귀와 분류 동시 활용
from sklearn.tree import DecisionTreeRegressor, DecisionTreeClassifier
# 동일 알고리즘도 타겟 성격에 따라 다른 클래스를 사용함
reg_tree = DecisionTreeRegressor() # 수치 예측용
clf_tree = DecisionTreeClassifier() # 라벨 분류용
Example 6: K-최근접 이웃(KNN)을 이용한 다중 분류
from sklearn.neighbors import KNeighborsClassifier
# 라벨이 A, B, C와 같이 여러 개인 경우
X = [[1, 2], [5, 8], [10, 12]]
y = ['Group_A', 'Group_B', 'Group_C']
knn = KNeighborsClassifier(n_neighbors=1).fit(X, y)
print(f"데이터 분류 결과: {knn.predict([[2, 3]])}")
Example 7: 회귀 문제를 분류 문제로 변환하는 해결 방법
# 주택 가격(회귀)을 구간화(Binning)하여 등급(분류)으로 변환
prices = [10.5, 4.2, 7.8, 15.0]
# 10억 미만은 'Normal', 이상은 'Premium'
labels = ['Normal' if p < 10 else 'Premium' for p in prices]
print(f"변환된 레이블: {labels}")
3. 실무에서 발생하는 혼란과 3가지 해결 전략
데이터 분석 현장에서는 단순히 수치냐 문자냐를 넘어선 모호한 경계가 존재합니다. 이를 명확히 구분하는 방법을 제시합니다.
- 해결책 1: 타겟 데이터의 분포를 확인하라 - 출력값이 정수(Integer) 형태더라도 1, 2, 3, 4처럼 서열적인 의미가 강하다면 회귀로 접근할 수 있고, 개별적인 상태라면 분류로 접근해야 합니다.
- 해결책 2: 평가의 목적을 생각하라 - 오차가 5점 발생하는 것이 치명적인가(회귀), 아니면 정답을 맞혔느냐 틀렸느냐가 중요한가(분류)에 따라 모델링 방향을 설정하십시오.
- 해결책 3: 로지스틱 회귀(Logistic Regression)의 이름에 속지 마라 - 이름은 회귀이지만, 실제로는 선형 함수를 시그모이드(Sigmoid) 함수에 통과시켜 0과 1 사이의 확률값으로 만든 뒤 '분류'를 수행하는 모델입니다.
4. 결론: 문제의 본질을 꿰뚫는 데이터 해석력
회귀와 분류의 선택은 결국 비즈니스 도메인의 문제 해결 방식과 직결됩니다. 주가 예측을 '내일 주가가 얼마일까?'라는 회귀 문제로 접근할 수도 있지만, '내일 주가가 오를까 내릴까?'라는 이진 분류 문제로 단순화하여 정확도를 높이는 전략도 가능합니다. 중요한 것은 파이썬 코드를 한 줄 더 짜는 것이 아니라, 내가 다루는 데이터가 지닌 비즈니스 가치가 어느 쪽에서 더 크게 발휘될지 판단하는 통찰력입니다.
내용 출처: 1. Scikit-learn 공식 문서 (scikit-learn.org)
2. Hands-On Machine Learning (Aurélien Géron)
3. Python Machine Learning (Sebastian Raschka)
'Artificial Intelligence > 60. Python' 카테고리의 다른 글
| [PYTHON] PCA(주성분 분석) 활용 시점 3가지와 차원의 저주 해결 방법 (0) | 2026.04.08 |
|---|---|
| [PYTHON] 지도 학습 vs 비지도 학습 : 데이터 설계의 3가지 차이와 해결 방법 (0) | 2026.04.08 |
| [PYTHON] 과적합(Overfitting)을 완벽하게 확인하고 해결하는 7가지 실무 전략 (0) | 2026.04.08 |
| [PYTHON] 선형 회귀 모델 가중치(Weight)의 3가지 핵심 의미와 최적화 해결 방법 (0) | 2026.04.08 |
| [PYTHON] 결정 트리(Decision Tree) 과적합 이유 3가지와 해결 방법 7가지 완벽 가이드 (0) | 2026.04.08 |