from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
주요 arguments
max_iter
: iteration의 최대치 (default: 100)penalty
: penalization에 사용되는 norm의 종류. Solver의 종류에 따라 사용 가능한 penalty의 종류가 상이하기 때문에 docs를 확인해야 함. {'l1'
,'l2'
,'elasticnet'
,'none'
}, (default:'l2'
)'elasticnet'
의 경우 l1+l2 penalty를 함께 사용하며,l1_ratio
parameter를 통해 그 비율을 조정할 수 있다.
solver
: optimization에 사용되는 algorithm의 종류. {'newton-cg'
,'lbfgs'
,'liblinear'
,'sag'
,'saga'
} (default:'lbfgs'
)- 작은 dataset의 경우
'liblinear'
이 좋은 선택일 수 있으며,'sag'
과'saga'
는 큰 dataset에서 더욱 빠르게 동작한다. - Multiclass problem의 경우,
'newton-cg'
,'sag'
,'saga'
,'lbfgs'
만이 multinomial loss를 다룰 수 있다. 'liblinear'
은 one-versus-rest scheme에서만 동작한다.- 각 solver가 지원하는 penalty의 종류는 다음과 같다.
'newton-cg'
:'l2'
,'none'
'lbfgs'
:'l2'
,'none'
'liblinear'
:'l1'
,'l2'
'sag'
:'l2'
,'none'
'saga'
:'elasticnet'
,'l1'
,'l2'
,'none'
- 작은 dataset의 경우
class_weight
: class에 부여할 가중치.{class label: weight}
형태의 dictionary 를 전달하거나'balanced'
를 선택.'balanced'
의 경우 각 class에n_samples / (n_classes * np.bincount(y))
로 weight를 줌. (default:None
)l1_ratio
: elasticnet penalty를 사용할 경우 사용할 수 있는 parameter로, l1 penalty와 l2 penalty의 비율을 조절한다. (default:None
)
주요 Methods
fit(X, y)
: training data X, label y를 이용해 train을 진행- X: (n_samples, n_features)
- y: (n_samples,)
predict(X)
: test data X를 이용해 class label 값을 예측- X: (n_samples, n_features)
- returns: (n_samples,)
predict\_proba(X)
: test data X를 이용해 class probability 값을 예측- X: (n_samples, n_features)
- returns: (n_samples, n_classes)
사용예제
from sklearn.linear_model import LogisticRegression
model = LogisticRegression(max_iter=5000, class_weight='balanced')
model.fit(X_train, y_train)
pred_train = model.predict_proba(X_train)
pred_test = model.predict_proba(X_test)
반응형
'🐍 Python & library > Scikit-Learn' 카테고리의 다른 글
XGBoost GPU 로 가속하기 (0) | 2022.04.13 |
---|---|
[Scikit-Learn] Multiclass ROC Curve 그리기 (0) | 2021.09.28 |
[Scikit-Learn] 주요 Classifier와 Parameter 정리 (0) | 2021.09.24 |