[머신러닝] 여러 개로 분류하기(Multi Classification)
어제보다 나은 사람이 되기

걱정보단 실행을, 그러나 계획적으로

Box World 자세히보기

AI/Coursera ( Machine Learning )

[머신러닝] 여러 개로 분류하기(Multi Classification)

Box형 2020. 4. 30. 23:29
반응형

시작하며

우리가 저번 포스팅에서 배운 Logistic Regression 은 결과값이 0 혹은 1 두가지의 클래스(종류)로만 나오는 Binary Classification 이었습니다.

하지만 우리는 Email 폴더를 구분할 때 직장, 가족, 친구, 취미 등으로 분류할 수도 있고, 날씨만 하더라도 밝음, 흐림, 비, 눈 등 두가지 이상으로 분류할 수 있는 것들이 많습니다.

이렇게 분류에 따른 결과값이 2가지 이상의 클래스로 나올 수 있는 것을 'Multi-Classification' 이라고 합니다. 이제부터 이를 어떻게 하는지 알아보겠습니다.

이번 포스팅은 Logistic Regression을 이해하고 보시면 훨씬 효과적입니다.
[머신러닝] Logistic Regression 이해하기 1
https://box-world.tistory.com/13?category=397062

[머신러닝] Logistic Regression 이해하기 2
https://box-world.tistory.com/14?category=397062


One vs All

위는 세모, 네모, 엑스 세가지로 결과가 분류되는 dataset을 그래프로 나타낸 것입니다.

기존 Binarry Classification에서는 두개의 결과값을 분류해주는 최적의 Decision Boundary 를 찾는 것이 핵심이었습니다.

하지만 Multi-Class의 경우에, 이것을 분류하는 위해서는 One vs All 즉 하나의 실제값에 대해

  • (실제값이) 세모 vs 나머지(네모, 엑스)
  • (실제값이)네모 vs 나머지(세모, 엑스)
  • (실제값이)엑스 vs 나머지(세모, 네모)

세가지 경우에 대해 각각 Binary Classification을 진행하여 이중 가능성을 의미하는 Logistic Regression의 h(x) 값이 가장 큰 경우가 실제값 x에 따른 예측값 y가 됩니다.

예를 들어 실제값 x가 들어왔을 때

  • (실제값이) 세모 vs 나머지(네모, 엑스) -> h(x) = 0.3
  • (실제값이)네모 vs 나머지(세모, 엑스)-> h(x) = 0.7
  • (실제값이)엑스 vs 나머지(세모, 네모)-> h(x) = 0.4

라면 이 경우 들어온 x는 네모라고 예측하는 것입니다.

요약

  • i개의 클래스를 분류하는 상황일 때 들어온 실제값 x를 y = i라고 가정하고 총 i개의 케이스를 One vs All로 각각 Binary Classification을 하여 h(x)값을 도출합니다.

  • Logistic Regression의 h(x)는 가능성을 의미하므로 이중 가장 높은 h(x)를 도출한 경우가 해당 실제값 x에 대한 예측값 y가 됩니다.

반응형