train_test_split
from sklearn.model_selection import train_test_split
train_input, test_input, train_target, test_target = train_test_split(fish_input, fish_target), random_state = 42)
StandardScaler
from sklearn.preprocessing import StandardScaler
ss = StandardScaler()
ss.fit(train_input)
train_scaled = ss.transform(train_input)
test_scaled = ss.transform(test_input)
fit
한 후, 훈련세트와 테스트 세트를 transform
한다.KNeighborsClassifier
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))
다중분류: 타깃 데이터에 2개 이상의 클래스가 포함된 문제
로지스틱 회귀는 이름은 회귀이지만 분류 모델이다.
선형 회귀와 동일하게 선형 방정식을 학습힌다.
선형 방정식을 학습한 값 z는 어떤 값도 가능하다.
확률이 되려면 0~1사이 값이 되어야 한다.
아주 큰 음수일 때 0, 아주 큰 양수일 때 1이되도록 바꾸는 함수가 시그모이드 함수.
predict_proba()
음성 클래스와 양성 클래스에 대한 확률 출력
decision_fuction()
양성 클래스에 대한 z 값 계산
coef_
, intercept_
로지스틱 모델이 학습한 선형 방정식의 계수가 들어 있다.
LogisticRegression
predict_proba()
lr.predict_proba(test_scaled[:5])
decision_function()
lr.decision_function(train_bream_smelt[:5])
2개보다 많은 클래스가 있는 분류 문제는?
-> 다중 분류
로지스틱 회귀가 이진 분류에서 확률을 출력하기 위해 사용하는 함수는?
-> 시그모이드 함수
로지스틱 회귀가 이진 분류하기 위해 선형 방정식을 학습해서 나온 값,
z는 어떤 값도 가능하다.
확률을 출력하려면 0~1사이의 값으로 바꿔줘야 하는데
시그모이드 함수는 아주 작은 음수는 0, 아주 큰 양수는 1로 바꿀 수 있다.