#!/usr/bin/env python # coding: utf-8 # # Decision Tree를 활용한 Iris 데이터 분류 # ### 1) scikit 활용한 Iris(붓꽃) Data Set 로드 # - 요구되는 패키지 # - pydot2 # - 요구되는 프로그램 # - GraphViz: http://www.graphviz.org/ # - MAC에서 설치하는 방법 # - brew install graphviz # In[1]: from sklearn.datasets import load_iris from sklearn import tree from sklearn.externals.six import StringIO iris = load_iris() print type(iris) # In[2]: iris.data # In[3]: iris.target # ### 2) DecisionTreeClassifier를 활용한 결정 트리 분류 # - classifier (clf) 객체 생성 및 학습 # - DecisionTreeClassifier 객체 활용 # - criterion # - 'gini': Gini impurity # - 'entropy': information gain # In[4]: clf = tree.DecisionTreeClassifier(criterion='entropy') clf = clf.fit(iris.data, iris.target) # In[5]: with open("iris.dot", 'w') as f: tree.export_graphviz(clf, out_file=f) # - 위 코드까지 수행하면 동일 디렉토리에 iris.dot 파일이 생성됨 # - 콘솔에서 다음 명령어로 각종 이미지 파일을 만들 수 있음 # - dot -Tpdf iris.dot > iris.pdf # - dot -Tpng iris.dot > iris.png # # - classifier (clf) 객체를 활용한 새로운 데이터에 대한 분류 추론 # - predict 함수 활용 # In[6]: iris.data[:1] # In[7]: clf.predict(iris.data[:1]) # In[8]: iris.target_names[clf.predict(iris.data[:1])] # In[6]: clf.predict_proba(iris.data[:1]) # In[11]: clf.predict_proba(iris.data[40:110])