• 1000
Если мне нужно выбрать, кажется, что лучшие места для распараллеливания будут внутри самих классификаторов, а не в StackingClassifier, поскольку он должен только запускать перекрестную проверку, а не построение дерева, однако даже при установке n_jobs = 1 в StackingClassifier, Random Forest использует все ядра, но тогда xgboost не использует более одного ядра. Как я могу настроить это так, чтобы xgboost использовал все доступные ядра?
rfc = RandomForestClassifier(
n_estimators=1000,
max_depth=None,
max_features = 0.2,
bootstrap=True,
random_state=0,
verbose=2,
n_jobs=-1
)
xgb = XGBClassifier(
n_estimators=1000,
max_depth=24,
max_features=0.2,
bootstrap=True,
objective="multi:softprob",
num_class=2,
colsample_bytree=0.3,
gamma=1,
learning_rate=0.01,
subsample=0.9,
random_state=0,
verbosity=2,
nthread=-1,
n_jobs=-1)
estimators = [
('rfc', rfc)
]
stacker = StackingClassifier(
estimators=estimators,
final_estimator=xgb,
stack_method="predict_proba",
verbose=2,
cv=2,
n_jobs=1,
passthrough=True)
calibrator = CalibratedClassifierCV(
base_estimator = stacker,
method="sigmoid",
cv=2)