분류
1. 분류의 개요
분류는 학습 데이터로 주어진 데이터의 피처와 레이블값(결정값, 클래스값)을 머신러닝 알고리즘으로 학습해 모델을 생성하고, 이렇게 생성된 모델에 새로운 데이터 값이 주어졌을 때 미지의 레이블 값을 예측하는 것
2. 결정트리
2-1. 결정트리와 앙상블
결정트리는 매우 쉽고 유연하게 적용할 수 있는 알고리즘. 또한 데이터의 스케일링이나 정규화 등의 사전 가공의 영향이 매우 적다. 하지만 예측 성능을 향상시키기 위해 복잡한 규칙 구조를 가져야하며, 이로 인한 과적합이 발생해 반대로 예측 성능이 저하될 수도 있다는 단점이 있다.
하지만 이런 단점이 앙상블 기법에서는 오히려 장점으로 작용하는데, 앙상블은 매우 많은 여러 개의 약한 학습기(즉, 예즉 성능이 상대적으로 떨어지는 학습 알고리즘)를 결합해 확률적 보완과 오류가 발생한 부분에 대한 가중치를 계속 업데이트 하면서 예측 성능을 향상시키는데, 결정 트리가 좋은 약한 학습기가 되기 때문입니다. (GBM, LightBGM)
2-2. 결정트리
결정 트리 알고리즘은 데이터에 있는 규칙을 학습을 통해 자동으로 찾아내 트리 기반의 분류 규칙을 만듭니다. 따라서 데이터의 어떤 기준을 바탕으로 규칙을 만들어야 가장 효율적인 분류가 될 것인가가 알고리즘의 성능을 크게 좌우합니다.
2-3. 정보 균일도 측정방법
정보이득 - 엔트로피라는 개념을 기반으로 한다. 엔트로피는 주어진 데이터 집합의 혼잡도를 의미하는데, 서로 다른 값이 섞여 있으면 엔트로피가 높고 같은 값이 섞여 있으면 엔트로피가 낮습니다. 정보이득 지수는 1에서 엔트로피 지수를 뺸 값으로, 결정 트리는 이 정보 이득 지수로 분할 기준을 정합니다.
지니계수 - 경제학에서 불평등지수를 나타낼 때 사용하는 계수로 0이 가장 평등하고 1로 갈수록 불평등합니다. 머신러닝에서 사용할 때는 지니 계수가 낮을수록 데이터 균일도가 높은 것으로 해석되어 계수가 낮은 속성을 기준으로 분할합니다.
2-4. 결정 트리의 특징
장점 -쉽고 직관적이다. 피처의 스케일링이나 정규화 등의 사전 가공 영향도가 크지 않음
단점 - 과적합으로 알고리즘 성능이 떨어진다. 이를 극복하기 위해 트리의 크기를 사전에 제한하는 튜닝 필요
3. 결정 트리의 주요 하이퍼 파리미터
max_depth : 트리의 최대 깊이를 규정, 깊이가 깊어지면 min_samples_split 설정대로 최대 분할하여 과적합할 수 있으므로 적절한 값으로 제어 필요
max_features : 최적의 분할을 위해 고려할 때 최대 피쳐 개수, 디폴트는 None으로 데이터 세트의 모든 피처를 사용해 분할 수행한다.
min_samples_split : 노드를 분할하기 위한 최소한의 샘플 데이터 수로 과적합을 제어하는 데 사용됨. 디폴트는 2이고 작게 설정할수록 분할되는 노드가 많아져서 과적합 가능성 증가. 과적합을 제어, 1로 설정할 경우 분할되는 노드가 많아져서 과적합 가능성 증가
min_samples_leaf : 말단 노드(leaf)가 되기 위한 최소한의 샘플 데이터 수. Min_samples_split과 유사하게 과적합 제어 용도, 그러나 비대칭적 데이터의 경우 특정 클래스의 데이터가 극도로 작을 수 있으므로 이 경우는 작게 설정 필요
max_leaf_nodes - 말단 노드(leaf)의 최대 개수
4. 결정 트리의 시각화
Graphvix를 통해 가능. 사이킷런의 DecisionClassifier 객체는 feature_importances_을 통해 학습/예측을 위해서 중요한 Feature들을 선택할 수 있게 정보를 제공합니다.
5. 결정트리의 과적합
2개의 Feature로 된 3개의 결정 클래스를 가지도록 make_Classification()함수를 이용하여 임의 데이터를 생성한 후 트리 생성 제약이 없는 경우와 min_samples_leaf= 6으로 제약을 주었을 때 분류 기준선의 변화