Python 用pybrain优化算法求解搜索问题

Python 用pybrain优化算法求解搜索问题,python,optimization,pybrain,hill-climbing,Python,Optimization,Pybrain,Hill Climbing,我最近开始使用pybrain库来解决使用神经网络的分类问题,通过一些努力和文档,我使它工作起来 现在,我想使用同一个库中的黑盒优化算法,但不应用于分类 基本上,我试图重现兰迪博客的一些结果 因此,作为第一步,我使用以下代码片段构建了受监督的数据集: ds = SupervisedDataSet(2, 2) for row in range(len(waldo_df)): ds.addSample(inp=waldo_df.iloc[row][['Book', 'Page']], targ

我最近开始使用pybrain库来解决使用神经网络的分类问题,通过一些努力和文档,我使它工作起来

现在,我想使用同一个库中的黑盒优化算法,但不应用于分类

基本上,我试图重现兰迪博客的一些结果

因此,作为第一步,我使用以下代码片段构建了受监督的数据集:

ds = SupervisedDataSet(2, 2)
for row in range(len(waldo_df)):
    ds.addSample(inp=waldo_df.iloc[row][['Book', 'Page']], target=waldo_df.iloc[row][['X', 'Y']])
return ds
现在,数据集中的一个示例如下所示:

ds.getSample()
[array([ 5.,  8.]), array([ 3.51388889,  4.31944444])]
在下一步中,我将使用HillClimber算法找到最佳路径:

ef = ds.evaluateModuleMSE
init_value = ds.getSample()
learner = HillClimber(evaluator=ef, initEvaluable=init_value, minimize=True)
learner.learn()
我得到的例外是:

/Users/maestro/anaconda/lib/python2.7/site-packages/pybrain/datasets/supervised.pyc in evaluateModuleMSE(self, module, averageOver, **args)
 96         res = 0.
 97         for dummy in range(averageOver):
 ---> 98             module.reset()
 99             res += self.evaluateMSE(module.activate, **args)
100         return res/averageOver

AttributeError: 'numpy.ndarray' object has no attribute 'reset'
有人能帮我找出我做错了什么吗?关于这方面的文档非常稀少,甚至在代码库中搜索也没有帮助

谢谢

如果我正确阅读API,请注意

class pybrain.optimization.HillClimber(evaluator=None, initEvaluable=None, **kwargs)
最简单的随机搜索:健身景观中的爬山

优化算法只需要使用evaluator,在我的例子中,它将是ds.evaluateModuleMSE

使现代化 整个代码片段是:

 import pandas as pd
 from pybrain.optimization import HillClimber
 from pybrain.datasets import SupervisedDataSet
 waldo_df = pd.read_csv('whereis-waldo-locations.csv')
 ds = SupervisedDataSet(2, 2)
 for row in range(len(waldo_df)):
   ds.addSample(inp=waldo_df.iloc[row][['Book', 'Page']],     target=waldo_df.iloc[row][['X', 'Y']])
 learner = HillClimber(evaluator=ds.evaluateModuleMSE,    initEvaluable=ds.getSample(), minimize=True)

如何创建网络?你能提供更多的代码吗?我需要创建网络吗?这不是一个分类问题。例如,在本页上有一些不需要构建网络的优化问题。也许我误解了什么。@user1615070,除了读取waldo数据集之外,所有代码都是错误的present@user1615070,我用精确的问题更新了问题,以重现问题。这是我的错,你不需要网络来做这些事情。我重现了你的问题,但我还不知道。你研究过pybrain的代码吗?我在HillClimber初始化之前放置了断点,当我调用ds.evaluateModuleMSE时,我得到了相同的错误-所以可能是dataset的问题?