사이킷런 워크플로우 완성

40 P
QUESTION 11 #338
Scikit-learn을 사용하여 선형 회귀 모델을 생성(LinearRegression), 학습(fit), 예측(predict)하는 전체 파이프라인을 완성하세요.
main.py
from sklearn.linear_model import LinearRegression
import numpy as np

# 데이터 준비 (2차원 구조)
X = np.array([[1], [2], [3]])
y = np.array([10, 20, 30])

# 1. 모델 객체 생성
model = ()

# 2. 데이터 학습
model.(X, y)

# 3. 새로운 값(4) 예측
pred = model.([[4]])
print(f"예측값: {pred}")
실행 결과 예시
예측값: [40.]
INTERACTIVE SHELL Shift + Enter 로 즉시 실행

🛠️ 머신러닝의 표준 프로세스

거의 모든 머신러닝 라이브러리는 아래 3단계 인터페이스를 따릅니다.


1단계: 모델 객체 생성 (인스턴스화)

model = LinearRegression()

사용할 알고리즘을 선택하여 객체로 만듭니다.
이 시점에서는 아직 아무것도 학습하지 않은 빈 모델입니다.

알고리즘 클래스명 용도
선형 회귀 LinearRegression() 연속값 예측 (가격, 온도 등)
로지스틱 회귀 LogisticRegression() 분류 (스팸/정상 등)
KNN KNeighborsClassifier() 유사도 기반 분류

2단계: 학습 (fit)

model.fit(X, y)

fit()은 머신러닝에서 가장 중요한 메서드입니다.

  • X: 입력 데이터 (문제지) — 반드시 2차원 배열이어야 합니다
  • y: 정답 데이터 (해답지) — 1차원 배열

이 과정에서 모델 내부의 가중치($w$)편향($b$)이 최적화됩니다.

# fit() 호출 전: w=?, b=? (모름)
# fit() 호출 후: w=10, b=0 (데이터에서 찾아냄)

왜 X는 2차원이어야 할까?

# 1차원: [1, 2, 3] → 데이터가 3개인지, 특성이 3개인지 모호
# 2차원: [[1], [2], [3]] → "1개의 특성을 가진 데이터가 3개" 라고 명확

실무에서는 특성이 여러 개인 경우가 대부분입니다:

# 특성 2개 (기온, 습도) x 데이터 3개
X = [[20, 70], [25, 80], [30, 85]]

3단계: 예측 (predict)

pred = model.predict([[4]])

학습된 규칙($y = 10x + 0$)을 새로운 데이터에 적용합니다.

  • 입력 [[4]]에 대해 $10 \times 4 + 0 = 40$을 계산
  • 역시 2차원 배열로 입력해야 합니다
# 하나만 예측
model.predict([[4]])        # 결과: [40.]

# 여러 개 동시 예측
model.predict([[4], [5]])   # 결과: [40., 50.]

전체 흐름 요약

[데이터 준비]
X = [[1], [2], [3]]   ← 문제지
y = [10, 20, 30]      ← 해답지
       ↓
[1. 모델 생성]
model = LinearRegression()   ← 빈 학생
       ↓
[2. 학습 (fit)]
model.fit(X, y)              ← 문제 풀며 공부
       ↓
[3. 예측 (predict)]
model.predict([[4]])         ← 새 문제에 답하기 → 40

학습 결과 확인하기

# 모델이 찾아낸 가중치(기울기)
print(f"가중치(w): {model.coef_[0]}")       # 10.0

# 모델이 찾아낸 편향(y절편)
print(f"편향(b): {model.intercept_}")       # 0.0
  • coef_: coefficient(계수)의 약자. 각 특성의 가중치 배열
  • intercept_: y절편(편향) 값
  • 속성 뒤의 언더바(_)는 Scikit-learn의 관례로, "학습을 통해 얻어진 값"임을 표시합니다

핵심 정리

메서드 역할 비유
LinearRegression() 알고리즘 선택 학생 배정
fit(X, y) 데이터로 학습 문제집으로 공부
predict(X_new) 새 데이터 예측 시험 보기
coef_ 학습된 가중치 공부해서 얻은 지식
intercept_ 학습된 편향 기본 상식

생성 → 학습 → 예측 패턴은 Scikit-learn의 모든 모델에서 동일하게 적용됩니다.
선형 회귀를 마스터하면 다른 알고리즘도 같은 방식으로 사용할 수 있습니다.