Uczenie maszynowe i sztuczne sieci neuronowe/DrzewaDecyzyjne cw: Różnice pomiędzy wersjami

Z Brain-wiki
Linia 31: Linia 31:
 
clf = clf.fit(iris.data, iris.target)
 
clf = clf.fit(iris.data, iris.target)
 
</source>
 
</source>
Po wytrenowaniu można zilustrować wynik za pomocą narzedzia Graphiz:
+
Po wytrenowaniu można zilustrować wynik za pomocą narzedzia [http://www.graphviz.org/ Graphiz] (wymaga to zainstalowania w systemie tego narzędzia), oraz doinstalowania do pythona biblioteki  <tt>pydot</tt>:
 
<source lang = python>
 
<source lang = python>
 
from sklearn.externals.six import StringIO   
 
from sklearn.externals.six import StringIO   

Wersja z 18:33, 2 sty 2016

Wstęp

W bibliotece scikit-learn drzewa decyzyjen iplementowane są przez klasę DecisionTreeClassifier

Aby nauczyć taki klasyfikator potrzebujemy tablicę X o rozmiarach [N_przykładów, N_cech] i wektor Y określający przynależność przykładów w X do klas.

Najprostszy przykład:

from sklearn import tree
X = [[0, 0], [1, 1]]
Y = [0, 1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, Y)

Po dopasowaniu można przewidywać przynależność nowych przykładów:

clf.predict([[2., 2.]])

Albo estymować prawdopodobieństwo przynależności do klas:

clf.predict_proba([[2., 2.]])

Przykład zbiór danych Iris

from sklearn.datasets import load_iris
from sklearn import tree
iris = load_iris()
clf = tree.DecisionTreeClassifier()
clf = clf.fit(iris.data, iris.target)

Po wytrenowaniu można zilustrować wynik za pomocą narzedzia Graphiz (wymaga to zainstalowania w systemie tego narzędzia), oraz doinstalowania do pythona biblioteki pydot:

from sklearn.externals.six import StringIO  
import pydot 
dot_data = StringIO() 
tree.export_graphviz(clf, out_file=dot_data) 
graph = pydot.graph_from_dot_data(dot_data.getvalue()) 
graph.write_pdf("iris.pdf")