티스토리 뷰

728x90
반응형

학습 목표

  • 선형 회귀 알고리즘의 개념과 원리를 이해한다.
  • 단순 선형 회귀와 다중 선형 회귀의 차이를 학습한다.
  • Python을 사용하여 선형 회귀를 구현하고 결과를 분석한다.

1. 선형 회귀란 무엇인가?

**선형 회귀 (Linear Regression)**는 입력 변수와 출력 변수 사이의 관계를 직선으로 표현하여 예측하는 알고리즘입니다.

1.1. 특징:

  • 연속형 데이터를 예측하는 데 사용됩니다.
  • 데이터를 가장 잘 설명하는 직선을 찾습니다.
  • 공식:
    • 단순 선형 회귀:
      • : 출력 (예측값)
      • : 입력 (독립 변수)
      • : 기울기 (slope)
      • : 절편 (intercept)
    • 다중 선형 회귀:

1.2. 사용 사례:

  • 집값 예측 (면적에 따른 가격)
  • 광고비에 따른 매출 예측
  • 학생 공부 시간에 따른 시험 점수 예측

2. 선형 회귀의 동작 원리

  1. 가설 설정: 형태의 모델을 가정합니다.
  2. 오차 계산:
    • 오차(Residual) = 실제 값 - 예측 값
  3. 비용 함수 (Cost Function):
    • 평균 제곱 오차(MSE, Mean Squared Error)를 사용하여 모델의 정확도를 측정.
  4. 최적화:
    • 경사 하강법(Gradient Descent)을 사용하여 비용 함수의 값을 최소화.

3. Python으로 선형 회귀 구현하기

3.1. 코드 예제

# 필요한 라이브러리 가져오기
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split

# 데이터 생성
x = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)  # 공부 시간
y = np.array([2, 4, 5, 4, 5])  # 시험 점수

# 데이터 분리 (훈련 데이터와 테스트 데이터)
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=42)

# 모델 생성 및 학습
model = LinearRegression()
model.fit(x_train, y_train)

# 예측
y_pred = model.predict(x_test)

# 시각화
plt.scatter(x, y, color='blue', label='Actual Data')
plt.plot(x, model.predict(x), color='red', label='Regression Line')
plt.xlabel('Study Hours')
plt.ylabel('Scores')
plt.legend()
plt.show()

3.2. 코드 설명

  • 데이터 준비:
    • x는 입력 변수(공부 시간), y는 출력 변수(시험 점수)입니다.
    • train_test_split을 사용하여 데이터를 훈련용과 테스트용으로 나눕니다.
  • 모델 생성:
    • LinearRegression() 객체를 생성하고, fit 메서드로 데이터를 학습시킵니다.
  • 예측 및 시각화:
    • 학습된 모델로 테스트 데이터를 예측하고, 결과를 실제 데이터와 비교하여 시각화합니다.

4. 학습 활동

활동 1: 손으로 계산해보기

  • 데이터를 , 로 가정하고, 기울기 와 절편 를 계산해 보세요.

활동 2: 다중 선형 회귀 실습

  • 다중 입력 변수(예: 공부 시간, 수업 참여도)를 포함한 데이터를 생성하여 모델을 학습해 보세요.

활동 3: 토론 질문

  • "선형 회귀는 모든 데이터에 적합할까요?"에 대해 가족이나 친구와 이야기해 보세요.

5. 퀴즈 (복습)

  1. 선형 회귀란 무엇인가요?
  2. 단순 선형 회귀와 다중 선형 회귀의 차이점은 무엇인가요?
  3. 선형 회귀에서 평균 제곱 오차(MSE)의 역할은 무엇인가요?

6. 추가 학습 자료


7. 오늘의 학습 정리

  • 선형 회귀는 연속형 데이터를 예측하기 위한 머신러닝 알고리즘입니다.
  • 단순 선형 회귀와 다중 선형 회귀의 개념을 이해하고 Python으로 구현했습니다.
728x90
반응형
LIST
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함
반응형