nathan_H

Machine Learning - Feature 와 Model. 본문

Big Data/ML

Machine Learning - Feature 와 Model.

nathan_H 2019. 4. 5. 11:41

출처 - https://towardsdatascience.com/cnn-application-on-structured-data-automated-feature-extraction-8f2cd28d9a7e

 

Feature와 Model에 들어가기 앞어

Machine Learning과 Deep Learnig에 어떻게

구현이 되는지 보면

사실 Deep Learnig은 Machine Learning범주 안에

포함되어 있는 학습 방법중 하나이다.

 

그래도 굳이 차이점이라면 

Machine Learning은 Feature을 직접 만들어

학습시키고 분류하고 

결과를 낸다면

Deep Learnig은 

feature도 기계가 스스로 만들어 학습시키고 

분류해 결과을 낸다는 점이라고 볼 수 있다.

 

*이 부분에 대해서 사실 나도 학부생이고 이제 공부를 시작해 깊은 지식이 없어

틀릴 수도 있으니 참고 바라고 틀렸다면 피드백을 주면 수정하겠다.

 

 

 

Feature 

 

그럼 이제 Machine Learning에 있어 중요한 

Feature 에 대한 개념을 알아보고자 한다.

 

Feature == attribute

즉 속성, 특성인데

 

예시를 들지ㅏ면

"사람"에 있어 Feature는

키, 색, 성별, 나이, 직업 ... 등 

이렇게 사람이 가지고 있는 여러가지 특성들을 말한다.

 

그래서 왜 Machine Learning에서 

Feature 을 사용하고 중요하다고 말하는 것일까?

 

그 이유는 데이터를 학습을 함에 있어 

데이터를 어떤 속성을 가지고 학습을 시켜주느냐에 따라

결과가 천차 만별이기 때문이다.

 

이것도 예시를 들자면

여러명의 사람의 정보를 학습시키고 분류를 할때

Feature 을 "키" 로 했을때와 "나이"로 했을때의

결과는 천차만별인 것처럼 

Machine Learning에서도 

Feature 을 어떻게 정하느냐에 따라

결과가 완전히 달라진다는 것이다.

 

 

Feature 을 정함에 있어 유의사항? 에 대해 알아보자

 

Feature 의 개수 : 문제에 따라 수백개~ 수만개 이상 될수도 있다 하지만 Classification에 경우,

label(class) 개수 보다 많고 data 개수보다 적은 것이 일반적이다.

 

 

그렇다고 feature을 무턱대고 늘린다면?

curse of dimension 문제가 발생해  차원이 증가하고 

차원이 증가함에 따라 다양한 값들의 조합 개수가 expontential 하게 증가해

필요 데이터가 증가하는 차원의 저주에 빠지게 된다.

 

 

Model

이제  다시 Machine Learning의 본질적인 목적에 대해 상기해보자

 

 

 Machine Learning의 목적은 무엇인가?

기계를 학습 시켜서 배우는 것이다.

 

그 기계의 실체는 Model이라고 볼수 있다.

 

즉 모델은 머 다른 개념이 아니라

정말 학습 시키는 모델 즉 기계자체라고 볼 수 있다.

 

 

그럼 모델에 있어

몇가지 기준들을 알아보자.

 

1. complexity

complexity는 말그대로 복잡도를 이야기 한다.

 

1) 계산 복잡성 : 데이터 연산 수가 증가할수록

계산 된 연산의 수는 어떻게 증가합니까?

 

2) 데이터 (samplecomplexity / consistency) :

자료의 데이터 항목이 증가할수록,

그 효과는 얼마나 효과적입니까?

complexity은 위 두가지를 기준으로 보면 된다.

 

즉 최적의 모델을 만들기 위해서는 

복잡성을 고려하면서 평가를 통해

최적의 모델을 만들어야 한다.

 

Parametric, Non-parmetric

 

UnsupervisedmodelParametric,Non-parametric  

Parametric:진 가 ‘ 터 된 지 정한다.

,을 정 는 것 를 해 제   

Non-parametric:‘ 도 이 터   도 한다

(:가 에 라 도 도 )  

 - (:),kNN즘 

 

Generative , Discriminative 

 

출처 - https://m.blog.naver.com/PostView.nhn?blogId=2feelus&logNo=221078340870&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 Discriminative (변별, 차이)

대표적인 방식이 Logistic Regression이다.  

그 외에도 Conditional Random Field, Support Vector Machine,

Linear Regression, Neural Network 등의 알고리즘들이 있다. 

 

 

장점:

데이터가 충분할경우 좋은 성능을 보여준다.

 

단점:

데이터를 구분하는데 목표를 두고 있으므로, 데이터가 실제 어떤 모습인지 본질을 이해하기는 어렵다. 

 

Generative (생성적인)

생성되는 입력과 결과 데이터는 분류 클래스별로 특정한 통계적 분포를 따른다고 가정하는 방식이다.

 입력값과 출력값 사이에 분포규칙의 개념을 적용한 방식을 Generative(생성) Algorithm이라고 한다.

 

예) -Naive Bayes

장점:

데이터 셋이 적어도 할만하다. 

데이터 자체의 특성을 파악하기에 좋다. 

데이터를 생성해 내어 새로운 결과물을 얻어낼수 있다.

다른 다양한 목적들에 사용 가능.

 

단점:

데이터가 많은 경우, Discriminative에 비해 성능이 떨어 질수 있다.

설계 학습이 쉽지 않음.

 

 

no free lunch vs occam's razor

no free lunch - 공짜란 없다

> "모든 것에 최선인 알고리즘은 없다.

occam's razor - 쉽게 가자~

"단순함이 의외로 진리일 가능성이 있다."

'Big Data > ML' 카테고리의 다른 글

Bayesian network.  (0) 2019.04.10
Decision Tree  (0) 2019.04.10
MLE, MAP  (0) 2019.04.09
PCA SVD, Linear Discriminant Analysis  (0) 2019.04.08
Evaluation  (0) 2019.04.05
Comments