[TIL] Linear Regression

woooa·2021년 10월 18일
0

TIL

목록 보기
16/34
post-thumbnail

선형 회귀(Linear Regression)

선형 회귀는 머신러닝 중 지도 학습(Supervised Learning)의 한가지다. 선형 회귀는 일차함수의 개념인 y = ax + b의 직선을 임의로 그려놓고, 그 직선을 바탕으로 예측하는 것이다.

독립변수가 증가하고, 종속 변수도 증가한다면 위의 그림의 검은 점선처럼 선의 오른쪽 끝이 위로 올라가 있다면 양(positive)의 관계라고 한다.

독립변수가 감소하고 종속 변수가 증가한다면 음(Negative)의 관계라고 하며 위의 그림에서 남색 실선처럼 오른쪽 끝이 내려가 있다.

조금 더 이해를 쉽게 하기 위해서 예를 들자면, 독립변수를 공부 시간으로 두고 종속 변수를 성적으로 둔다면 이해하기가 더 쉽다. 독립변수에 따라서 종속 변수가 변하므로, 아래 그래프처럼 공부를 많이 할수록 좋은 성적을 얻을 수 있을 것을 예측할 수 있다.



y = b₀ + b₁x의 값을 구하는 법


이제 임의로 데이터를 생성해서 y = b₀ + b₁x에 대한 값을 구해보려고 한다.

먼저 (x,y)의 좌표를 그래프에 찍은 뒤, x와 y의 평균을 구해준다.
평균을 구해준 뒤에는 x는 x의 각 요소에서 x의 평균을 빼고, y는 y의 각 요소에서 y의 평균을 빼준다.

그 다음으로 각 축에 수직으로 x의 평균, y의 평균에 대한 선을 추가해준 뒤, x의 평균과 y의 평균이 교차하는 지점(3, 4)을 표시한다.

그리고 그 지점을 지나가는 선을 그려준다. 그 선의 수식은 아래와 같다.

y = b₀ + b₁x

다음으로 x의 각 요소에서 x의 평균을 뺀 것을 제곱해 주고 그 합을 구한다. 이건 b₁의 분모가 될 값이다. 그리고 x의 각 요소에서 x의 평균을 뺀 것과 y의 각 요소에서 y의 평균을 뺀 값을 서로 곱해주면 그 값이 바로 b₁의 분자가 되는 값이다.

이제 y = b₀ + b₁x에서 x,y,b₁의 값을 대입해주면 다음과 같이 된다.

4 = b₀ + (0.6)3

해당 식을 계산해보면 아래와 같이 된다.

4 - 1.8 = b₀
2.2 = b₀

결론적으로 y = b₀ + b₁x의 값들은 다음과 같이 구해졌다.

x,y = (3, 4)
b₀ = 2.2, b₁= 0.6

Classification vs Regression

지도 학습(Supervised Learning)은 총 두가지로 분류할 수 있는데 바로 선형 회귀(Regression)와 통계적 분류(Classification)이다.

선형 회귀와 통계적 분류는 크게 세가지 차이점이 있다.

1. Output type

통계적 분류는 출력 타입이 discrete(class labels)이지만 선형 회귀는 출력 타입이 continuous(number)로 서로 다르다.

2. What are you trying to find?

통계적 분류는 decision boundary 즉 기준으로 점이 따라오는 위치에 따라서 class labels을 할당할 수 있게 되고, 선형 회귀의 경우엔 "최적의 선"을 찾게 된다.

3. 평가 방법

통계적 분류는 accuracy로 평가할 수 있지만 선형 회귀는 제곱 오차의 합(sum of squared error) 혹은 r² (r squared)로 평가할 수 있다.

기준 모델

기준 모델은 예측 모델을 본격적으로 만들기 전에 가장 간단하고 직관적이면서 최소한의 성능을 나타내는 기준이 되어주는 모델이다. 내가 만든 모델과 기준 모델을 비교했을 때, 기준 모델보다 성능이 좋지 않다면 내가 만든 모델은 폐기 처분해야한다.
예를 들어서, "내가 걔보다 잘할거야.좋은 성적을 얻을거야." 에서 나는 내가 만든 모델이 되고, 걔(비교 대상)는 기준 모델이 되는 것이다.

모델 만들기

~~ 코드 추가 예정 ~~

계수 (confficient)

선형모델의 계수는 두가지가 있다. 첫번째는 intercept이고 두번째는 바로 기울기이다.

intercept

intercept는 x가 0일 때, y가 가지는 값을 말한다. x를 방의 개수, y를 집값으로 예를 들자면 방이 0개인 원룸인 경우라도 y가 0원일 수는 없다. 때문에 절편이 빠지는 순간 응용할 수 없게 되므로 절편이 꼭! 들어가야 한다.
intercept는 모델링을 진행한 후 아래의 코드로 확인할 수 있다.

model.intercept_

기울기

선형회귀에서 기울기는 어떻게 해석하느냐가 매우 중요하다.
그리고 아래의 그림과 같이 해석할 수도 있다.

기울기는 intercept와 마찬가지로 모델링을 진행한 후 아래의 코드를 통해서 쉽게 확인할 수 있다.

model.coef_
profile
우당탕탕 코린이

0개의 댓글