import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# 예제 데이터 생성
X = np.array([[1], [2], [3], [4], [5]]) # 입력값
y = np.array([2, 4, 5, 4, 5]) # 실제 출력값
# 모델 생성 및 학습
model = LinearRegression()
model.fit(X, y)
# 예측 수행
y_pred = model.predict(X)
# 결과 출력
print("기울기(m):", model.coef_)
print("절편(b):", model.intercept_)
print("MSE:", mean_squared_error(y, y_pred))
print("R²:", r2_score(y, y_pred))
✅ 회귀 분석 요약
🔹 개념
- 회귀 분석은 한 변수(예: 판매량)가 다른 변수(예: 사용자 수)에 따라 어떻게 변하는지를 분석하는 기법.
- 목적: 연속적인 값을 예측 (ex: 주가, 온도, 질병 진행도 등)
- 범주형 값 예측은 다음 주에 다룰 **분류(classification)**의 영역.
🔹 회귀 분석의 종류
- 선형 회귀 (Linear Regression)
- y = mx + b 형태
- 다중 선형 회귀 (Multiple Linear Regression)
- y = m1x1 + m2x2 + ... + mNxN + b
- 다항 회귀 (Polynomial Regression)
- y = m1x + m2x² + ... + mNxⁿ + b
🔹 평가 방법 (회귀 모델 성능 측정)
- MSE (Mean Squared Error): 평균 제곱 오차
- MAE (Mean Absolute Error): 평균 절대 오차
- RMSE (Root Mean Squared Error): 평균 제곱근 오차
- R² (결정계수): 예측력 평가 지표 (1에 가까울수록 좋음)
🔹 Python에서 사용하는 주요 패키지
패키지기능 요약
NumPy | 수치 연산, 배열 처리 |
SciPy | 고급 수학, 최적화 |
Pandas | 테이블 데이터 처리 |
Matplotlib | 시각화 |
Scikit-Learn | 머신러닝 구현용 대표 라이브러리 |
✅ 실습 과제 요약
- 선형 회귀 예제 실행 및 결과 제출
- 다중 선형 회귀 + 성능 평가 (MSE, MAE, RMSE, R²)
💻 예시 코드 (OCR 변환 예제 및 설명)
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# 예제 데이터 (입력: X, 출력: y)
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 5, 4, 5])
# 모델 정의 및 학습
model = LinearRegression()
model.fit(X, y)
# 예측
y_pred = model.predict(X)
# 성능 평가
mse = mean_squared_error(y, y_pred)
rmse = np.sqrt(mse) # RMSE 직접 계산
r2 = r2_score(y, y_pred)
# 결과 출력
print("기울기 (slope):", model.coef_[0])
print("절편 (intercept):", model.intercept_)
print("MSE:", mse)
print("RMSE:", rmse)
print("R²:", r2)
📌 설명:
- LinearRegression()으로 선형 회귀 모델을 정의하고 .fit(X, y)로 학습.
- predict()로 예측 결과를 얻고, mean_squared_error()와 r2_score()로 성능 평가.
필요하면 위 코드를 다중 회귀나 다항 회귀로 확장한 예제도 만들어줄 수 있어. 추가로 궁금한 개념이나 코드 흐름 있어?
나의 말:
성능평가예제인 RMSE도 추가해줘 여기서 요구하는거
ChatGPT의 말:
좋아! 문서에서 실습과제에 명시된 것처럼 RMSE (Root Mean Squared Error) 도 성능평가 항목으로 꼭 추가해야 돼.
아래는 기존 예제에 RMSE 계산을 포함한 완성된 성능 평가 코드야.
✅ RMSE 포함 선형 회귀 예제 (실습 제출용)
🧠 해설
- MSE는 오차의 제곱 평균이라 값이 클 수 있음.
- RMSE는 MSE의 제곱근으로, 실제 오차 단위를 반영해 해석이 더 직관적.
- R²는 모델의 설명력. 1에 가까울수록 예측 성능이 좋음.
반응형