인공지능 머신러닝 - 단순 선형 회귀 모델(Simple Linear Regression)

선형 회귀(Linear Regression)

  • 종속 변수 y와 한 개 이상의 독립 변수 X와의 선형 상관 관계를 모델링하는 회귀 분석 기법
    • 독립 변수가 한개면 단순 선형 회귀, 두개 이상이면 다중 선형 회귀
  • 데이터를 수집해 분포를 만족하는 직선을 찾으려하는 것
    • 알려지지 않은 파라미터는 데이터로부터 추정 

<선형 회귀 그래프 예시> 경력에 따른 급여

  • 선형 회귀 함수는 직선이기 때문에 일차 함수로 표현
    • y= ax + b (a=기울기, b=절편)
  • 값의 추정 방법으로는 일반적으로 최소제곱법(OLS:Ordinary Least Squares) 사용
    • 다른 기법으로도 선형 회귀 모델링 가능
    • 최소제곱법이 가장 단순하고 계산이 간단해서 많이 사용
    • 최소제곱법을 사용하여 예측된 값이 제곱의 합을 최소화하는 것을 목표
    • 최소제곱법의 종류
SSE(Sum of Squares Error) 제곱의 합
MSE(Mean Squared Error) 제곱의 합의 평균
MAE(Mean Absolute Error) 절대값의 합의 평균
RMSE(Root Mean Squared Error) 제곱의 합의 평균에 루트를 씌운 값

선형 회귀를 사용하는 이유

  • 알려지지 않은 파라미터에 대해 선형 관계를 갖는 모델을 세우는 것이 비선형 관계를 갖는 모델을 세우는 것보다 용이하기 때문

선형 회귀 모델링

  • 선형 예측함수를 사용하여 알려지지 않은 파라미터는 데이터로부터 추정하는 것

라이브러리 호출

from sklearn.linear_model import LinearRegression
# 선형 회귀 라이브러리 호출

from sklearn.model_selection import train_test_split
# 데이터셋 분리를 위한 라이브러리 호출

from sklearn.metrics import confusion_matrix
# 성능 검사를 위한 라이브러리 호출

인공지능 학습

  • 학습 : 모든 관측점(Observation)에서의 y값의 오차(error)가 존재하고, 이 오차들의 총 합을 줄여 나가는 과정
  • regressor = LinearRegression() : 인공지능 regressor 생성(모델링)
  • regressor.fit(X_train, y_train) : 학습 데이터를 대입하여 인공지능 학습
    • 주의 : 인공지능 학습하는 함수인 fit함수는 2차원으로 넣어야 동작
  • 예시에 쓰일 X, y 데이터
    • X는 학습시킬 데이터이므로 2차원 배열로 변경
    • y는 결과값이므로 2차원 배열로 변경 할 필요 없음

 

1. 피처 스케일링(전처리)

  • 선형 회귀(Linear Regression) 라이브러리는 자체 피처 스케일링
  • 따라서 별도의 과정을 거치지 않고 데이터 바로 사용 가능

 

2. 학습용 데이터와 테스트용 데이터 분리 (train_test_split) 

 

3. 인공지능 생성 후 학습 (모델링)

 

4. 인공지능 성능 테스트

 

  • 보기 편하게 표로 작성

파란선이 실제 값, 주황선이 예측 값

 

5. 오차 확인