21년 4월 6일 

S2-Week 1 : Linear Models


오늘의 나를 뒤돌아보며,

 

 


 

주제

Multiple Regression

 

키워드

  •  

 

 


2가지 이상의 변수를 사용하는 다중 선형회귀모델(Multiple Linear Model)

R square

R2 (결정계수) 가 1에 가깝다는 건 어떤걸 의미할까? 

0~1 사이 값인데 선형회귀 모델의 예측값과 관측값의 유사 정도, 1에 가까울 수록 설명력이 높다

 

 

왜 훈련/테스트 데이터를 나누는 것일까요?

훈련을 할 때 사용하는 데이터 가지고 검증할 수 없다. 

훈련데이터에 너무 과적합이 됐을 때 모델이 좋다고 착각할 수 있다. 모델이 훈련데이터만 잘 맞출 수 있어서

테스트 데이터를 주로 랜덤으로 뽑아서 만드는데, 사이즈를 어떻게 뽑았는지에 따라 결과가 달라 질 수 있다.

 

선형회귀 모델은 과적합이 잘 안된다.

선형회귀모델이 설명력은 뛰어난데 과소적합이 잘 일어난다. 


 

과적합은 모델이 필요 이상으로 복잡해져서 훈련데이터의 노이즈 같은 일반적인 성질들을 과하게 해서 테스트 데이터에서 오차가 커지는 현상, 즉 일반화를 못하는 것

과소적합은 모델이 필요한 것보다 너무 간단해서, 훈련데이터가 가지는 충분한 데이터를 가지지 못해서 훈련데이터에서 나쁜 성질을 가지는 것

 

- 과적합 : 모델이 train 데이터에 과하게 학습해 일반화가 안되서, test 데이터에서 오차가 커지는 현상 / 분산이 높은 경우 과적합

 

- 과소적합 : 훈련데이터에 과적합도 못하고 일반화도 안되서, train/test 데이터에서 모두 오차가 크게 나오는 경우 / 편향이 높은 경우 과소적합

 

과적합을 두려워하지 말고 과적합이 안되면 학습이 될 가능성이 다. 

과적합이 안돼, 과소적합이야. 그럼 과적합이 잘되도록 고민을 해야한다.

과적합이 되면 학습이 됐다 생각하고 좋아해야하는데 이걸 이제 어떻게 풀어줄지 생각을 해야함


 

 

시그마 제곱 : 데이터의 노이즈, 데이터의 오류 (데이터 자체의 오류)

 

간단한 모델을 쓰는 경우 편향 에러가 증가

복합한 모델을 쓰면 분산 에러가 커진다.

모델의 복잡도가 커질 수록 분산은 높아지고 편향은 줄어든다.

 

다항회귀는 독립변수와 종속변수가 비선형인 관계인 모델이지만 다항항들은 선형결합으로 연결이 되어있다.

다중선형회귀 형태로 만들 수 있어서 선형모델이라고 부를 수 있다. (다항회귀를 현실적으로 사용할 확률이 높지않다.)

 

 

 

1
2
# 라이브러리
from sklearn.metrics import r2_score
cs

 

다중 선형회귀모델(Multiple Linear Model) 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 다중모델 학습을 위한 특성
features = ['GrLivArea'
            'OverallQual']
X_train = train[features]
X_test = test[features]
 
 
# 모델 fit
model.fit(X_train, y_train)
y_pred = model.predict(X_train)
mae = mean_absolute_error(y_train, y_pred)
print(f'훈련 에러: {mae:.2f}')
 
 
*훈련 에러: 29129.58
 
# 테스트 데이터에 적용해 봅시다 
y_pred = model.predict(X_test)
mae = mean_absolute_error(y_test, y_pred)
print(f'테스트 에러: {mae:.2f}')
 
 
*테스트 에러: 27598.31
 
 
 
** 하나의 특성을 사용한 단순선형회귀모델보다 테스트 오류가 더 줄어든 것을 확인할 수 있습니다.
cs

모델의 회귀계수와 절편 확인하는 방법

1
2
# 모델의 회귀계수(coefficients)와 절편(intercept)을 확인하기
model.coef_, model.intercept_
cs

'개발 관련자료 > ML, DL' 카테고리의 다른 글

Decision Trees  (0) 2021.04.24
Ridge Regression  (0) 2021.04.24
Simple Regression  (0) 2021.04.22
Clustering  (0) 2021.04.21
Dimension Reduction (차원축소) #아직 이해를 못해서 개념 정리 다시 해야함  (0) 2021.04.21

+ Recent posts