강의자료 · 머신러닝의 이해

Linear Regression

학습 목표

관측 범위를 벗어난 예측과 이상값이 회귀식에 미치는 영향을 확인합니다.

직선 모델과 오차

시작 조건

x=[012345]x=\begin{bmatrix}0&1&2&3&4&5\end{bmatrix}, y=[13.24.87.18.911.2]y=\begin{bmatrix}1&3.2&4.8&7.1&8.9&11.2\end{bmatrix}입니다. 모델은 y_hat=w*x+b입니다.

진행 방법

  1. w=2,b=1b=1인 예측·잔차·MSE를 구하세요.
  2. np.linalg.lstsq로 구한 w,b와 기준 모델을 같은 표에서 비교하세요.

남길 결과

import numpy as np
import matplotlib.pyplot as plt
x=np.arange(6.);y=np.array([1,3.2,4.8,7.1,8.9,11.2]);X=np.c_[x,np.ones_like(x)]
coef=np.linalg.lstsq(X,y,rcond=None)[0]
print(coef)

결과 기록·자가 점검

모델:

w:

b:

MSE:

x=6x=6 예측:

확인할 점

한 표본의 영향

시작 조건

마지막 y를 18로 바꾼 자료를 만들고 계수·MSE·x=6x=6 예측의 변화를 비교합니다.

진행 방법

  1. x는 유지하고 마지막 y만 18로 바꾼 복사본을 만드세요. 원래 자료와 변경 자료 각각에 np.linalg.lstsq를 적용하세요.
  2. 두 모델의 w,bw,b, 각자가 학습한 자료에서의 MSE, x=6x=6의 예측을 두 행으로 적으세요. 원래 점·변경한 점·두 예측 직선도 같은 축에 표시하세요.
  3. 한 표본의 변경이 계수와 새 입력의 예측에 어떻게 반영되었는지 표와 그림을 근거로 설명하세요.

남길 결과

y2=y.copy();y2[-1]=18

결과 기록·자가 점검

학습 자료:

w·b:

MSE:

x=6 예측:

확인할 점

다른 입력에서도 확인하기

시작 조건

x∈{6,8,10}x\in\{6,8,10\}에서의 예측을 그리고 관측 범위 안의 예측과 구분합니다.

진행 방법

  1. 앞에서 학습한 두 모델에 x∈{6,8,10}x\in\{6,8,10\}을 대입해 예측값을 계산하세요. 두 모델의 예측을 같은 표에 적으세요.
  2. 기존 관측 구간과 새 세 입력이 보이는 범위에 예측 직선을 그리고, 관측점과 새 예측점을 다른 기호로 표시하세요. 새 입력의 정답 대신 예측값과 관측 구간 포함 여부를 기록합니다.
  3. 관측 구간 밖으로 갈수록 두 모델의 예측 차이가 어떻게 바뀌는지 설명하세요.

남길 결과

# 앞 활동의 데이터와 함수를 사용해 지정된 새 예제를 검사하세요.

결과 기록·자가 점검

새 입력 x:

원래 자료의 모델 예측:

변경 자료의 모델 예측:

관측 범위 포함 여부·두 예측의 차이:

확인할 점