Ответ 1
Существуют очень специфические классы классификаторов или регрессоров, которые напрямую сообщают о оставшемся времени или ходе вашего алгоритма (количество итераций и т.д.). Большинство из них можно включить, передав конструктору отдельных моделей опцию verbose=2
(любое высокое число > 1). Примечание.. Это поведение соответствует sklearn-0.14. Более ранние версии имеют немного отличающийся подробный вывод (по-прежнему полезно).
Лучшим примером этого является ensemble.RandomForestClassifier
или ансамбль .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 fit оставшееся время