也可以指定查看和输出某些指标:
exp1.plot_model(tune_gbr, plot = 'error')
exp1.plot_model(tune_gbr, plot = 'feature')
exp1.plot_model(tune_gbr, plot = 'parameter')
exp1.plot_model(tune_gbr, plot = 'learning')
exp1.plot_model(tune_gbr, plot = 'vc')
5.interpret_model(模型解释)
还有另一种方法可以解释模型,但是它只支持基于树的模型用于二元分类,比如随机森林(rf)、LightGBM、决策树(dt)等。注意:它只支持基于树的模型用于二元分类;不支持回归。
from pycaret.datasets import get_data
from pycaret.classification import *
data = get_data('diabetes')
exp1 = ClassificationExperiment()
exp1.setup(data, target = 'Outcome', session_id = 123)
rf = exp1.create_model('rf', fold=5)
exp1.interpret_model(rf)
ensemble_model函数用于创建给定基础模型的集成模型,应用诸如装袋(bagging)或提升(boosting)等技术来提升其性能。
默认情况下,ensemble_model应用装袋(bagging)方法。装袋(Bootstrap Aggregating)涉及在训练数据的不同子集上创建多个模型版本,然后对它们的预测进行平均。这种技术特别有效地降低了方差,并提高了对于容易过拟合的模型的准确性。
dt = exp1.create_model('dt')
bagged_dt = exp1.ensemble_model(dt)
boosted_dt = exp1.ensemble_model(dt, method = 'Boosting')
也可以模型融合(blend):
blender = exp1.blend_models(estimator_list = top3_exp1)
print(blender)
PyCaret中的stack_models函数是一种高级集成技术,用于将多个不同的机器学习模型组合起来,以提高预测性能。堆叠,也称为堆叠泛化(stacked generalization),涉及训练一个新模型来组合多个基础模型的预测。
stacker = exp1.stack_models(estimator_list=top3_exp1)
print(stacker)
StackingRegressor(cv=5,
estimators=[
('CatBoost Regressor',<catboost.core.CatBoostRegressor object at 0x7f98bee50ac0>),
('Light Gradient Boosting Machine',
LGBMRegressor(boosting_type='gbdt',
class_weight=None,
colsample_bytree=1.0,
importance_type='split',
learning_rate=0.1, max_depth=-1,
min_child_samples=20,
min_child_weight=0.001,
min_split_gain=0.0,
n_estimators=...
max_leaf_nodes=None,
max_samples=None,
min_impurity_decrease=0.0,
min_samples_leaf=1,
min_samples_split=2,
min_weight_fraction_leaf=0.0,
monotonic_cst=None,
n_estimators=100, n_jobs=-1,
oob_score=False,
random_state=42, verbose=0,
warm_start=False))
],
final_estimator=LinearRegression(copy_X=True, fit_intercept=True,n_jobs=-1, positive=False),
n_jobs=-1, passthrough=False, verbose=0)