2017-07-04 6 views
0

Ich bin durch die folgende IPython Notebook gehen, die die Iris datasetScoring Vorhersagen in sklearn (Python maschinelles Lernen)

An einem Punkt im Notebook analysiert der Autor das folgende Modell baut:

enter image description here

An diesem Punkt wurde ich sehr verwirrt. Was passiert in der letzten Zeile? Aus was ich gelernt habe, sollten Sie eine Vorhersage basierend auf dem Modell erstellen und dann diese Vorhersage mit den Werten y_test vergleichen.

predictions = decision_tree_classifier.predict(X_test) 
from sklearn.metrics import classification_report 
print classification_report(y_test, predictions) 

Was los ist, wenn der Autor eine Punktzahl auf den testing_inputs und die testing_classes basierend erzeugt:

würde ich folgende getan haben?

+0

Es wäre eine bessere Idee, Ihre Frage in https://datascience.stackexchange.com/ zu stellen –

Antwort

4

Vom docs:

Score (x, y, sample_weight = None)

die mittlere Kosten Genauigkeit auf den gegebenen Testdaten und Etiketten.

Und das ist genau das, was es tut. Es führt intern eine Vorhersage unter X_test aus, generiert y_pred und vergleicht es mit y_test, um eine Genauigkeitsbewertung zu berechnen.

Was Sie tun, ist ähnlich, aber in zwei Schritten. Sie prognostizieren zuerst und vergleichen dann mit y_test. Darüber hinaus drucken Sie die Genauigkeit, den Abruf und den f1-Wert aus.

2

Wenn Sie @ Coldspeed's Antwort ein wenig Detail hinzufügen, ruft score für DecisionTreeClassifiersklearn.metrics.accuracy_score auf. Dies ist der Prozentsatz der korrekt vorgenommenen Klassifizierungen. Ich weise nur darauf hin, weil ich die "mittlere Genauigkeit" nicht so intuitiv finde.

from sklearn.metrics import accuracy_score 
y_pred = [0, 2, 1, 3] 
y_true = [0, 1, 2, 3] 

accuracy_score(y_true, y_pred) 
Out[106]: 0.5 
Verwandte Themen