인프런 커뮤니티 질문&답변
OneVsOneClassifier, OneVSRestClassifer
작성
·
315
0
우연히 OneVsOneClassifier, OneVsRestClassifier가 있다는 것을 알게되었는데
이것에 대한 간단한 개념이 궁금합니다.
해당 내용이 강의내용에 있으면 알려주시면 우선 해당 부분부터 듣고자 합니다.
답변 2
1
안녕하십니까,
먼저 해당 내용은 강의에 없습니다.
OneVsOneClassifier, OneVsRestClassifier은 이진 분류가 아닌 타겟값이 여러개인 multi classification(타겟값의 유형이 여러개)에서 일반적으로 언급되는 개념입니다. 머신러닝 알고리즘 중에는 선천적으로 이진 분류 밖에는 안되는 알고리즘들이 있습니다(예를 들어 SVM, Hyperplane상으로 분리되는 두개의 그룹으로 나누어서 분류 결정. ).
이들 알고리즘을 multi classification에 적용할 때 OneVsOneClassifier, OneVsRestClassifier을 활용합니다. 하나의 Classifier로는 이진 분류밖에 할수 없으므로 여러개의 이진 classifier를 만들어서 비교하는 방식을 취합니다.
1. OneVsRestClassifier가 일반적으로 적용되는 방법입니다. 가령 100개의 데이터 중에 타겟값 유형이 사과, 바나나, 배, 딸기 4개 유형이 있다고 한다면 4개의 이진 classifier를 만드는데 개별 이진 classifer는 각 class 값/class값 아님으로 분리하여 학습하는 방식입니다.
예를 들어 사과 이진 classifer는 결과값을 사과/사과아님 으로 간주하고 여기에 해당하는 데이터 세트를 모아서 학습합니다. 마찬가지로 바나나 이진 classifier는 결과값을 바나나/바나나 아님과 같은 형태로 만들어서 여기에 해당하는 데이터 세트를 모아서 학습합니다. 즉 자기가 담당하는 클래스값 외에는 나머지(Rest)는 모두 negative로 처리하는 방식입니다.
이후에 4개의 classifier중 가장 높은 확률로 예측하는 클래스를 선택하여 multi classification을 구현하는 방식입니다.
2. OneVsOneClassifier도 이와 유사합니다. 다만 각 class값/class값 아님이 아닌, 개별 class값 쌍으로 classifier들을 만들고 학습하는 것입니다. 즉 사과/바나나, 사과/배, 사과/딸기, 바나나/배, 바나나/딸기, 배/딸기 로 classifier들을 만들어서 이들 classifier들이 여기에 해당하는 데이터 세트를 모아서 학습한 뒤 가장 높은 확률로 예측하는 클래스를 선택하여 multi classification을 구현하는 방식입니다.
감사합니다.
0





