预测scikit学习分类将运行多长时间
classification
machine-learning
python
scikit-learn
5
0

有没有一种方法可以根据参数和数据集来预测从sci-kit学习运行分类器需要多长时间?我知道,很漂亮,对吧?

一些分类器/参数组合非常快,而有些则花费了很长时间,以至于我最终干掉了这个过程。我想要一种提前估计需要多长时间的方法。

另外,我会接受一些有关如何设置公共参数以减少运行时间的指针。

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

有非常特定的分类器或回归类,它们直接报告算法的剩余时间或进度(迭代次数等)。通过将verbose=2 (任何大于1的高数字)选项传递给各个模型的构造函数,可以打开大多数功能。 注意:此行为符合sklearn-0.14。早期版本的详细输出有些不同(尽管仍然有用)。

最好的例子是ensemble.RandomForestClassifier或ensemble.GradientBoostingClassifier`,它们显示到目前为止已构建的树数和剩余时间。

clf = ensemble.GradientBoostingClassifier(verbose=3)
clf.fit(X, y)
Out:
   Iter       Train Loss   Remaining Time
     1           0.0769            0.10s
     ...

要么

clf = ensemble.RandomForestClassifier(verbose=3)
clf.fit(X, y)
Out:
  building tree 1 of 100
  ...

此进度信息对于估计总时间非常有用。

然后还有其他模型,例如SVM,可打印完成的优化迭代次数,但不直接报告剩余时间。

clf = svm.SVC(verbose=2)
clf.fit(X, y)
Out:
   *
    optimization finished, #iter = 1
    obj = -1.802585, rho = 0.000000
    nSV = 2, nBSV = 2
    ...

据我所知,线性模型之类的模型不提供此类诊断信息。

检查此线程以了解更多详细级别的含义: scikit-learn适合剩余时间

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号