sklearn:如何在 sknn 中重置回归器或分类器对象
sklearn: How to reset a Regressor or classifier object 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)
我在 k 折交叉验证中使用这个回归器。为了使交叉验证正常工作并且不从以前的折叠中学习,有必要在每次折叠后重置回归器。
如何重置回归对象?
我用于交叉验证的模式为每个 training/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]
您可以将当前最好的分类器保存在一个单独的变量中,并在交叉验证后访问其参数(如果您想尝试不同的参数,这也很有用)。
sklearn.base.clone 应该可以实现您想要实现的目标
我定义了一个回归量如下:
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)
我在 k 折交叉验证中使用这个回归器。为了使交叉验证正常工作并且不从以前的折叠中学习,有必要在每次折叠后重置回归器。
如何重置回归对象?
我用于交叉验证的模式为每个 training/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]
您可以将当前最好的分类器保存在一个单独的变量中,并在交叉验证后访问其参数(如果您想尝试不同的参数,这也很有用)。
sklearn.base.clone 应该可以实现您想要实现的目标