로지스틱 회귀는 선형 회귀 방식을 분류에 적용한 알고리즘
로지스틱 회귀가 선형 회귀와 다른 점은 학습을 통해 선형 함수의 회귀 최적선을 찾는 것이 아니라 시그모이드(Sigmoid) 함수 최적선을 찾고 이 시그모이드 함수의 반환 값을 확률로 간주해 확률에 따라 분류를 결정한다는 것
시그모이드 함수는 x 값이 +,-로 아무리 커지거나 작아져도 y 값은 항상 0과 1 사이 값을 반환한다
사이킷런 LogisticRegression 클래스에서 solver 파라미터 중 일반적으로 lbfgs 또는 liblinear 선택
위스콘신 유방암 데이터 세트 기반에서 로지스틱 회귀로 암 여부 판단
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.datasets import load_breast_cancer
from skelarn.linear_model import LogisticRegression
cancer = load_breast_cancer()
데이터에 먼저 정규 분포 형태의 표준 스케일링을 적용한 뒤에 train_test_split()을 이용해 데이터 세트 분리
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
#StandardScaler()로 평균이 0, 분산 1로 데이터 분포도 변환
scaler = StandardScaler()
data_scaled = scaler.fit_transform(cancer.data)
X_train, X_test, y_train, y_test = train_test_split(data_scaled, cancer.target, test_size=0.3, random_state=0)
from sklearn.metrics import accuracy_score, roc_auc_score
lr_clf = LogisticRegression()
lr_clf.fit(X_train, y_train)
lr_preds = lr_clf.predict(X_test)
#accuracy와 roc_auc 측정
print('accuarcy: {0:.3f}, roc_auc:{1:.3f}'.format(accuracy_score(y_test, lr_preds), roc_auc_score(y_test, lr_preds)))
'ML' 카테고리의 다른 글
캐글 주택 가격 : 고급 회귀 기법 (0) | 2022.11.19 |
---|---|
자전거 대여 수요 예측 (0) | 2022.11.19 |
선형 회귀 모델을 위한 데이터 변환 (0) | 2022.11.18 |
규제 선형 모델 - 릿지, 라쏘, 엘라스틱넷 (0) | 2022.11.18 |
회귀 (0) | 2022.11.18 |