PyCaret 的 5 个你不知道的事情
PyCaret 的 5 个你不知道的事情
作者:Moez Ali
PyCaret
PyCaret 是一个开源的 Python 机器学习库,用于在低代码环境中训练和部署监督学习和无监督学习模型。它以易用性和高效性而闻名。
与其他开源机器学习库相比,PyCaret 是一个备选的低代码库,可以用几个单词取代数百行代码。
如果你之前没有使用过 PyCaret 或想要了解更多,一个很好的起点是这里。
“在与许多每天使用 PyCaret 的数据科学家交谈后,我列出了 PyCaret 的 5 个功能,它们鲜为人知,但非常强大。” — Moez Ali
👉 你可以调整无监督实验中的“n 参数”
在无监督机器学习中,“n 参数”即聚类实验中的聚类数、异常检测中异常值的比例以及主题建模中的主题数,至关重要。
当实验的最终目标是使用无监督实验的结果来预测结果(分类或回归)时,**pycaret.clustering **模块中的 tune_model() 函数、**pycaret.anomaly **模块中的 tune_model() 函数以及 **pycaret.nlp **模块中的 tune_model() 函数非常有用。
为了理解这一点,让我们看一个使用 “Kiva” 数据集的示例。
这是一个微型银行贷款数据集,每一行代表一个借款人及其相关信息。列 ‘en’ 捕获每个借款人的贷款申请文本,列 ‘status’ 表示借款人是否违约(违约 = 1 或未违约 = 0)。
你可以使用 **pycaret.nlp **中的 tune_model() 函数,根据监督实验的目标变量(即预测最终目标变量所需的最佳主题数)来优化 **num_topics **参数。你可以使用 estimator 参数(在本例中为 ‘xgboost’)定义训练模型。该函数返回一个经过训练的主题模型,并显示每次迭代的监督指标。
👉 通过增加“n_iter”来改善超参数调优的结果
**pycaret.classification **模块和 **pycaret.regression **模块中的 tune_model() 函数采用预定义的超参数调优的随机网格搜索。这里默认的迭代次数设置为 10。
**tune_model **的结果可能并不一定优于使 用 **create_model **创建的基本模型的结果。由于网格搜索是随机的,你可以增加 **n_iter **参数来提高性能。请看下面的示例:
👉 你可以在 setup 函数中以编程方式定义数据类型
当你初始化 **setup **函数时,将要求通过用户输入确认数据类型。在许多情况下,当你将脚本作为工作流的一部分运行或将其作为远程内核执行(例如 Kaggle 笔记本)时,需要以编程方式提供数据类型,而不是通过用户输入框。
请看下面使用 “insurance” 数据集的示例。
silent 参数设置为 True 以避免输入,**categorical_features **参数以字符串形式接受分类列的名称,**numeric_features **参数以字符串形式接受数值列的名称。