Код: Выделить всё
import numpy as np
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import StackingClassifier
import lightgbm as ltb
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import StratifiedKFold
X,y = load_iris(return_X_y=True)
cv = StratifiedKFold(n_splits=10)
lgbm = ltb.LGBMClassifier(n_jobs=4)
rf = RandomForestClassifier()
Код: Выделить всё
%%time
scores = cross_val_score(lgbm, X, y, scoring='accuracy', cv=cv, n_jobs=4, error_score='raise')
np.mean(scores)
Код: Выделить всё
%%time
scores = cross_val_score(rf, X, y, scoring='accuracy', cv=cv, n_jobs=-1, error_score='raise')
np.mean(scores)
Код: Выделить всё
%%time
estimators = [
('rf', rf),
('lgbm,', lgbm)
]
clf = StackingClassifier(
estimators=estimators, final_estimator=lgbm, passthrough=True)
scores = cross_val_score(clf, X, y, scoring='accuracy', cv=cv, n_jobs=4, error_score='raise')
np.mean(scores)
Например, использование ЦП при работе отдельного LightGBM:
Использование ЦП при работе отдельного LightGBM
(в основном стабильно 100%, что позволяет эффективно использовать процессор)
Использование процессора при запуске Lightgbm в качестве классификатора стекирования
(повсюду, обычно это далеко не 100%)
Я делаю что-то не так, из-за чего StackingClassifier работает намного медленнее, чем сумма частей?
Подробнее здесь: https://stackoverflow.com/questions/730 ... -cpu-usage