scikit-learn的进度条?

42 scikit-learn

有没有办法在scikit-learn中使用fit方法的进度条?

是否可以包含像Pyprind这样的定制产品

max*_*moo 37

如果verbose=1在调用之前初始化模型,fit则应获得指示进度的某种输出.例如,GradientBoostedClassifer提供如下所示的进度输出:

  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
Run Code Online (Sandbox Code Playgroud)

  • fit()得到了一个意外的关键字参数'verbose' (3认同)
  • 将关键字添加到模型中,而不是fit方法调用.此外,使用SVR,设置verbose = True,据我所知,没有添加输出. (3认同)
  • 除非我缺少任何内容,否则用于多类/多标签的元估算器不允许使用此类关键字。例如,您不能将verbose = True用作OneVsRestClassifier()的参数,而只能用于其中使用的分类器。这很不幸,因为您无法获得高水平的进展感。 (2认同)

sev*_*bar 28

许多模型支持一个冗长的论证,该论证给出了进展(有时也表明了收敛速度).

例如

clf = MPLClassifier(verbose=True)

(见MLPClassifier)

如果你在学习模型之外有一个循环,我推荐tqdm.


小智 11

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

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

然而奇怪的,也属于sklearn.ensemble 的 ExtraTreesClassifier(就像AdaBoostClassifier)确实允许它。

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