본문 바로가기

ML with Caltech SURF

Big data Analysis 섬머스쿨 - Classification: Models and tools overview

JPL-Caltech Virtual Summer school - Big data Analysis(6)

강의 링크 : https://class.coursera.org/bigdataschool-001/wiki/Day_7


이 강의에서는 classifier들의 종류를 전체적으로 살펴볼 것이다.


K-Nearest-Neighbors

Best choice of k depends on upon data set:

K만큼 크기의 원을 그려서 class를 판별한다.(그 원안에 있는 가장 도미넌트한 클래스로 분류)

K가 커질수록 노이즈의 영향력은 줄어들지만, 클래스간 경계선이 허물어 진다는 단점이있다.


Bayesian Networks

이는 Directed Acyclic Graphs로 이루어진 모델을 사용한다. nodes들은 variable을 의미하고, missing arc들은 조건부 독립성을 가진다는 것을 의미한다( 즉 연결이 안되어있다면, 둘은 조건부 독립이다)

이는 missing data를 핸들링 하는데 좋고, 확률 classification에 사용된다.(확률로 라벨링함)

Decision Tree

Supervised Classification Method중 하나이다. 이는 아주 간단한 룰들의 집합이다 예를들어서 " 만약 feature 1이 x보다작고, feature 2가 y보다 크면 AGN으로 specimen을 분류하라" 같은 아주 (비교적) 간단한 룰을 통하여 분류한다. 이는 Non-Parametric(variable의 분포에 대한 가정이 필요없음) 한 특지을 가진다. Internel nodes는 attribute들에대한 test를 의미한다. Leaves(끝점)들은 class label에 대응된다.

외출여부에 대한 간단한 D-T의 예시

Support Vector Machine

SVM은 classification이나 regression에 사용될 수 있는 supervised learning method 이다. 두가지 종류의 어떠한 set 에도 SVM은 maximum margin을 가진 unique한 hyperplane을 구해준다.(그림을 통하여 이해)

SVM은 리니어가 닐수도 있다. 이때는 Higher dimensional space로 분류하는데 이때는 non-linear function을 사용한다.

Kernel functions을 이용하여 Higher dimensional space로 나눈 예시


Combining Models

모델을 하나만 사용 하는 것이 아니라 여러개의 모델을 합쳐서 사용 할 수 있다. 각각 특성이 다르기 때문에(missing data에대한 핸들링이나, 기본적인 라벨링이 필요한애들도있음) 여러개를 섞어쓰면 더 좋다.

NN을 두개를 이어서 쓸수도 있고(앞의 아웃풋 + 새로운 정보로 한번더 NN을 돌림) 하나의 인풋을 여러개의 model에 넣어서 합칠수도 있다.

또한 인풋을 특정값으루 분류해서 인풋의 값에 따라서 다른 클레시파이어에 넣은후 분류를 할 수도 있다.

여러 모델을 합치는 Sleeping Expert 전략의 예시이다.


Data mining Tools

데이타 마이닝에는 많은 오픈소스들이 이미 존재한다. 이 강의에선 Orange(Python 기반), DAME, Weka(java기반) 등을 소개한다.