BuNa_
IT Story
BuNa_
전체 방문자
오늘
어제
  • 분류 전체보기 (117)
    • CS (14)
      • 운영체제 (8)
      • 네트워크 (0)
      • Design Pattern (1)
      • OOP (4)
    • 대외활동 (24)
      • 우아한테크코스 (14)
      • DND 동아리 (4)
      • UMC 동아리 (5)
      • 해커톤 (1)
    • Android (29)
      • MVVM (2)
      • 스터디 (11)
      • Compose (3)
      • Unit Test (1)
    • Project (5)
      • 어따세워 (5)
      • DnD 과외 서비스 (0)
    • Programming (11)
      • Kotlin (4)
      • 파이썬 (7)
    • Git (1)
    • 인공지능 (22)
    • 백준 (8)
    • 기타 (3)
      • IntelliJ (1)
      • 일상 (0)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • 어따세워
  • RecyclerView
  • 운영체제
  • Baekjoon
  • MVVM
  • 선형회귀
  • 원시값 포장
  • ViewModel
  • 다이나믹 프로그래밍
  • 인공지능
  • 셀레니움
  • 컴공선배
  • 인공지능 분류
  • External fragmentation
  • Ai
  • 객체지향 생활체조
  • 우테코 프리코스
  • 안드로이드
  • UMC
  • K-means
  • k-means++
  • 우테코
  • 우아한테크코스
  • 파이썬
  • 딥러닝
  • Android
  • Compose
  • 백준
  • 외부 단편화
  • 우테코 5기

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
BuNa_

IT Story

[인공지능][개념] 다항회귀(Polynomial Regression)와 다중선형회귀(Mutiple Linear Regression) + 규제(Regularization)에 대해 알아보자
인공지능

[인공지능][개념] 다항회귀(Polynomial Regression)와 다중선형회귀(Mutiple Linear Regression) + 규제(Regularization)에 대해 알아보자

2021. 5. 11. 19:09

 

 

다항회귀 (Polynomial Regression)


 

 

지난 글에서는 선형회귀 (Linear regression)에 대해 알아보고 실습까지 진행해보았다.

이번 시간에는 다항회귀와 다중선형회귀가 무엇인지와 이 둘의 차이에 대해 알아보도록 하자.

 

 

(그 전에, 선형회귀에 대해 잘 모르겠다면 이전 글을 참고하는 것을 추천한다.)

[인공지능] 선형회귀에 대해 알아보자(이론) : itstory1592.tistory.com/4

[인공지능] 선형회귀(Linear regression)를 이용하여 생선의 무게를 예측해보자 : itstory1592.tistory.com/5

 

 

[인공지능] 선형회귀(Linear Regression)에 대해 알아보자(이론)

선형회귀 (Linear Regression) 이번 글에서는, 선형회귀 (Linear Regression)에 대해 알아보려고 한다. 선형회귀란, 위 그래프를 보면 알 수 있듯이, x와 y의 선형관계를 구하는 것이다. x는 변수이므로 어떠

itstory1592.tistory.com

 

 

 

다항회귀(Polynomial Regression)란,

데이터를 표현함에 있어 선형이 아닌 곡선으로 나타나는 경우에 사용하는 회귀이다.

 

 

다항회귀에서의 3차방정식
데이터는 2차방정식, 3차방정식을 넘어서 더 복잡하게 표현될 수 있다.

 

 

단순히 비례관계로 표현된다면 너무나도 편하겠지만, 수많은 데이터를 표현할 때 그렇지 않은 경우가 더 많기 때문이다.

이러한 경우에 선택할 수 있는 회귀법이 바로 다항회귀라는 것이다.

다항회귀에서의 항은 차수(degree)를 뜻하는데 말 그대로 차수가 많다는 것을 의미한다.

 

 

'각각 차수가 4와 3인 방정식'

(여기서 차수는 방정식에서 변수가 몇 제곱인지를 표현할 때 사용하는 차수와 동일하다.)

 

차수(degree)를 높였을 때의 장점은 모델(model)이 기존의 모델보다 더 적은 오차를 만들어낸다는 점이다.

 

 

다중 선형회귀 그래프
생선 데이터의 그래프

(엄밀히 말하자면, 지난 시간에 생선 데이터를 표현한 그래프는 직선보다 2차방정식의 곡선과 더 유사하다고 볼 수 있다.)

 

 

그렇다면, 다항회귀는 어떻게 표현할 수 있을까?

 

머신러닝에서는 결과값(target)을 구하기 위한 입력 데이터를 특징(feature)이라고 표현한다.

이 전에 생선의 무게를 예측하기 위해 사용한 데이터는 생선의 길이였다.

생선의 길이는 우리가 입력 값으로 사용을 하였는데,

이는 다시 말해, 생선의 길이는 생선의 무게를 구하기 위한 하나의 특징(feature)이라고 말 할 수 있다.

 

우리는 이 생선의 길이라는 특징을 변형 시켜 다항으로 표현해내면 되는 것이다.

위에서 다항의 항은 차수를 의미한다고 설명하였다.

그렇다면 특징의 차수를 높여보면 되지 않을까?

 

이 글에서 예제는 생선의 길이가 특징(feature)이므로 이 특징을 이용하여 다항식으로 표현을 하면 된다.

방법은 매우 간단하다.

 

다항식으로 표현한 생선의 무게를 구하는 다항방정식

 

위의 식처럼, 생선의 길이에 차수를 부여하여 여러 특징을 만들어내면 된다.

차수가 1인 생선의 길이라는 단순한 특징을 제곱하여 또 다른 특징을 만들어낼 수 있게 되는 것이다.

여러분들이 누군가에게 무언가를 맞춰보라고 질문할 때, 한 가지 특징보다 여러가지 특징을 알려줬을 때 더 쉽게

정답(target)을 맞출 수 있는 것처럼 인공지능도 특징이 많으면 많을 수록 정답을 더 정확히 맞추게 된다고 생각하면 좋을 것 같다.

하지만, 너무 많은 차수를 사용한다면 오히려 과대적합(Overfitting)을 불러일으킬 수 있으니 주의하여야 한다.

이를 위해, 사이킷런(sklearn)에서는 과대적합을 막으면서 차수를 자동으로 적절히 조절할 수 있는 릿지(Ridge)와 라쏘(Lasso)라는 훌륭한 규제(regularization) 클래스를 제공한다.

 

여기서 규제(regularization)란, 과대적합을 막을 수 있도록 모델의 파라미터(Parameter)를 조정하는 것을 뜻한다.

('이 정도 차수면 충분해!' 라고 말해주는 느낌...)

 

이는 다음 시간에 진행할 실습을 통해 더 자세히 알아보겠다.

다음으로 다중 선형회귀에 대해 알아보자.

 

 

다중 선형회귀 (Multiple  Linear Regression)


 

다중 선형회귀와 다항회귀는 이름이 비슷하여, 이 둘을 헷갈릴 수가 있는데 전혀 그럴 필요가 없다.

(多項)다항의 항은 차수이므로, 항(차수)이 많은 회귀방법이라고 이해하면 되고,

다중 선형은 명칭 그대로, (여러개의)특징이 많은 회귀방법이라고 이해하면 편하다.

 

지금까지는 생선의 무게를 예측하기 위해, 생선의 길이라는 특징 하나만을 사용하였다.

그러나 만약, 생선의 길이가 아닌 생선의 종류를 맞춰보라고 한다면 과연 길이 하나만으로 맞출 수 있을까?

운이 좋다면 맞출 수 있겠지만, 그 정확도는 현저히 떨어질 것이다.

 

이런 상황에, 우리는 모델에게 정답을 맞추는데 도움이 될만한 생선의 (독립적인) 여러 특징을 알려주면 된다.

여기서 독립적이라는 말은 말 그대로 서로의 특징에 영향을 주지 않는 요소들을 뜻한다.

생선의 길이, 너비, 껍질 색깔 등등...

다중선형회귀도 다항회귀와 마찬가지로,

모델에게 특징 1개를 알려주는 것 보다 여러개를 알려주며 타겟(target)의 특징을 구체화하며 정확도를 높일 수 있다.

(사람에게 무언가를 맞춰보라고 알려줄 때에도, 특징 1개를 알려주며 맞추라는 것 보다

여러개를 알려주고 맞춰보라고 했을 때 맞출 확률이 더 높아지는 상황과 동일하다.)

 

 

이렇게 특징이 2개 이상인 선형회귀를 다중선형회귀라고 부르며,

특징이 1개일 때는 단일선형회귀 또는 그냥 선형회귀라고 부른다.

 

위에서 알아본 다항회귀와 다중선형회귀를 접목하여 모델을 구축하면 기존의 단일선형회귀보다

훨씬 높은 정확도를 가진 모델을 만들어낼 수 있을 것이다.

 

 


 

 

이번 시간에는, 다항회귀와 다중선형회귀 그리고 규제에 대해 간단히 알아보았다.

다음에는 실습을 통해 배운 내용들을 더 구체화하는 시간을 가져보겠다.

이 글만으로 잘 이해가 되지 않더라도, 직접 실습을 해본다면 단순히 글을 읽는 것보다 이해하는데에 큰 도움이 될 것이다.

 

 

 

(이해가 다소 힘들거나, 틀린 부분이 있다면 댓글 부탁드리겠습니다! 😊)

💖댓글과 공감은 큰 힘이 됩니다!💖

저작자표시 비영리 변경금지 (새창열림)

'인공지능' 카테고리의 다른 글

[인공지능][개념] 로지스틱 회귀(Logistic Regression)는 무엇이며, 시그모이드(Sigmoid) 함수는 왜 사용하는 것일까?  (3) 2021.05.13
[인공지능][실습] 다항회귀(Polynomial Regression)와 다중선형회귀(Mutiple Linear Regression)를 활용하여 생선의 무게를 예측해보자  (1) 2021.05.12
[인공지능][실습] 선형회귀(Linear regression)를 이용하여 생선의 무게를 예측해보자  (4) 2021.05.10
[인공지능][개념] 선형회귀(Linear Regression)에 대해 알아보자  (1) 2021.05.10
[인공지능] 싸지방 코딩 학습주제 정하기  (6) 2021.05.07
    '인공지능' 카테고리의 다른 글
    • [인공지능][개념] 로지스틱 회귀(Logistic Regression)는 무엇이며, 시그모이드(Sigmoid) 함수는 왜 사용하는 것일까?
    • [인공지능][실습] 다항회귀(Polynomial Regression)와 다중선형회귀(Mutiple Linear Regression)를 활용하여 생선의 무게를 예측해보자
    • [인공지능][실습] 선형회귀(Linear regression)를 이용하여 생선의 무게를 예측해보자
    • [인공지능][개념] 선형회귀(Linear Regression)에 대해 알아보자
    BuNa_
    BuNa_
    안드로이드 개발자를 향해 달리고 있는 공대생입니다! 🧑 Android, Kotlin, Java, Python 등 학습하고 있는 내용과 프로젝트를 주로 업로드하고 있습니다. 지적과 조언은 언제나 환영입니다!😊 github : https://github.com/tmdgh1592

    티스토리툴바