Computer Science/Data

[머신러닝] 논리회귀 ( Logistic regression ) (이진논리회귀, 다항논리회귀)

lallala 2022. 2. 27. 14:37

논리 회귀 (Logistic regression)

입력값과 범주 사이의 관계를 구하는 것

선형회귀로 풀기 힘든 문제→Logistic function(=Sigmoid function)을 사용

가설과 손실함수

 

논리 회귀에서는 시그모이드 함수에 선형 회귀 식을 넣어줌

 

가설함수 :

손실함수 :

확률 분포 그래프의 차이를 비교할 때는 Crossentropy 라는 함수를 사용하게 되는데요.

간단하게 그래프로 개념을 이해하면, 임의의 입력값에 대해 우리가 원하는 확률 분포 그래프를 만들도록 학습시키는 손실 함수입니다.

Keras에서 이진 논리 회귀의 경우 binary_crossentropy 손실 함수를 사용

다항 논리 회귀 (Multinomial logistic regression)

여러개의 클래스로 나눠지는 논리회귀

 

One-hot encoding

원핫 인코딩은 다항 분류 (Multi-label classification) 문제를 풀 때 출력값의 형태를 가장 예쁘게 표현할 수 있는 방법

원핫 인코딩을 만드는 방법:

  1. 클래스(라벨)의 개수만큼 배열을 0으로 채운다.
  2. 각 클래스의 인덱스 위치를 정한다.
  3. 각 클래스에 해당하는 인덱스에 1을 넣는다.

Softmax 함수와 손실함수

Softmax는 선형 모델에서 나온 결과(Logit)를 모두가 더하면 1이 되도록 만들어주는 함수

다 더하면 1이 되도록 만드는 이유는 예측의 결과를 확률(=Confidence)로 표현하기 위함

One-hot encoding을 할때에도 라벨의 값을 전부 더하면 1(100%)이 되기 때문

Keras에서 다항 논리 회귀의 경우 categorical_crossentropy 손실 함수를 사용

다양한 머신러닝 모델

Support vector machine (SVM)

 

그래프의 축: Feature(특징)

Margin이 넓어지도록 이 모델을 학습시킴

기타 머신러닝 모델 간단 소개

  • k-Nearest neighbors (KNN)KNN은 비슷한 특성을 가진 개체끼리 군집화하는 알고리즘

 

  • Decision tree (의사결정나무) 스무고개와 같은 방식으로 예, 아니오를 반복하며 추론하는 방식
    생각보다 성능이 좋아 간단한 문제를 풀 때 자주 사용
  • Random forest각각의 의사결정나무들이 결정을 하고 마지막에 투표(Majority voting)을 통해 최종 답을 결정/
    의사결정나무를 여러개 합친 모델

다항 논리 회귀 (Multinomial logistic regression)

  • 전처리 : 넓은 범위의 데이터 정제 작업

ex) 필요없는 데이터를 지우고 필요한 데이터만을 취하는 것, null 값이 있는 행을 삭제하는 것, 정규화(Normalization), 표준화(Standardization)

정규화(Normalization) : 데이터를 0과 1사이의 범위를 가지도록 함

표준화(Standardization) : 데이터의 분포를 정규분포로 바꿔줌

데이터의 평균을 0으로 만들어주면 데이터의 중심이 0에 맞춰지게(Zero-centered) 됨

표준편차를 1로 만들어 주면 데이터가 예쁘게 정규화(Normalized) 됨

이렇게 표준화를 시키게 되면 일반적으로 학습 속도(최저점 수렴 속도)가 빠르고, Local minima에 빠질 가능성이 적어짐