머신러닝

sklearn DecisionTreeClassifier 의 Gini impurity 계산 사례

coding art 2019. 4. 29. 16:38
728x90


파이선 코딩을 배우는 초보자도 머신 러닝에 독학으로 한번 도전해 보자.

왜냐구요? 그다지 어렵지 않으니까요!

머신 러닝을 배우려는 파이선 코딩 초보자들이 가지게 될 확률이 높은 의문점들을

하나하나 찾아내어 실제 풀어보고 결과를 확인해볼 수 있는 머신 러닝!

인터넷 교보문고에서 450페이지19900원에 판매중입니다.











________________________________________________________________________________________________________________________




DecisionTreeClassifier를 사용하는 머신 러닝은 방법론 차원에서 여타의 머신 러닝 기법들과 비교해 볼 때에 가장 간단하다고 볼 수 있다. 워낙 간단하기 때문에 변호사들이나 검사들이 순진한 증인들을 대상으로 유도 신문할 때 즐겨 쓰는 이유가 아닐까? 하지만 머신 러닝 코드로 구현하기 위해서는 오히려 더욱 어렵게 느껴지는 것은 무슨 이유일까?

 

Setosa, Versicolor, Virginica 각각 50개의 데이터로 구성된 Iris flowers data150개 중 70%를 학습 데이터를 사용하여 DecisionTreeClassifier 학습 결과가 위 그림에 나타나 있다. 50개로 구성된 합 150개의 70%를 취하면 sample =105 value = [35, 35, 35] 가 된다.

 

첫 번째 즉 “petal_width(꽃받침 폭) 0.75 cm 보다 작은가라는 질문을 통해 Setosaclassification 해 보자. 105개의 petal_width 학습 데이터를 대상으로 if 문에 의해 간단하게 처리 될 수 있다. ;l 그림을 참조하면 Setosa petal_width 0.75 cm 보다 작다는 조건 하나로 깔끔하게 분류가 됨을 알 수 있다.

 

K개의 class 라벨이 있는 샘플들의 Classification 작업에서 Gini impurity는 다음과 같이 정의 된다. 엔트로피에 비해서는 상대적으로 쉽게 계산이 가능하다.


아래 url 주소로 넘어가서 마저 읽어 보세요.

https://steemit.com/kr/@codingart/1-17-sklearn-decisiontreeclassifier-gini-impurity