주먀
선형회귀 본문
종류 : Linear Regerssion , Ridge( L1 ) , Lasso( L2 ) , 회귀평가지표
1. Ensemble : 여러개의 DT
2. 딥러닝 시초 : 여러개의 LinearRegresson ( 선형회귀 )
3. 선형모델의 알고리즘 :
가지고 있는 데이터를 모두 설명할 수 있는 선형함수 생성
4. y = 10x + 0
x , y는 이미 우리가 알고 있는 값이고 , 우리가 찾아야 할 값은 a에 들어가는 10이라는 값
==> 머신러닝에서는 a -> w ( 가중치 ) -> 회귀의 목적
5.
6. 선형모델
: 입력 데이터를 설명할 수 있는 선형 함수를 구하는 것 ==> 데이터에 대한 선형함수 ( 외우자 )
선형함수의 기본식 :
문제가 1개인 컬럼 : y = wx + b
문제가 p개의 컬럼 : y = w1x1 + w2x2 + ... + xpxp + b
a ( 기울기 ) = w ( 가중치 )
w : 각 컬럼 ( 문제 ) 마다 다른 가중치를 적용
입력 데이터를 설명하는게 불가능
왜? 그릴 수 있는 선형함수의 수가 무한대이기 때문에
모든 선형함수의 오차를 계산할 수는 없음
--> 오차가 가장 작은 선형함수 찾는게 목적( 입력 데이터를 가장 잘 설명하는 선형함수 )
평균제곱오차( MSE )가 가장 작은 선형함수가 최선의 선형함수
** 그릴 수 있는 무한대의 선형함수 중에서 평균제곱오차가 가장 작은 선형함수 찾기
평균 제곱오차가 가장 작은 선형함수를 찾는 방법
1. 수학공식을 이용한 해석적인 방법 ( 공식으로 해결 )
: LinearRegression
2. 경사하강법
: SGDRegressor
평가지표
분류 : 모델이 잘 만들어졌는지 판단 - score ( 정확도 )
정답 / 오답을 정확하게 표현할 수 있음 --> 맞춰야 하는 정답도 정해져 있음.
분류평가지표 : 정확도 ( 0 ~ 1 ) --> 1에 가까울수록 잘 만들어진 모델 판단
회귀 : MSE가 작을수록 좋은 모델 - score ( R2 score )
집값 예측시 2억 2억 10원일때 미묘한 값의 차이는 중요하지 않고 , 맞았다 틀렸다를 구분할 수 없음 --> 정답 / 오답을 정확하게 표현하기 어려
회귀평가지표 : MSE ( 0 ~ 무한대 ) --> 0에 가까울수록 성능이 좋다라고 판단
LinearRegression 의 단점 : 모델이 잘못되었을때 개선할 수 없다 ==> 규제( 정규화 )를 가해서 해결
규제 : 선형모델에서 가중치( w ) 영향을 주는 것 --> 모델에 개입한다.
1. L1규제 ( Lasso ) : LinearRegression + L1 규제
- 모든 w에 특정 값만큼의 규제를 가하겠다
- 가중치가 0이 되어 사용하지 않는 특성이 생김 --> 특성 선택
- 특정 데이터가 중요할 때 사용
2. L2규제 ( Ridge ) : LinearRegression + L2 규제
- 모든 w에 특정 %만큼의 규제를 가하겠다
- 규제를 많이 가해도 전체 가중치는 사용
- 전체 데이터가 고르게 중요할 때 사용
- 가중치가 0은 되지 않음