2015-10-02 2 views
5

Я определил регрессор следующим образом:sklearn: Как сбросить REGRESSOR или объект классификаторов в 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) 

Я использую этот регрессор в к-кратная кросс-проверка. Для того, чтобы кросс-валидация работала должным образом и не училась из предыдущих сгибов, необходимо, чтобы регрессор был сброшен после каждой складки.
Как сбросить объект регрессора?

ответ

1

Узор, который я использую для перекрестной проверки инициализирует новый классификатор для каждой тренировки/тестовой пары:

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] 

Вы можете сохранить свой текущий лучший классификатор в отдельном переменном и получить доступ к его параметрам после перекрестной проверки (это также полезно, если вы хотите попробовать разные параметры).