机器之心:几行代码搞定ML模型,低代码机器学习Python库正式开源( 三 )



在无监督模块中的 tune_model 函数 , 比如 pycaret.nlp,pycaret.clustering 和 pycaret.anomaly 可以和监督模块结合使用 。 举例而言 , 通过评估监督 ML 模型中的目标或者损失函数 , PyCaret 的 NLP 模块可以用来调整准确度或 R2 等指标的数值 。
模型集成
ensemble_model 函数用于集成训练好的模型 。 它只需要一个参数 , 即训练好的模型对象 。 此函数返回具有 k 折交叉验证分数和训练好的模型对象的表格 。
# creating a decision tree model
dt = *create_model*('dt')# ensembling a trained dt model
dt_bagged = *ensemble_model*(dt)
机器之心:几行代码搞定ML模型,低代码机器学习Python库正式开源
本文插图

该库默认使用 Bagging 方法用于模型集成 , 用户也可使用 ensemble_model 函数中的 method 参数将其转换为 Boosting 。
PyCaret 还提供了 blend_models 和 stack_models 功能 , 来集成多个训练好的模型 。
模型绘制
训练好的机器学习模型的性能评估和诊断可以通过 plot_model 函数来完成 , 具体而言 , 将训练模型对象和 plot 类型作为 plot_model 函数中的字符串输入(string input) 。
# create a model
adaboost = *create_model*('ada')# AUC plot
*plot_model*(adaboost, plot = 'auc')# Decision Boundary
*plot_model*(adaboost, plot = 'boundary')# Precision Recall Curve
*plot_model*(adaboost, plot = 'pr')# Validation Curve
*plot_model*(adaboost, plot = 'vc')
机器之心:几行代码搞定ML模型,低代码机器学习Python库正式开源
本文插图

此外 , 用户还可以使用 evaluate_model 函数在 notebook 的用户界面上看到可视化图 。
*evaluate_model*(adaboost)
机器之心:几行代码搞定ML模型,低代码机器学习Python库正式开源
本文插图

pycaret.nlp 模块中的 plot_model 函数可用于可视化文本语料库和语义主题模型 。
?模型解释?
数据中的关系呈非线性是实践中常常出现的情况 。 这时总会看到基于树的模型要比简单的高斯模型的表现好得多 。 但这是以牺牲可解释性为代价的 , 因为基于树的模型无法像线性模型那样提供简单的系数 。
PyCaret 通过 interpret_model 函数实现了 SHAP(SHapley Additive exPlanations) 。
# create a model
xgboost = *create_model*('xgboost')# summary plot
*interpret_model*(xgboost)# correlation plot
*interpret_model*(xgboost, plot = 'correlation')
机器之心:几行代码搞定ML模型,低代码机器学习Python库正式开源
本文插图

测试数据集上特定数据点的解释可以通过『reason』图来评估 。 如下图所示:在测试数据集上检查首个实例 。
*interpret_model*(xgboost, plot = 'reason', observation = 0)
机器之心:几行代码搞定ML模型,低代码机器学习Python库正式开源
本文插图

模型预测
到目前为止 , 所看到的结果仅基于训练数据集上 k 折交叉验证(默认 70%) 。 所以为了得到模型在测试或者 hold-out 数据集上的预测结果和性能 , 用户可以使用 predict_model 函数 。 如下所示:
# create a model
rf = *create_model*('rf')# predict test / hold-out dataset
rf_holdout_pred* = predict_model*(rf)
机器之心:几行代码搞定ML模型,低代码机器学习Python库正式开源
本文插图


推荐阅读