[Python] 선형회귀 개념 및 Scikit-learn으로 회귀 모델 분석하기

Sophie·2024년 11월 20일
post-thumbnail

1. 선형회귀 개념

1-1. 선형회귀란

  • 독립변수 X 와 종속변수 Y 간의 관계를 직선으로 모델링하는 방법으로 '독립변수로 종속변수를 예측하는 분석기법' 이다. 주어진 데이터셋을 가장 잘 설명하는 추세선을 찾는 것이 분석의 목적이다.
  • 회귀계수의 선형여부, 독립변수의 개수, 종속변수의 개수에 따라 여러 유형으로 나누어지는데 그 중 가장 기본적인 1개 독립변수로 1개 종속변수를 예측하는 경우를 '단순 선형 회귀'라고 한다.

  • 용어정리
    • 독립변수 : X, 원인이 되는 변수, 설명 변수
    • 종속변수 : Y, 결과 변수, 예측하고자 하는 값
    • 선형회귀 식
      Y=β0+β1X+εY = \beta_0 + \beta_1X + \varepsilon
    • β0\beta_0: 편향(Bias)
    • β1\beta_1: 회귀 계수
    • ε\varepsilon: 오차(에러), 모델이 설명하지 못하는 Y의 변동성
  • 머신러닝/딥러닝에서 사용하는 선형회귀 식

    Y=wX+bY = wX + b
    • ww: 가중치
    • b: 편향(Bias)
  • 두 가지 표현의 회귀식은 오차항 포함 여부를 제외하고는 동일한 의미이다. (오차항을 제외한다고 했을 때) 회귀계수 (β1\beta_1) 또는 가중치 (ww) 를 알면 X가 주어졌을 때 Y를 알 수 있다.

  • 예시
    예를 들어, 몸무게와 키의 관계에 대해 선형회귀 식이 y = 0.86x + 109.37 이라면 이는 1kg 증가할 때마다 키가 0.86 cm 증가한다는 것으로 해석할 수 있다.

1-2. 선형회귀 평가지표

  • MSE (Mean Squared Error)

    • 에러 정의방법
      • 1) 에러 = 실제 데이터 - 예측 데이터
        • ε=yiyi^\varepsilon = y_i - \hat{y_i}
      • 2) 에러를 제곱하여 모두 양수로 만든 후 모두 합
        • i=1n(yiyi^)2\sum\limits_{i=1}^n (y_i - \hat{y_i})^2
      • 3) 데이터만큼 나누기
        • i=1n(yiyi^)2n\frac{\sum\limits_{i=1}^n (y_i - \hat{y_i})^2}{n}
      •  MSE=i=1n(yiyi^)2n\ MSE = \frac{\sum\limits_{i=1}^n (y_i - \hat{y_i})^2}{n}
    • 예측 문제는 모델의 MSE 지표를 최소화하는 방향으로 진행 및 평가한다.
  • 기타 평가 지표

    • RMSE: MSE에 Root를 씌워 제곱 된 단위를 다시 맞추기
      RMSE=i=1n(yiyi^)2nRMSE = \sqrt{\frac{\sum\limits_{i=1}^n (y_i - \hat{y_i})^2}{n}}
    • MAE: 절대 값을 이용하여 오차 계산하기
       MAE=1ni=1nyiyi^\ MAE = \frac{1}{n}\sum\limits_{i=1}^n{\left\vert y_i - \hat{y_i} \right\vert}
  • R Square

    • R 제곱은 결정계수라고도 불리며, 회귀 모델의 설명량을 평가하는 데 중요한 통계적 지표이다.

    • 전체 모형에서 회귀선으로 설명할 수 있는 정도를 뜻한다.

    • 이는 종속 변수의 변동성 중 독립 변수로 설명할 수 있는 비율을 나타낸다.

    • R 제곱은 상관계수 r을 제곱하여 계산할 수 있고, SSR을 SST로 나눈 값으로 계산된다.

      • 구체적인 SSR, SST의 지표 설명은 아래 용어 정리 참조
    • 용어 정리

      • yiy_{i}: 특정 데이터의 실제 값

      • yˉ\bar{y}: 평균 값

      • y^\hat{y}: 예측 값, 추정한 값

      • SSR: Reression Sum of Squares

        • 제곱합 회귀
        • 회귀모델에 의해 예측된 종속변수의 값과 관찰된 종속변수의 평균값 사이의 차이를 제곱한 후, 각 모든 데이터 포인트들의 이 차이의 제곱을 합한 값이다.
      • SSE: Error Sum of Squares

        • 제곱합 오차
        • 관찰된 종속변수의 값과 회귀모델에 의해 예측된 종속변수의 차이를 제곱한 후, 각 모든 데이터 포인트들에 대해 이 차이의 제곱을 합한 값이다.
      • SST: Total Sum of Squares

        • 총 제곱합

        • 관찰된 종속변수의 각 값과 해당 변수의 평균값 사이의 차이를 제곱한 후, 모두 합한 값이다. 앞서 위의 2가지 지표를 총합한 값이다.

        • 즉, SST는 SSR과 SSE로 구성된다. 식으로는 아래와 같다.

           SST=SSR+SSE\ SST = SSR + SSE

    • R Square 수식 정의

      • 최종적으로, SST, SSR, SSE를 사용하여 아래와 같은 식의 결정계수가 계산된다.

        R2=SSRSST=SSRSSR+SSE\R^2 = \frac{SSR}{SST} = \frac{SSR}{SSR+SSE}

      • R 제곱의 값은 0에서 1까지 가능하다.

        • R2=0\R^2 = 0 이라면, 회귀모델이 종속변수의 변동성을 전혀 설명하지 못한다는 의미이다.
        • R2=1\R^2 = 1이라면, 회귀모델이 종속변수의 변동성을 완벽하게 설명한다는 의미이다.

2. Python Scikit-learn 회귀 모델 분석

Data Science Python library 활용 실습

  • 라이브러리 불러오기

  • 선형회귀 모델 불러온 후, 모델 적합

    • 데이터 불러오기
      - 샘플 데이터셋 : seaborn - 'tips'

    • 선형회귀 모델 적합

  • Scatter Plot

  • 평가


0개의 댓글