Почему Verbose=True не показывает никаких выходных данных с помощью VotingClassifier?

#scikit-learn

#scikit-learn

Вопрос:

Это в документации, которая verbose=True выводит прошедшее время, но для меня это не так:

 from sklearn.ensemble import VotingClassifier

voting_c_all = VotingClassifier(
    estimators=[
        ('random_forest', gs_forest2),
        ('grid_search', gs),
    ],
    voting='soft',
    verbose=True,
    n_jobs=-1
)

voting_c_all.fit(X_res, y_res)

  

Ответ №1:

Используя пример из руководства:

 import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier, VotingClassifier
clf1 = LogisticRegression(multi_class='multinomial', random_state=1)
clf2 = RandomForestClassifier(n_estimators=50, random_state=1)

X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
y = np.array([1, 1, 1, 2, 2, 2])
eclf1 = VotingClassifier(estimators=[('lr', clf1), ('rf', clf2)], voting='soft',verbose=True)
eclf1 = eclf1.fit(X, y)

[Voting] ....................... (1 of 2) Processing lr, total=   0.0s
[Voting] ....................... (2 of 2) Processing rf, total=   0.1s
  

Но как только вы установите n_jobs значение больше 1, задание должно быть отправлено на другие ядра, и вы не видите печать, следовательно, не отслеживает время:

 eclf1 = VotingClassifier(estimators=[('lr', clf1), ('rf', clf2)], voting='soft',verbose=True,n_jobs=2)
eclf1 = eclf1.fit(X, y)