로지스틱 회귀 ( Logistic Regression )

반응형

로지스틱 회귀는 선형 회귀 방식을 분류(classification)에 적용한 알고리즘입니다. 

 

즉, 로지스틱 회귀는 분류에 사용됩니다. 하지만 로지스틱 회귀 역시 선형 회귀 계열입니다.

지난 포스팅에서 회귀에 관해 설명할 때 , 회귀가 선형인가 비선형인가는 독립변수가 아닌 가중치(weight) 변수가 선형인지 아닌지를 따릅니다. 

 

로지스틱 회귀가 선형 회귀와 다른 점은 학습을 통해 선형 함수의 회귀 최적선을 찾는 것이 아니라 시그모이드(Sigmoid) 함수 최적선을 

찾고 이 시그모이드 함수의 반환 값을 확률로 간주해 확률에 따라 분류를 결정한다는 것입니다.

시그모이드

시그모이드 함수는 x 값이 +,- 로 아무리 커지거나 작아져도 y 값은 항상 0과 1 사이 값을 반환합니다.

x 값이 커지면 1에 근사하며 x 값이 작아지면 0에 근사합니다. 그리고 x가 0일 때는 0.5입니다.

좌- 선형회귀 , 우 - 로지스틱 회귀

 

실습 - 위스콘신 유방암 데이터 

 

위스콘신 유방암 데이터 세트를 이용해 로지스틱 회귀로 암 여부를 판단해 보겠습니다. 

먼저 사이킷런의 load_breast_caner() 를 호출하여 전체 데이터 세트를 생성

데이터를 학습 데이터 세트와 테스트 데이터 세트로 나눈 뒤, 로지스틱 회귀로 분류를 수행해 보겠습니다.

선형 회귀 계열의 로지스틱 회귀는 데이터의 정규 분포도에 따라 예측 성능 영향을 받을 수 있으므로 데이터에 먼저 정규 분포 형태의 표준 스케일링을 적용한 뒤에  train_test_split() 을 이용하여 데이터 세트를 분리하겠습니다.

 

이후 로지스틱 회귀를 이용해 학습 및 예측을 수행하고 

정확도와 ROC, ACU 값을 구합니다.

accuracy: 0.977 roc_auc: 0.977

사이킷런 LogisticRegression 클래스의 주요 하이퍼 파라미터 penalty 와 C가 있습니다. 

penalty는 규제 ( Regularization )의 유형을 설정하며 'l2'로 설정 시 L2 규제를, 'l1'으로 설정 시 L1 규제를 뜻합니다.

기본은 'l2' 입니다. 

C 값이 작을수록 규제 강도가 큽니다.

GridSearchCV 를 이용해 위스콘신 데이터 세트에서 이 하이퍼 파라미터를 최적화해 보겠습니다.

로지스틱 회귀는 가볍고 빠른 모델이지만 이진 분류 예측 성능도 뛰어납니다.

이 때문에 로지스틱 회귀를 이진 분류의 기본 모델로 사용하는 경우가 많습니다. 

또한 로지스틱 회귀는 호ㅢ소한 데이터 세트 분류에도 뛰어난 성능을 보여서 텍스트 분류에서도 자주 사용됩니다.

 

반응형