목차
Solver란?
1. newton-cg: 뉴튼랩슨
2. lbfgs
3. liblinear
4. sag
5. saga
Solver란?
Solver는 LogisticRegression 모델에서 사용하는 하이퍼 파리미터 중 하나로, 비용함수의 최솟값을 어떠한 방법으로 찾을 것인지를 지정하는 역할을 한다. 방법에 따라 학습 성능이 달라지기 때문에 solver를 잘 선택하는 것도 중요하다. 종류에는 newton-cg, lbfgs, liblinear, sag, saga로 총 5가지가 있다. 이중에 newton-cg, lbfgs은 뉴튼 랩슨 방법을 활용하고, 나머지 3개는 경사하강법을 활용한다.
뉴튼 랩슨방법보다는 경사하강법이 학습속도가 더 빠르기 때문에 2차 도함수까지 구해야하는 뉴튼 랩슨 방법은 최근에는 잘 사용하지 않는다. 그러나, 전통적인 통계학에서는 모델이 복잡하지 않아서 계속 사용되고 있다.
1. newton-cg
뉴튼-랩슨(Newton-Raphson)방법을 의미한다. 이는 경사하강법과 마찬가지로 여러 번의 업데이트를 통해서 비용함수를 최소화하는 파라미터의 값을 찾는 방법이다. 하지만 2차 도함수를 계산하는 것이 필요하다는 단점이 있다. 사용할 수 있는 규제화 방법에는 l2와 none이 있다.
2. lbfgs
Limited-memory Broyden-Fletcher-Goldfarb-Shnno의 약자이다. 뉴튼-랩슨 방법을 약간 변형한 방법으로, 차이점은 2차 도함수를 정확하게 계산하는 것이 아니라 근사치를 사용하여 속도를 개선했다는 점이다. 사용할 수 있는 규제화 방법에는 l2와 none이 있다.
3. liblinear
경사하강법과 비슷한 방법이다. 경사하강법은 한 번에 여러개의 파라미터를 업데이트하지만, liblinear은 한 번에 하나의 파라미터만 업데이트한다는 점이 다르다. 사용할 수 있는 규제화 방법에는 l1과 l2가 있다.
4. sag
Stochastic Average Gradient descent의 약자이다. 경사하강법과 유사하게 작동하지만, 차이점은 이전 업데이트 단계에서의 경사값을 현재 업데이트에 사용한다는 점이다. 이렇게 하면 학습속도가 더 빨라지는 장점이 있다.(보통 이전 업데이트 단계에서의 경사가 더 가파르기 때문) 사용할 수 있는 규제화 방법에는 l2와 none이 있다.
5. saga
l1, l2, elasticnet, none까지 모두 사용가능하게 지원되는 방식이다.
정리
Solver | 사용할 수 있는 규제화 |
newton-cg | l2, none |
lbfgs | l2, none |
liblinear | l1, l2 |
sag | l2, none |
saga | l1, l2, elaticnet, none |
이 다섯가지를 모두 사용해서 가장 성능이 좋게 나오는 solver를 선택해야 한다. 로지스틱 회귀 모형은 아래와 같이 설정할 수 있는 하이퍼 파라미터의 종류가 많은데, penalty는 기본적으로 설정해주여야 하고, 대표적으로 페널티 강도를 나타내는 C(1/람다), solver 종류, 최대 업데이트 정도를 나타내는 max_iter를 설정한다. 이렇게 4가지를 한꺼번에 사용해서 가장 모델의 성능이 가장 좋은 하이퍼파라미터의 값들을 찾아내는 방법이 그리드서치 방법이다.
from sklearn.linear_model import LogisticRegression
model = LogisticRegression(C = 0.1, penalty = 'l1', solver = 'saga', max_iter=1000)
다음 시간에는 분류 문제에서 모델의 성능을 평가하는 방법들에 대해서 알아보겠다.
'머신러닝,딥러닝 > ML 회귀분석(이상엽 교수님)' 카테고리의 다른 글
ROC curve, AUC 개념 및 sklearn 코드 (1) | 2023.06.15 |
---|---|
분류문제 성능평가 지표: Accuracy, Recall, Precision, F1 score (+titanic 실습) (1) | 2023.06.10 |
원-핫 인코딩: pd.get_dummies() vs OneHotEncoder() (2) | 2023.06.06 |
로지스틱 회귀 모형: 함수 개념 및 코딩 실습 (0) | 2023.05.29 |
회귀모델: 라쏘(Lasso), 릿지(Ridge), 엘라스틱 넷(ElasticNet) (0) | 2023.05.29 |
댓글