로지스틱 회귀는 선형 회귀 방식을 분류에 적용한 알고리즘

 

로지스틱 회귀가 선형 회귀와 다른 점은 학습을 통해 선형 함수의 회귀 최적선을 찾는 것이 아니라 시그모이드(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

+ Recent posts