머신러닝의 성공과 실패는 feature에 달려있다.는 말처럼 feature가 매우 중요하다.
이번 포스팅은 feature의 선택과 가공에 대해 알아보겠다.
decision running (C4.5 model)에 내장되어 있는 변수선택법은 충분치 않다.
왜냐하면 tree가 진행될 수록 적은 데이터가 남게 되어 변수 선택을 진행하기에, 통계적으로 타당성을 크게 가지지 못하기 때문이다. 극단적인 예로 타겟변수와 별로 연관이 없는 feature임에도 불구하고 계속 tree를 진행하다보면 결정적인 feature인 것처럼 도출이 되는 경우도 있다.
Knn(IBL model) 또한 연관성이 없는 attribute가 포함되어 있을 경우 성능이 현격히 낮아지게 된다. 연관이 없는 attribute와의 거리까지 계산함으로써 원래의 거리를 왜곡하기 때문이다. 또한 그 attribute만큼 training 데이터가 많아져야 한다는 조건이 생기게 된다. 결국, 연관이 없는 feature는 오로지 차원이 커지는 대만 기여를 하게 되고 성능은 낮아지게 되는 것이다.
나이브베이즈모델은 각 attribute는 독립하다고 가정하기 때문에 redundant(dependence) attribute에 취약하다. 그 대신 irrelevant attribute에는 Robust하다.
변수 선택법은 주로 irrelevant한 속성들을 제거하는 역할을 한다. 기존 모델에 변수 선택의 단계가 포함되어 있더라도 미리 변수선택을 진행하고 모델을 학습시킨다면 성능을 더 높힐 수 있다.
또한 차원을 축소시킬 수 있는 중요한 역할을 하는데 이는 우리가 더 이해하기 쉬운 모델을 만드는데 도움이 된다.
변수 선택법(Attribute Selection)의 종류에 대해 알아보자.
Filter approach(scheme-independent):
여기서 scheme는 머신러닝 알고리즘을 뜻한다. 즉, 머신러닝 알고리즘과 상관없이 데이터만 보고 변수를 선택하는 방법이다.ex) correlation(redundant판정), chi-squared statistics(significance test-irrelevant판정), symmetrical uncertainty(nominal 속성의 correlation을 판정할 때), etc.
Wrapper approach(scheme-specific):
머신러닝 알고리즘에 완전히 dependent한 변수선택법이다. 속성들의 여러 subset을 통해 모델을 만들고 가장 좋은 성능을 보이는 attribution subset으로 변수를 선택하는 방법이다. 시간이 오래걸린다는 단점이 있다.
변수선택, 학습에 각자 다른 모델을 사용하는 방법:
예를 들면 변수 선택을 위해 의사결정 나무 모델을 사용하고 그 모델에 사용되지 않은 변수는 거른 후 knn 모델을 통해 학습을 시키는 방법이 있다. 이것은 모델은 사용하여 변수선택을 하였지만 학습에는 다른 모델을 사용하였기 때문에 Wrapper approach와는 다른 것을 기억해야 한다.
Scheme-Independent Selection에 대해 더 자세히 알아보자.
Approach using a linear model:
linear model을 만들면 각각의 attribute에 대한 weight를 구할 수 있다. 이 weight의 절대값 크기 순서대로 타겟변수에 중요한 역할을 한다.

하나의 linear model을 이용하여 단순히 변수를 제거하는 방식보다 다음과 같은 방식이 더 좋은 성능을 보인다.
Recursive feature elimination 알고리즘:
1. linear 모델을 만든다.
2. weight에 따라 attribute를 rank한다.
3. 제일 낮은 rank를 제거한다.
1~3을 반복해서 최적의 변수 subset을 완성한다.
위 두가지 방법은, 모두 공통적으로 수치들을 정규화한 후 진행하여야 한다.
단순히 수치 크기가 크다면 weight가 커질 수 있기 때문이다.
Correlation-based 변수 선택법
타겟변수와의 correlation이 클 수록 좋고, 설명 변수간의 correlation은 작을 수록 좋다.
수치속성인 경우 상관계수 공식을 통해 상관관계를 알 수 있지만
nominal한 속성인 경우 수치 계산이 불가능하다.
따라서 symmetric uncertainty 방법을 사용한다.

여기서 H는 엔트로피이다.
참고로 엔트로피를 구하는 식은 다음과 같다.


이 엔트로피는 instance가 random할 수록 높아지게 되며 가장 random한 상태일 때 엔트로피도 최대가 된다.
correlation이 있으면 joint 엔트로피는 떨어지게 된다.
즉, U(A,B)가 커질수록 변수 A, B의 상관관계가 높다고 할 수가 있다.
2를 곱해줌으로써 범위를 0에서 1로 맞춰준다.
이 scheme-independent selection의 평가는 다음 식으로 계산해볼 수 있다.

C는 타겟변수이고 i와 j는 변수들의 index이다.
분자는 커질수록 좋은 것이고 분모는 커질수록 안 좋은 것이다.
만약 수치속성이라면 correlation값이 들어가게 되고 절대값으로 들어가게 된다.
결과적으로, 위 값이 큰 변수들의 집합으로 모형을 구축하게 되는데 만약 값이 똑같은 변수 집합이 있다면 변수의 개수가 작은 집합을 선택하여 모델을 구축한다.
변수들의 subset을 구성하는 방법
그럼 도대체 변수들의 집합은 어떻게 구성하면 될까?
무작위로 변수를 선정하여 집합을 구성하면 되는 것일까?
그렇다면 그 집합별로 위의 평가방식으로 평가를 해야하는 것일까?
시간이 너무 오래걸려 매우 비효율적일 것이다.
따라서 greedy한 방법으로 집합을 만든다.
forward selection과 backward elimination 방법이 있다.forward는 하나의 변수에서 다른 변수 하나하나씩 늘려가며 평가하는 방식.backward는 전체의 변수에서 변수 하나하나씩 제거하며 평가하는 방식.하지만 이 두가지 방법은 초기에 평가가 종료되어 버릴 수 있다는 단점이 있다. 즉, forward는 변수 집합의 크기가 작은 경향이 있으며 backward는 변수 집합의 크기가 큰 경향이 있다.따라서 모델의 accuracy가 중요한 프로젝트는 backward elimination방법을 권한다.또한 모델을 통해 데이터의 경향을 파악 및 설명하고 싶을 때는 forward selection방법을 권한다.
Scheme-Specific Selection 방법은 언제 쓰일까?
위에서도 말했듯이 모든 변수 집합들에 대하여 특정 모델을 구축하고 성능이 좋은 변수 집합들을 선택하는 방식이라 시간이 오래 걸린다.
나이브베이즈 모델에 scheme-specific selection을 많이 사용한다.
- 나이브 베이즈 모델에서 해당 방법이 좋은 성능을 보인다.
- 위에서 말한 forward selection은 나이브베이즈모델에 취약한 redundant 속성을 제거하는데 효과가 좋다.
- cross validation을 하지 않아도 좋은 성능을 보인다.=> 시간 절약이러한 모델을 Selective Naive Bayes라고 부른다.
Discretizing Numeric Attributes
수치 속성들을 discretizing 하면 더 편할 수 있는 상황이 있다.
예를 들어 의사결정나무 또는 나이브베이즈 모델은 nominal attributes를 주로 다루고 만약 수치속성인 경우 정규분포를 가정하는 등 귀찮은 작업이 추가적으로 필요한 상황이다.
discretizing은 local 과 global로 나뉜다.의사결정나무 경우에는 각 노드마다의 데이터 안에서 discretizing을 진행하게 된다. 따라서 local discretizing이라고 한다.이와 반대로 global discretizing은 모델을 학습하기 전, 전체 수치 속성 데이터를 보고 pre discretizing하는 것이다.하지만 이렇게 discretizing을 하게 되면 나중에 크기나 순서를 모르게 되는 경우가 생기기 때문에 binary 속성으로 바꾸는 작업을 하기도 한다. 다음 포스팅에서 설명하도록 하겠다.
그렇다면 unsupervised 데이터에서 discretization은 어떻게 진행할까?supervised 데이터에서는 타겟 class 별로 discretization을 진행하였으나 unsupervised 경우(clustering) 타겟변수가 없어서 supervised discretization보다는 결과가 좋지 못할 것이다.
Equal-interval binning: 전체 수치 범위를 똑같은 범위로 나누는 것
Equal-frequency binning(histogram equalization): 같은 수로 나눠지게 범위를 나누는 것.
위 두가지 방법이 있다.
supervised 데이터에서는 다음과 같이 discretization을 진행한다.
Entropy-based discretization: 엔트로피 기반으로 나누는 것
즉, 타겟변수를 보고 엔트로피가 가장 작을 때 discretization한다. 처음에 한번 나누고 나눈 것에서 더 discretization할지 recursively하게 결정한다.
이때 언제 멈출 지 결정할 때 MDL 원칙을 이용한다.
MDL원칙은 추후 포스팅할 예정이다.
'대학원 공부 > 기계학습의원리' 카테고리의 다른 글
[머신러닝 원리] 12-2. 강화 학습(Reinforcement Learning) (0) | 2022.12.13 |
---|---|
[머신러닝 원리] 12-1. 강화 학습(Reinforcement Learning) (0) | 2022.12.08 |
[머신러닝 원리] 9-4. 확률적 모델(Probabilistic Models) (0) | 2022.11.17 |
[머신러닝 원리] 9-3. 확률적 모델(Probabilistic Models) (0) | 2022.11.17 |
[머신러닝 원리] 9-2. 확률적 모델(Probabilistic Models) (0) | 2022.11.16 |