Justweon
Justweon
Justweon
전체 방문자
오늘
어제
  • 분류 전체보기 (70)
    • 웹 개발 (2)
      • React (0)
      • Spring (0)
    • 모바일 앱 프로그래밍 (4)
    • 네트워크 프로그래밍 (17)
      • C (17)
    • DATA (42)
      • 데이터 사이언스 (6)
      • 머신 러닝 (31)
      • 데이터베이스 (2)
      • 기타 (3)
    • 토이 프로젝트 (0)
      • 닮은 배우 분류기 (0)
      • PDF 변환기 (GUI) (0)
    • 취미 (1)
      • Photoshop (1)
      • 먹부림 (0)
    • 이것저것 (2)
    • 보안 (1)
      • 드림핵 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 맛집
  • 알고리즘
  • 머신 러닝
  • 포토샵
  • 데이터 사이언스
  • 심층 신경망
  • 정규화
  • 하이퍼 파라미터
  • 코랩
  • 시각화
  • pandas
  • 콜백
  • 텐서보드
  • 데이터 전처리
  • 취미
  • 과소적합(underfitting)
  • tensorflow
  • 샐러드
  • SVM
  • 경사 하강법
  • MLP
  • 모델 평가
  • 하이퍼파라미터
  • GUI
  • 그리드 서치
  • 과대적합(overfitting)
  • 프로젝트
  • keras
  • 파이썬
  • 토이프로젝트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Justweon

Justweon

DATA/머신 러닝

[머신 러닝] 다항 회귀 (Polynomial Regression)

2022. 1. 4. 12:18

다항 회귀

입력 변수와 목표 변수의 관계를 여태 직선으로 나타냈는데,
사실 그 관계를 가장 잘 나타내는 게 직선이 아닐 수도 있습니다.

단일 속성 다항 회귀

다항 회귀도 두 가지로 나뉘는데,
속성이 하나인 경우랑 속성이 많은 경우입니다.

 

속성이 많으면 다중 다항 회귀라고 하는데,
우선 간단하게 속성이 하나인 경우부터 보겠습니다.

 

가설 함수가 이차 함수라면 아래와 같이 쓸 수 있습니다.

 

\[ h_{\theta}(x) = \theta_{0} + \theta_{1}x + \theta_{2}x^{2} \]

 

선형 회귀를 할 때랑 마찬가지로 할 일은
학습 데이터에 잘 맞는 \(\theta\)를 찾는 것입니다.

 

그런데 위 식은 \( h_{\theta}(x) = \theta_{0} + \theta_{1}x_{1} + \theta_{2}x_{2} \) 비슷하게 다룰 수 있습니다.
아래 식은 입력 변수가 두 개인 다중 선형 회귀 가설 함수이고,
위 식은 2차항 회귀 가설 함수인데,
\(x\)와 \(x_{1}\), \(x^{2}\)과 \(x_{2}\)를 똑같이 취급할 수 있다면 사실상 같은 형태라고 볼 수 있습니다.

 

예를 들어, 아래와 같은 데이터가 있다면,

집 크기 집 가격
10 1
20 3
30 5
25 3.5
15 1

가상의 열을 추가해서 입력 변수가 두 개인 것처럼 바꿔보겠습니다.

집 크기 집 크기2 집 가격
10 100 1
20 400 3
30 900 5
25 625 3.5
15 225 1

이렇게 바꿔준다면 이 데이터를 입력 변수가 두 개인 것처럼 다룰 수 있습니다.

다중 다항 회귀

입력 변수가 여러 개일 때 다항 회귀를 하면 다중 다항 회귀라고 합니다.

 

아래와 같은 데이터가 있을 때,

x1 x2 x3 y
10 1 1 1
20 2 0.5 3
30 3 0.3 5
25 3 1 3.5
15 2 3 1

다중 다항 회귀를 2차항 회귀 가설 함수를 이용해서 한다면,
나올 수 있는 모든 2차항 컬럼을 새로 추가해주면 됩니다.

 

위의 데이터에서는 나올 수 있는 2차항이
x1x2, x2x3, x3x1, x12, x22, x32이므로 총 6개의 컬럼이 추가되므로
입력 변수가 9개인 다중 선형 회귀라고 생각해주면 됩니다.

다항 회귀의 힘

선형 회귀에서는 각 입력 변수들을 고려하긴 했지만 입력 변수들간의 관계는 고려하지 않았습니다.
그러나 다항 회귀에서는 입력 변수들간의 관계까지 고려하기 때문에 더 정확한 결과를 얻을 수 있습니다.

scikit-learn을 이용한 간단한 다항 회귀

'DATA > 머신 러닝' 카테고리의 다른 글

[머신 러닝] 더 빠르게, 더 정확하게  (0) 2022.01.06
[머신 러닝] 로지스틱 회귀 (Logistic Regression)  (0) 2022.01.05
[머신 러닝] 다중 선형 회귀 (Multiple linear regression)  (0) 2022.01.04
[머신 러닝] 선형 회귀 (Linear Regression)  (0) 2022.01.03
[머신 러닝] 머신 러닝이란?  (0) 2022.01.03
    'DATA/머신 러닝' 카테고리의 다른 글
    • [머신 러닝] 더 빠르게, 더 정확하게
    • [머신 러닝] 로지스틱 회귀 (Logistic Regression)
    • [머신 러닝] 다중 선형 회귀 (Multiple linear regression)
    • [머신 러닝] 선형 회귀 (Linear Regression)
    Justweon
    Justweon
    공부 목적을 위해 기록하는 블로그입니다 :)

    티스토리툴바