본문 바로가기

AI/머신러닝&딥러닝

진짜 나를 위한 머신러닝 #로지스틱 회귀

나의 이해는 주관적인 저의 이해를 적어놓은 글입니다. 개념을 쉽게 이해해보고자 서술해본 글이지만 알고리즘이나 용어의 개념과 100% 일치하지 못할 수 있습니다.

로지스틱 회귀(logistic regresstion)

- 회귀 모델이 아닌 분류 모델

- 선형 방정식을 사용한 분류 알고리즘, 계산한 값을 0~1 사이로 압축(0~1 사이라 확률로 표현 가능)

- 시그모이드 함수(이진 분류)나 소프트맥스 함수(다중 분류)를 사용해 클래스 확률을 출력할 수 있음

 

나의 이해: 마린, 질럿, 저글링이 랜덤 하게 본진으로 쳐들어올 수 있는데 마린과 질럿과 저글링이 각각 몇 퍼센트의 확률로 쳐들어오나를 출력하기 위해 쓰는 분류 모델. 확률은 예측이지만 각각의 확률을 예측해서 분류하기 때문에 분류 알고리즘이다. 예. 마린은 95%의 확률로 쳐들어 온다. 질럿은 3%의 확율로 쳐들어 온다. 저글링은 2%의 확율로 쳐들어온다.

 

 

다중 분류(multiclass classification)

- 타깃 데이터에 2개 이상의 클래스가 포함된 문제

- 다중 분류를 위해 로지스틱 회귀 모델에 소프트맥스 함수를 사용해 클래스를 예측할 수 있음

 

나의 이해: 1차 러시 타임에 마린은 5%, 질럿은 3%, 저글링은 92%의 확률로 쳐들어 온다. 

 

 

시그모이드 함수(sigmoid function)

- 선형 방적식의 출력을 0과 1 사이의 값으로 압축.

- 이진 분류를 위해 사용

 

나의 이해: 1차 러시 타임에 마린이 쳐들어오느냐 안 오느냐를 확률로 예측할 때 사용.

이렇게 두 가지의 결과를 예측할 때 시그모이드 함수를 사용한다.

 

 

소프트맥스 함수(softmax function)

- 다중 분류를 위해 사용

- 여러 선형 방적식의 출력 결과를 정규화하여 합이 1이 되도록 만듦

 

나의 이해: 1차 러시 타임에 마린과 질럿과 저글링이 각각 몇 퍼센트의 확률로 쳐들어오냐를 나타낼 때 사용.

각각의 확률을 더하면 1이 된다.

 


핵심 패키지와 함수

사이킷런(scikit-learn)

LogisticRegression

- solver 매개변수에서 사용할 알고리즘을 선택할 수 있음

- 기본값 'lbfgs', 'sag'는 확률적 경사 하강법 알고리즘으로 특성과 샘플 수가 많을 때 성능이 빠르고 좋음

- penalty 매개변수에서 L2 규제(릿지 방식)와 L1 규제(라쏘 방식)을 선택할 수 있음. 기본 값 L2

- C 매개변수에서 규제의 강도 제어. 기본값 1.0, 값이 작을수록 규제가 강해짐

 

predict_proba() 

- 예측 확률을 반환

- 이진 분류의 경우에는 샘플마다 음성과 양성 클래스에 대한 확율을 반환

- 다중 분류의 경우는 샘플의 모든 클래스에 대한 확율을 반환

 

decision_function()

- 모델이 학습한 선형 방정식의 출력을 반환

- 이진 분류의 경우 양성 클래스의 확률이 반환, 0보다 크면 양성, 작거나 같으면 음성

- 다중 분류의 경우 각 클래스마다 선형 방정식을 계산. 가장 큰 값의 클래스가 예측 클래스가 됨.

 


참고

http://www.yes24.com/Product/Goods/96024871

 

혼자 공부하는 머신러닝+딥러닝 - YES24

- 혼자 해도 충분하다! 1:1 과외하듯 배우는 인공지능 자습서 이 책은 수식과 이론으로 중무장한 머신러닝, 딥러닝 책에 지친 ‘독학하는 입문자’가 ‘꼭 필요한 내용을 제대로’ 학습할 수 있

www.yes24.com

 

반응형