简体   繁体   English

sklearn:如何在sknn中重置一个回归器或分类器对象

[英]sklearn: How to reset a Regressor or classifier object in sknn

I have defined a regressor as follows: 我已经定义了一个回归量如下:

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)

I am using this regressor in a k-fold cross-validation. 我在k-fold交叉验证中使用这个回归量。 In order for cross-validation to work properly and not learn from the previous folds, it's necessary that the regressor to be reset after each fold. 为了使交叉验证正常工作而不从之前的折叠中学习,有必要在每次折叠后重置回归器。
How can I reset the regressor object? 如何重置回归对象?

sklearn.base.clone应该实现你想要实现的目标

The pattern that I use for cross validation instantiates a new classifier for each training/test pair: 我用于交叉验证的模式为每个训练/测试对实例化一个新的分类器:

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]

You can save your current best classifier in a separate variable and access its parameters after cross validation (this is also useful if you want to try different parameters). 您可以将当前最佳分类器保存在单独的变量中,并在交叉验证后访问其参数(如果您想尝试不同的参数,这也很有用)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM