2015-10-02 5 views
5

Ich habe eine Regressor wie folgt definiert:sklearn: Wie einen Regressor oder Klassifikator Objekt in sknn zurückgesetzt

nn1 = Regressor(
layers=[ 
    Layer("Rectifier", units=150), 
    Layer("Rectifier", units=100), 
    Layer("Linear")], 
regularize="L2", 
# dropout_rate=0.25, 
learning_rate=0.01, 
valid_size=0.1, 
learning_rule="adagrad", 
verbose=False, 
weight_decay=0.00030, 
n_stable=10, 
f_stable=0.00010, 
n_iter=200) 

ich diesen Regressor in einer k-fachen Kreuzvalidierung verwenden. Damit die Kreuzvalidierung korrekt funktioniert und nicht von den vorherigen Falten lernt, ist es notwendig, dass der Regressor nach jeder Faltung zurückgesetzt wird.
Wie kann ich das Regressor-Objekt zurücksetzen?

Antwort

1

Das Muster, das ich für Kreuzvalidierung verwende für jedes Training/Testpaar einen neuen Klassifikator instanziiert:

from sklearn.cross_validation import KFold 

kf = KFold(len(labels),n_folds=5, shuffle=True) 
for train, test in kf: 
    clf = YourClassifierClass() 
    clf.fit(data[train],labels[train]) 
    # Do evaluation with data[test] and labels[test] 

Sie können Ihren aktuellen besten Klassifikator in einer separaten Variable und Zugriff auf seine Parameter nach Kreuzvalidierung speichern (dies ist auch nützlich, wenn Sie verschiedene Parameter ausprobieren möchten).

Verwandte Themen