Thumbnail

ML CheatsheetPermalink

우리가 어떤 데이터를 목적에 따라 학습시키고 싶을 때 어떤 알고리즘을 사용해서 학습을 진행시켜야 할 지에 대해서 scikit-learn에서 정리한 가이드라인이다.

Guideline

image.png

그리고 다음은 ML Cheatsheet이며 비슷한 내용이 정리되어있다.

image.png

이중에서도 Classification(분류)에 대해서 어떤 기법들이 있는지 알아보자.

Classification MethodsPermalink

다음은 이진 분류와 다중 분류의 기법들이다.

image.png

image.png

Logistic RegressionPermalink

Scikit Learn Guide

단순한 로지스틱 회귀를 의미한다.

scikit learn에 LogisticRegression 으로 구현되어 있다.

이름과 다르게 Classification을 위한 구현체이다.

Support Vector Machine(SVM)Permalink

Scikit Learn Guide

가장 많이 쓰이는 고성능 모델이다.

HyperPlain을 찾아 클래스간 마진을 최대로 하여 서포트 벡터라 부르는 일부 샘플을 사용해 분류를한다.

이 때, 커널(Kernal)을 이용해 원래 선형 분리가 안되는 데이터를 고차원으로 옮겨서 선형 분리가 가능하게 만들 수 있다.

단순한 코드 예시는 다음과 같다.

from sklearn.svm import SVC

svc = SVC(kernel='rbf', C=1.0, gamma='scale')

SVC는 Support Vector Classification의 약자이다.

SVM의 장점은 Versatile(다재다능)하다는 것이다.

커널을 어떤것을 사용하느냐에 따라 데이터에 따른 분류 과정을 이것저것에 잘 최적화를 시킬 수 있다.

image.png

선형 SVM(Linear Kernal)은 말처럼 Classificaiton이 선형으로 이루어져있다.

하지만 SVC의 기본 커널인 RBF 를 보면 직선이 아닌 곡선으로 분류가 되는것을 알 수 있는데, 이건 저차원을 고차원으로 변경시키는 커널 함수의 역할이다.

Decision TreesPermalink

Decision Trees(의사 결정 트리)는 non-parametric supervised learning method이다.

non-parametric이란 것은 모델이 고정된 인자를 가지지 않는다는 의미이며 트리의 분류 알고리즘이 feature들의 분석과 결과따라 자유롭게 구성된다는 의미이다.

Decision Tree는 Classificaiton과 Regression모두에 사용될 수 있다.

scikit-learn에서의 사용법은 DecisionTreeClassifierDecisionTreeRegressor 클래스를 이용하는 것이다.

Comments