
10/16 7세션
시그모이드 함수라고도 함
LogisticRegression(max_iter=n) 으로 반복횟수를 조절할 수 있음. # 1단계: 불러오기
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix, classification_report
# 2단계: 선언하기
model = LogisticRegression()
# 3단계: 학습하기
model.fit(x_train, y_train)
# 4단계: 예측하기
y_pred = model.predict(x_test)
# 5단계 평가하기
print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))
# 확률값 확인
> p = model.predict_proba(x_test)
> print(p[:10].round(3))
# 0일 확률 / 1일 확률
[[0.799 0.201]
[0.2 0.8 ]
[0.678 0.322]
[0.961 0.039]
[0.766 0.234]
[0.762 0.238]
[0.059 0.941]
[0.578 0.422]
[0.675 0.325]
[0.884 0.116]]
# p_pred 값 확인 - 확률값이 0.5보다 크면 1, 작으면 0
> print(y_pred[:10])
[0 1 0 0 0 0 1 0 0 0]
# 새로운 예측값 - 0.5를 임계값으로 했다는 것을 증명
# 1이다 x가 0.5보다 크면. 아니면 0이다. x는 p1에서 왔다
# 확률값 확인
> p = model.predict_proba(x_test)
> p1 = p[:, 1]
> y_pred2 = [1 if x > 0.5 else 0 for x in p1]
> print(y_pred[:10])
> print(y_pred2[:10])
> print(classification_report(y_test, y_pred2))
[0 1 0 0 0 0 1 0 0 0]
[0, 1, 0, 0, 0, 0, 1, 0, 0, 0]