MLJAR Supervised: 强大的自动化机器学习工具
MLJAR Supervised是一个功能强大的自动化机器学习(AutoML)Python库,专门用于处理表格数据。它的设计目标是帮助数据科学家节省宝贵的时间,通过自动化常见的机器学习工作流程,让数据科学家能够更专注于业务问题和数据分析。
主要特点
MLJAR Supervised具有以下几个突出的特点:
-
多种算法支持: 它支持多种机器学习算法,包括Baseline、Linear、Random Forest、Extra Trees、LightGBM、Xgboost、CatBoost、Neural Networks和Nearest Neighbors等。
-
自动特征工程: 能够自动进行特征预处理,如缺失值填充和类别变量转换。此外,还支持高级特征工程,如Golden Features、特征选择、文本和时间序列转换等。
-
超参数调优: 使用"不太随机"的搜索算法和爬山算法对模型进行超参数调优,以找到最佳模型。
-
模型集成: 可以基于贪婪算法计算模型集成,还可以堆叠模型构建二级集成。
-
可解释性: 非常注重模型的可解释性。它会为每个算法计算基于排列的特征重要性,并生成SHAP解释。
-
自动文档生成: 为每次AutoML实验运行自动生成详细的Markdown报告,包含ML细节、指标和图表。
工作模式
MLJAR Supervised提供了四种内置的工作模式:
-
Explain模式: 适用于解释和理解数据,提供决策树可视化、线性模型系数展示、排列重要性和SHAP解释等。
-
Perform模式: 用于构建生产环境可用的ML管道。
-
Compete模式: 训练高度调优的ML模型,并进行集成和堆叠,适用于ML竞赛。
-
Optuna模式: 用于搜索高度调优的ML模型,当性能最重要且计算时间不受限制时使用。
使用示例
下面是一个简单的二分类示例,展示了MLJAR Supervised的基本用法:
import pandas as pd
from sklearn.model_selection import train_test_split
from supervised.automl import AutoML
# 加载数据
df = pd.read_csv("https://raw.githubusercontent.com/pplonski/datasets-for-start/master/adult/data.csv", skipinitialspace=True)
X_train, X_test, y_train, y_test = train_test_split(df[df.columns[:-1]], df["income"], test_size=0.25)
# 初始化并训练AutoML
automl = AutoML()
automl.fit(X_train, y_train)
# 进行预测
predictions = automl.predict(X_test)
这个简单的示例展示了如何使用MLJAR Supervised来训练模型并进行预测。AutoML会自动处理特征工程、算法选择、超参数调优等步骤,大大简化了机器学习的工作流程。
公平性感知训练
从1.0.0版本开始,MLJAR Supervised引入了公平性感知训练功能。这允许用户在AutoML过程中考虑敏感特征,优化机器学习管道以满足公平性标准。主要的公平性相关参数包括:
fairness_metric
: 用于决定模型是否公平的指标fairness_threshold
: 用于判断模型公平性的阈值privileged_groups
: 用于计算公平性指标的特权群体underprivileged_groups
: 用于计算公平性指标的非特权群体
MLJAR Supervised支持两种偏差缓解方法:样本加权和智能网格搜索。这些方法可以与所有算法一起使用,包括Ensemble和Stacked Ensemble。
自动文档生成
MLJAR Supervised的一个独特优势是它能够自动为每个ML实验生成详细的文档。这些文档以Markdown格式呈现,包含了模型训练的各种细节、性能指标和可视化图表。
自动生成的报告通常包括:
- AutoML总结报告,展示了每个模型的得分和训练时间。
- 各个算法的详细报告,如决策树可视化、特征重要性图等。
- 模型性能的散点图和箱线图,方便直观比较不同算法的表现。
这种自动文档生成功能极大地提高了机器学习项目的可解释性和可重复性,使得团队协作和结果分享变得更加容易。
安装和使用
MLJAR Supervised可以通过pip轻松安装:
pip install mljar-supervised
对于使用Conda的用户,可以通过以下命令安装:
conda install -c conda-forge mljar-supervised
结论
MLJAR Supervised是一个功能强大且易于使用的AutoML工具,它不仅能够自动化机器学习工作流程,还提供了丰富的可解释性功能和详细的文档。无论是对于初学者还是经验丰富的数据科学家,MLJAR Supervised都是一个值得尝试的工具,它可以帮助你更快速、更高效地完成机器学习项目。
通过自动化繁琐的任务和提供深入的洞察,MLJAR Supervised让数据科学家能够将更多精力集中在理解业务问题和解释模型结果上,从而做出更好的决策。随着公平性感知训练等新功能的加入,它还帮助用户构建更加公平和负责任的机器学习模型,这在当今的AI伦理和负责任AI发展中显得尤为重要。
无论你是在进行数据探索、构建生产级模型还是参加机器学习竞赛,MLJAR Supervised都能为你提供强大的支持。它的灵活性、可解释性和自动化程度使其成为现代数据科学工具箱中不可或缺的一员。