Machine Learning/Advanced (hands on machine learning)

18. 결정 트리 - 규제 매개변수

jwjwvison 2021. 5. 21. 22:40

 결정 트리는 훈련 데이터에 대한 제약 사항이 거의 없다(반대로 선형 모델은 데이터가 선형일 거라 가정한다). 제한을 두지 않으면 트리가 훈련 데이터에 아주 가깝게 맞추려고 해서 대부분 과대적합되기 쉽다. 결정 트리는 모델 파라미터가 전혀 없는 것이 아니라(보통 많다) 훈련되기 전에 파라미터 수가 결정되지 않기 때문에 이런 모델을 비파라미터 모델(nonparametric model)이라고 부르곤 한다. 그래서 모델 구조가 데이터에 맞춰져서 고정되지 않고 자유롭다. 반대로 선형 모델 같은 파라미터 모델(aprametric model)은 미리 정의된 모델 파라미터 수를 가지므로 자유도가 제한되고 과대적합될 위험이 줄어든다(하지만 과소적합될 위험은 커진다).

 

 훈련 데이터에 대한 과대적합을 피하기 위해 학습할 때 결정 트리의 자유도를 제한할 필요가 있다. 규제 매개변수는 사용하는 알고리즘에 따라 다르지만, 보통 적어도 결정 트리의 최대 깊이는 제어할 수 있다. 사이킷런에서는 max_depth 매개변수로 이를 조절한다(기본값은 제한이 없는 것을 의미하는 None). max_depth를 줄이면 모델을 규제하게 되고 과대적합의 위험이 감소한다.

 

 DecisionTreeClassifier에는 비슷하게 결정 트리의 형태를 제한하는 다른 매개변수가 몇개 있다. min_samples_split(분할되기 위해 노드가 가져야 하는 최소 샘플 수), min_samples_leaf(리프 노드가 가지고 있어야 할 최소 샘플 수), min_weight_fraction_leaf (min_samples_leaf와 같지만 가중치가 부여된 전체 샘플 수에서의 비율), max_leaf_nodes(리프 노드의 최대 수), max_features(각 노드에서 분할에 사용할 특성의 최대 수)가 있다.