Logistic regression

 

Logistic regression은 sample이 특정 class에 속할 확률을 추정하는 데 사용되어 binary classifier로 사용할 수 있습니다.

Remarks

본 포스팅은 Hands-On Machine Learning with Scikit-Learn & TensorFlow (Auérlien Géron, 박해선(역), 한빛미디어) 를 기반으로 작성되었습니다.


Iris dataset을 예제로 한 코드를 보겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 1. Load data
from sklearn import datasets

iris = datasets.load_iris()
X, y = iris['data'][:, 3:], (iris['target'] == 2).astype(np.int)


# 2. Fit logistic regressor
from sklearn.linear_model import LogisticRegression

log_reg = LogisticRegression(C=1)  # C: reg 강도의 역수에 해당하여, 높을수록 reg가 줄어듭니다
log_reg.fit(X, y)
log_reg.predict(X_test)


# 3. Fit softmax regressor
X, y = iris['data'][:, (2, 3)], iris['target']

# multi_class='multinomial'을 사용하지 않으면, OvA 전략을 사용
# 대규모의 데이터셋에서는 solver='saga'를 사용하는 것이 더 좋다
softmax_reg = LogisticRegression(multi_class='multinomial', solver='lbfgs', C=10)
softmax_reg.fit(X, y)
softmax_reg.predict(X_test)
softmax_reg.predict_proba(X_test)