Cha 4-1

K-최근접 이웃 분류기

from sklearn.neighbors import KNeighborsClassifier

kn = KNeighborsClassifier(n_neighbors=3)
kn.fit(train_scaled, train_target)
print(kn.score(train_scaled, train_target))
print(kn.score(test_scaled, test_target))

import numpy as np

proba = kn.predict_proba(test_scaled[:5]) 
# predict_proba: 어떤 예측 결과를 바탕으로 분류 결과를 결정했는지 확인할 수 있다
print(np.round(proba, decimals=4))

Logistic Regression

  1. 이진 분류
  1. 다중 분류

Untitled

$e_{sum} = e^{x_1} + e^{x_2} + e^{x_3} + ...$ $s1 = {e^{z_1}\over e_{sum}}$ $s2 = {e^{z_2}\over e_{sum}}$ $s3 = {e^{z_3}\over e_{sum}}$ ....

$s1 + s2 + s3 + ... = 1$ 이며 각 $s_i$값이 분류할 때 쓰이는 확률로 사용된다

from sklearn.linear_model import LogisticRegression

lr = LogisticRegression() #L2 규제가 자동으로 적용된다
lr.fit(train_bream_smelt, target_bream_smelt)

print(lr.predict(train_bream_smelt[:5])) #훈련한 모델로 예측 진행 
print(lr.predict_proba(train_bream_smelt[:5])) #예측을 할 때 사용한 확률을 출력

decisions = lr.decision_function(train_bream_smelt[:5]) #시그모이드 함수 적용 직전 값 출력
print(decisions)