GridSearchCV没有高详细度的报告

2024-05-06 00:34:14 发布

您现在位置:Python中文网/ 问答频道 /正文

好吧,我想说的是,刚开始我对SciKit学习和数据科学完全陌生。但这是问题和我目前对这个问题的研究。代码在底部。在

摘要

我尝试用BernoulliRBM进行类型识别(比如数字),并尝试用GridSearchCV找到正确的参数。但是我看不出有什么事发生。我看到了很多使用详细设置的例子,我看到了输出和进度,但我的例子只是说

Fitting 3 folds for each of 15 candidates, totalling 45 fits

然后它坐在那里什么也不做…永远(或8个小时,我用高详细设置等待的最长时间)。在

我有一个相当大的数据集(1000个2D数组,每个数组的大小为428×428),所以这可能是问题所在,但我也将verbosity设置为10,所以我觉得我应该看到某种输出或进展。另外,就我的“目标”而言,它要么是0,要么是1,要么是我要找的对象(1),要么不是(0)。在

以前的研究

  • 我调查了sklearn.预处理为了看看这是否有必要,这似乎不是问题所在(但我再次重申,我对此完全陌生)。在
  • 我增加了冗长
  • 我从使用3D数据列表切换到使用scipy csr矩阵列表。在
  • 我等了8个小时,设置得很详细,我还是看不到任何事情发生。在
  • 我从不使用管道改为使用管道
  • 我篡改了gridsearchcv的各种参数,并尝试创建假的(较小的)数据集来练习。在

    def network_trainer(self, data, files):
        train_x, test_x, train_y, test_y = train_test_split(data, files, test_size=0.2, random_state=0)
    
        parameters = {'learning_rate':np.arange(.25, .75, .1), 'n_iter':[5, 10, 20]}
        model = BernoulliRBM(random_state=0, verbose=True)
        model.cv = 2
        model.n_components = 2
    
        logistic = linear_model.LogisticRegression()
        pipeline = Pipeline(steps=[('model', model), ('clf', logistic)])
    
        gscv = grid_search.GridSearchCV(pipeline, parameters, n_jobs=-1, verbose=10)
        gscv.fit(train_x, train_y)
        print gscv.best_params_
    

我真的很感激你能给我一个正确的方向。谢谢你考虑我的问题。在


Tags: 数据test列表data参数model管道train
3条回答

好吧,我来总结一下过去几天我对它的理解。在

  • 在Windows8.1上,如果您还想让n_jobs变得冗长,请不要将它设置为除1以外的任何值。在
  • 在我的例子中,尽管我只有n_jobs=1,但是我的所有处理器核心仍然参与了计算,所以这要么是一个bug,要么应该有更好的文档记录。在
  • 我犯了一个可怕的错误,使用了一个csr矩阵的列表,所以基本上,阅读文档,然后在提问之前再次阅读。在

再次感谢您@Barmaley.exe文件对于最初的提示。在

你在用ipython笔记本和python2.x吗?如果是,则多处理模块不能与此组合一起工作。您可以将ipython笔记本导出(另存为)一个regular.py文件,并使用常规python解释器运行它。然后可以使用n_jobs=-1

我注意到GridSearch在运行超过1个线程时不会输出任何内容。 当所有的线程完成后,它会打印出所有的内容。 而且多线程处理在Windows中不起作用—仅在Linux中使用n_jobs>;1。在

相关问题 更多 >