죠으니 2022. 2. 1. 01:50

□ 결정트리

 

장점: 매우 쉽고 유연하게 적용될 수 있는 알고리즘. 데이터의 스케일링이나 정규화 등의 사전가공의 영향이 매우 적음

단점: 예측 성능을 향상시키기 위해 복잡한 규칙 구조를 가져야 함. 과적합이 발생해 반대로 예측 성능이 저하될 수 있음.

 

▶위의 단점이 앙상블 기업에서는 장점이 된다. 앙상블은 매우 많은 여러개의 약한 학습기(예측 성능이 상대적으로 떨어지는 학습 알고리즘)를 결합해 확률적 보완과 오류가 발생한 부분에 대한 가중치를 계속 업데이트하면서 예측 성능을 향상시키는데, 결정트리가 좋은 약한 학습기가 된다. 

 

min_samples_splitmin_samples_leaf 차이

min_samples_split은 분할 할 수 있는 샘플수를 지정하는 것. min_samples_leaf를 분할해서 leaf가 될 수 있는 샘플수를 지정하는 것. min_samples_split 기준에 맞아서 분할을 하더라도 min_samples_leaf 기준에 맞지 않아서 leaf를 만들수 없으면 최종 leaf 노드로 생성되지 않음

 

▶사이킷런의 DecisionClassifier 객체는 feature_importances_을 통해 학습/예측을 위해서 중요한 Feature들을 선택할 수 있게 정보를 제공

 

▶DecisionTreeClassifier 기본 하이퍼 파라미터 : dt_clf.get_params() 

   (참고)dt_clf = DecisionTreeClassifier

 

□ 디시젼트리 과적합(Overfitting)

 

 학습 데이터에만 지나치게 잘 되어있는 것.

 너무 디테일하게 규칙로드가 세워져 있어서 잘못된 결정을 할 수도 있다.

 트리 생성에 제약이 없으면 숲을 보는게 아니라 나무를 세세하게 보면서 이상한 것까지 다 신경쓴다.

 

□ GridSearchCV로 DecisionTreeClassifier 하이퍼 파라미터 튜닝

 

from sklearn.model_selection import GridSearchCV

 

▶GridSearchCV : 사이킷런에서는 분류 알고리즘이나 회귀 알고리즘에 사용되는 하이퍼파라미터를 순차적으로 입력해 학습을 하고 측정을 하면서 가장 좋은 파라미터를 알려준다. GridSearchCV가 없다면 max_depth 가 3일때 가장 최적의 스코어를 뽑아내는지 1일때 가장 최적인 스코어를  뽑아내는지 일일이 학습을 해야 한다. 하지만 grid 파라미터 안에서 집합을 만들고 적용하면 최적화된 파라미터를 뽑아낼 수 있다.