【问题标题】:A progress bar for scikit-learn?scikit-learn 的进度条?
【发布时间】:2016-03-19 01:05:06
【问题描述】:

有没有办法在 scikit-learn 中为 fit 方法设置进度条?

是否可以包含类似Pyprind 的自定义?

【问题讨论】:

    标签: scikit-learn


    【解决方案1】:

    如果您在调用fit 之前使用verbose=1 初始化模型,您应该会得到某种指示进度的输出。

    例如,sklearn.ensemble.GradientBoostingClassifer(verbose=1) 提供如下所示的进度输出:

      Iter       Train Loss   Remaining Time
         1           1.2811            0.71s
         2           1.2595            0.58s
         3           1.2402            0.50s
         4           1.2263            0.46s
         5           1.2121            0.43s
         6           1.1999            0.41s
         7           1.1876            0.39s
         8           1.1761            0.38s
         9           1.1673            0.37s
        10           1.1591            0.36s
        20           1.1021            0.29s
        30           1.0511            0.27s
        40           1.0116            0.25s
        50           0.9830            0.22s
        60           0.9581            0.19s
        70           0.9377            0.16s
        80           0.9169            0.14s
        90           0.9049            0.12s
       100           0.8973            0.10s
    

    【讨论】:

    • fit() 得到了一个意外的关键字参数 'verbose'
    • 将关键字添加到模型中,而不是 fit 方法调用。此外,据我所知,使用 SVR,设置 verbose=True 没有添加任何输出。
    • 除非我遗漏了什么,用于多类/多标签的元估计器不允许这样的关键字。例如,您不能使用 verbose=True 作为 OneVsRestClassifier() 的参数,只能用于您在其中使用的分类器。这是不幸的,因为您无法感受到高水平的进步。
    【解决方案2】:

    许多模型都支持给出进展的冗长参数(有时是关于收敛速度的指示)。

    例如

    clf = MLPClassifier(verbose=True)

    (see MLPClassifier)

    如果你有学习模型之外的循环,我推荐tqdm

    【讨论】:

      【解决方案3】:

      并非所有 scikit-learn 模型都支持详细参数

      不幸的是,并非所有 scikit-learn 模型都允许 verbose 参数。在我的脑海中,我可以说这些模型不允许详细参数(可能还有更多):

      但奇怪的是,ExtraTreesClassifier 也属于 sklearn.ensemble(就像 AdaBoostClassifier)确实允许这样做。

      看起来并非所有 sklearn.ensemble 的成员都共享相同的基本属性。

      【讨论】:

      猜你喜欢
      • 2020-03-19
      • 2023-04-07
      • 2016-09-15
      • 1970-01-01
      • 2016-08-04
      • 2019-06-27
      • 2013-02-21
      • 2015-03-03
      • 1970-01-01
      相关资源
      最近更新 更多