有什么方法可以为scikit learn中的fit方法设置进度条吗?
有可能把一个定制的和Pyprind一样的东西包括在内吗?
如果在调用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
许多模型都支持一个详细的参数,该参数提供进度(有时还指示收敛速度)。
例如
clf = MLPClassifier(verbose=True)
(参见MLP分类器)
如果你在学习模式之外有一个循环,我推荐tqdm。
并非所有scikit学习模型都支持verbose参数
不幸的是,并非所有scikit-learn模型都允许使用verbose参数。在我的脑海中,我可以说这些模型不允许详细的参数(可能还有更多):
- AdaBoost分类器
- 决策树分类器
- OneVsRestClassifier
然而,奇怪的是,ExtraTreesClassifier也属于sklearn.集成(就像AdaBoostClassifier,它确实允许它。
看起来并非所有sklearn.essembly的成员都共享相同的基本属性。