2015-10-02 17 views
5

Ho definito un regressore come segue:sklearn: come reimpostare una Regressor o un oggetto classificatore in sknn

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) 

Sto usando questo regressore in un cross-validazione k-fold. Affinché la validazione incrociata funzioni correttamente e non impari dalle pieghe precedenti, è necessario reimpostare il regressore dopo ogni piega.
Come posso ripristinare l'oggetto regressore?

risposta

1

Il modello che uso per la convalida incrociata un'istanza di un nuovo classificatore per ogni coppia di formazione/test:

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] 

È possibile salvare il migliore classificatore corrente in una variabile indipendente e accedere ai suoi parametri dopo la convalida incrociata (questo è anche utile se vuoi provare diversi parametri).

Problemi correlati