python library

기본 지도 학습 알고리즘 : 선형 회귀(Linear Regression)

2021. 11. 4. 12:36
목차
  1. 선형 회귀란?
  2. 용어 정리
  3. 가설 함수 표현법
  4. 1. 가설 함수 평가법 : 평균 제곱 오차 (MSE. Mean Squared Error)
반응형

선형 회귀란?

- 종속 변수 y와 한개 이상의 독립 변수 (또는 설명 변수) X와의 선형 상관 관계를 모델링하는 회귀 분석 기법이다. 즉, 최적선(line of best fit)을 찾는 것이 중요하다.

 

 

용어 정리

  • 목표 변수 (target variable or output variable) : 우리가 맞추려고 하는 값.
  • 입력 변수 (input varaible) : 목표 변수를 맞추기 위해서 사용하는 값. ex) 집의 크기(평수)로 가격을 예측하려 한다면, 입력 변수(집 크기), 목표 변수(집 가격)
  • 가설 함수 (hypothesis funciton) : 최적선을 찾아내기 위해 다양한 함수를 시도하는데, 시도하는 함수 하나하나를 가설 함수라고 부른다
  • 손실 함수 (loss function) : 어떤 가설 함수를 평가하기 위한 함수. 손실 함수의 아웃풋이 작을수록 가설 함수의 손실이 적기 때문에 더 좋은 가설 함수라고 할 수 있고, 반대로 손실 함수의 아웃풋이 클수록 가설 함수의 손실이 큰 거기 때문에 더 나쁜 가설 함수라고 할 수 있다.                                                                                           즉, 특정 가설 함수의 평균 제곱 오차가 크면 이 손실 함수의 아웃풋이 크다는 거고, 그러면 손실이 크기 때문에 안 좋은 가설 함수라는 것이다. 반대로 가설 함수의 평균 제곱 오차가 작으면 이 손실 함수의 아웃풋이 작다는 거고, 그러면 손실이 적기 때문에 좋은 가설 함수인 것이다. (.J라는 문자로 주로 표현함.)

 

가설 함수 표현법

집의 가격을 찾아내는 가설 함수를 찾는다고 가정하자. 하지만 사실 생각해 보면 집 가격을 예측하는 데, 집의 크기 말고도 영향을 끼치는 요소가 굉장히 많다. 그걸 다 반영하려면 결국 우리는 입력 변수가 여러 개가 될 것이다.

 

입력 변수가 많아지면 : 문자가 너무 많아져서 헷갈린다.

 

따라서, 좀 더 일관성 있도록 표현하기 위해

이렇게 표현한다. 선형 회귀의 목적은 가장 적절한 세타 값들을 찾아내는 것이다.

 

 

1. 가설 함수 평가법 : 평균 제곱 오차 (MSE. Mean Squared Error)

MSE : 데이터들과 가설 함수가 평균적으로 얼마나 떨어져 있는지 나타내기 위한 하나의 방식. 각 데이터마다 오차를 구한 뒤, 오차를 제곱하고, 제곱한 값들을 모두 더한 것에서 총 데이터 개수 만큼 나눈다.

        제곱을 하는 이유는 양수, 음수를 모두 양수로 표현하기 위함과 오차를 더 부각시키기 위해서이다. ( 오차가 커질수록 더 부각됨)

        평균 제곱 오차가 작은 것을 찾는 것이 목적.

MSE 공식

 

 

 

▷ 경사 하강법 (gradient descent)

  • 기본 개념 : 함수의 기울기를 구하고 기울기의 절댓값이 낮은 쪽으로 계속 이동시켜 극값에 이를 때 까지 반복시키는 것
  • 편미분 개념이 사용된다.

예) 변수가 2개 있을 때. 

이후 손실 함수 J를 대입한 뒤 편미분 계산을 수행한다.

 

 

 

반응형

'python library' 카테고리의 다른 글

Pandas  (0) 2021.11.19
Jupyter Notebook 기본  (0) 2021.11.18
numpy : A matrix Library in python (2차원 배열)  (0) 2021.10.28
numpy 기초(1차원 배열)  (0) 2021.10.28
  1. 선형 회귀란?
  2. 용어 정리
  3. 가설 함수 표현법
  4. 1. 가설 함수 평가법 : 평균 제곱 오차 (MSE. Mean Squared Error)
'python library' 카테고리의 다른 글
  • Pandas
  • Jupyter Notebook 기본
  • numpy : A matrix Library in python (2차원 배열)
  • numpy 기초(1차원 배열)
나른한 찰리
나른한 찰리
반응형
나른한 찰리
Moojun's Storage
나른한 찰리
전체
오늘
어제
  • 분류 전체보기 (83)
    • 포트폴리오 스프링 부트 프로젝트 (1)
    • 멘질멘질] 2023 졸업 프로젝트 (16)
    • 학부연구생 (5)
    • Spring Boot (17)
      • Test Code (10)
    • Amazon Web Services(AWS) (3)
    • Ubuntu Server (1)
    • RDB (6)
    • git (1)
    • 오류 (9)
    • MacOS (4)
    • python library (5)
    • 기타 (8)
    • 프로그래밍 도서 (4)
      • 클린 코드(로버트 마틴) (4)
    • 코딩 테스트 (3)
      • 프로그래머스 (3)
    • 회고 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • pandas#dataframe
  • 우분투#ubuntu#mysql#mysql설치#mysql오류

최근 댓글

최근 글

hELLO · Designed By 정상우.
내 관리 화면으로 이동
나른한 찰리
기본 지도 학습 알고리즘 : 선형 회귀(Linear Regression)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.