linear regression
y = x0w0 + x1w1+ ... +xpyp +b
x : feature
선형 모델은 비현실적인 가정(많은 정보를 잃은것 같음) 하지만 특성이 많은 데이터면 매우 훌륭한 성능 가짐
MSE를 최소화하는 w,b를 찾음
선형 회귀는 매개변수가 없는 것이 장점이지만, 그래서 모델의 복잡도를 제어할 방법이 없음
w : 계수(coef_) - numpy 배열
b : 절편(intercept_) - 항상 실수
train score와 test score가 비슷하면 underfitting
1차원 데이터셋에서는 모델이 매우 단순해서 overfitting걱정할 필요 없음
하지만 고차원에서는 성능이 매우 높아져 overfit가능
이래서 ridge regression 나옴
ridge regression(많이 쓰임)
추가 제약 조건을 걸음(가중치의 절댓값을 가능한 한 작게 만듦) 모든 w가 0에 가깝게 되길 원함
-> regularization : overfit이 되지 않도록 제한 -> L2 norm 규제

모델의 복잡도가 낮아지면 training에서 성능은 나빠지지만 더 일반화된 모델이 됨.
ridge는 계수가 0에 가까워지기 때문에 더 단순한 모델임. alpha 매개변수로 복잡도 조절
alpha가 줄어들면 계수에 대한 제약이 사라짐 -> 선형 회귀에 가까워짐
alpha = 10 일때보다 alpha = 1일때 계수가 좀더 큼
데이터가 많아질수록 모델이 데이터를 기억하거나 과대적합하기 어려워짐 -> 선형회귀의 train 성능이 감소
Lasso regression
L1 규제 (어떤 계수는 정말 0이 됨) -> 모델에서 완전히 제외되는 특성이 생김 -> feature selection 자동으로 이루어짐
모델이 이해하기 쉬워지고 모델의 가장 중요한 특성이 무엇인지 나옴
alpha 줄임 -> underfitting 줄임, 모델의 복잡도 증가(alpha올리면 계수=0이 많아져서 단순해짐)
Lasso (max_iter=50000) - > coordinate descent
분류용 선형 모델
결정 경계가 선형함수
linear_model.Logistic Regression
svm.LinearSVC -> 선형 서포트 벡터 머신
C = 규제의 강도
C 증가시 규제 감소(training set에 최대로 맞추려함) 복잡도 높음 // C낮추면 규제증가->계수가 0에 가까워짐
고차원에서는 분류에 대한 선형 모델이 매우 강력해지며 특성이 많아지면 overfit되지 않도록 조심
디폴트 C값은 1\
train set과 test set의 성능이 비슷하면 underfit
L1규제 -> 더 이해하기 쉬운 모델 만들수 있음
중요한 특성이 많지 않다고 생각하면 L1규제
특성들이 서로 깊게 연관되어 있을때는 계수를 분석하기가 매우 어려울수 있음
선형모델은 샘플에 비해 특성이 많을 때 잘 작동
'머신러닝' 카테고리의 다른 글
| MLP (0) | 2021.07.21 |
|---|---|
| svm (0) | 2021.07.15 |
| tree (0) | 2021.07.15 |
| Supervised learning - KNN (0) | 2021.07.01 |
| ML_introduction (0) | 2021.06.29 |