2016-11-30 3 views
2

Ich benutze Scikitlearn, um eine SVM zu trainieren. Ich habe mich gefragt, ob es möglich wäre, das Training immer wieder anzuhalten, um die Genauigkeit des aktuellen Modells in meinem Validierungsset zu testen. Letztendlich möchte ich eine Validierungsgenauigkeitskurve erstellen. mit .Fit() trainiert eine SVM den ganzen Weg, aber das gibt mir nur einen Genauigkeitsdatenpunkt am Endescikit lernen SVM stop und Zugriff während des Trainings

Antwort

0

Es gibt einen kleinen Trick, den Sie tatsächlich verwenden können.

Sie können den Parameter max_iter Ihres SVC Klassifikators abspielen. Zum Beispiel können Sie mehrere Klassifikatoren mit unterschiedlicher Anzahl von Iterationen erhalten.

Hier ist, was Sie tun können:

import numpy as np 

for i in np.arange(10, 1000, 100): 
    svm = SVC(max_iter=i) # and your other parameters 
    svm.fit(X, y) 
    ... # here retrieve your metrics 

Dadurch werden Sie so zeigen, wie der Klassifikator auf unterschiedlichen Ebenen der Ausbildung durchführt.

+1

Ich habe dies tatsächlich versucht, bevor ich auf Stack Overflow gepostet habe, aber ich erinnere mich, irgendwo gelesen zu haben, dass .Fit() die Gewichte, die es bereits gelernt hatte, entfernen würde. Ich möchte .Fit() von dort abholen, wo es jedes mal durch die Schleife gegangen ist. –

Verwandte Themen