一、FLAML介绍

        FLAML (Fast and Lightweight AutoML) 是一个用于自动机器学习(AutoML)的 Python 库,旨在快速且资源效率高地找到机器学习任务的最优模型和其超参数。它由微软研究院开发,适用于广泛的机器学习任务,如分类、回归和时间序列预测。

二、FLAML 的特点包括

  1. 效率:FLAML 专注于在有限的计算资源下快速找到高性能模型。
  2. 易用性:提供简单的 API,用户只需几行代码就可以启动 AutoML 过程。
  3. 自适应:它会根据数据的特征自动调整学习过程,无需手动微调。
  4. 多样性:支持多种机器学习框架,如 Scikit-learn、XGBoost、LightGBM、CatBoost 等。
  5. 可扩展性:用户可以自定义搜索空间或添加新的学习器以扩展 FLAML 的功能。

三、 快速开始示例

以下是一个使用 FLAML 进行分类任务的简单示例:

首先,你需要安装 FLAML。可以通过 pip 进行安装:

#首先,你需要安装 FLAML。可以通过 pip 进行安装:
pip install flaml


#然后,你可以使用以下代码示例来运行一个简单的 AutoML 任务:
from flaml import AutoML
from sklearn.datasets import load_iris

# 加载数据
X, y = load_iris(return_X_y=True)

# 初始化 AutoML 对象
automl = AutoML()

# 设置自动机器学习任务和时间限制
automl.fit(X_train=X, y_train=y, task="classification", time_budget=60)

# 输出最佳模型
print(automl.model)

        在这个例子中,AutoML 类自动处理了模型选择和超参数调优的过程,而你只需要提供数据和指定任务类型(如分类)及时间预算(单位为秒)。

        FLAML 是一个强大的工具,适合那些希望快速实现高效机器学习模型的数据科学家和开发者。它的设计考虑到了实际应用中计算资源的限制,使其成为处理各种机器学习任务的理想选择。

四、metric参数设置

        在使用 FLAML 或其他机器学习模型进行回归任务时,选择一个合适的评估指标(metric)对于优化模型表现非常关键。当你处理的回归任务中目标变量的离散度(变异性)较小,即目标值比较接近时,选择一个能够敏感地反映误差变化的指标尤为重要。

常见的回归评估指标
        以下是一些常用的回归评估指标,可以根据你的具体需求选择适用的一个:

        1、均方误差(MSE, Mean Squared Error):

               定义为预测值与实际值之差的平方的平均值。
               对大的误差给予更大的惩罚,但在目标变量离散度小的情况下,它可能对小的误差变化                   不够敏感。

        2、均方根误差(RMSE, Root Mean Squared Error):

         是 MSE 的平方根,相比 MSE 有更直观的物理意义(与目标变量同单位),对离群值敏感。
        3、平均绝对误差(MAE, Mean Absolute Error):
        计算预测值与实际值之差的绝对值的平均。
        相比 MSE 和 RMSE,MAE 对异常值的敏感度较低,适用于目标变量的离散度较小。
        4、R² 或决定系数:
        衡量模型对数据变异性的解释程度。
        当离散度较小时,即使是小的改善也可能导致 R² 的显著变化。

如何在 FLAML 中设置评估指标:
       在 FLAML 中,你可以通过 metric 参数来指定使用哪种评估指标。根据你的描述,若目标变量的离散度较小,可以考虑使用 MAE,因为它对小的差异更为敏感,而不会过分放大大的误差,这在数值相近的数据中尤为重要。

以下是如何在 FLAML 中设置 MAE 作为评估指标的示例:

from flaml import AutoML
from sklearn.datasets import load_boston

# 加载数据
X, y = load_boston(return_X_y=True)

# 初始化 AutoML 对象
automl = AutoML()

# 设置自动机器学习任务、时间限制和评估指标
automl.fit(X_train=X, y_train=y, task="regression", metric='mae', time_budget=120)

# 输出最佳模型
print(automl.model)

       通过这样的设置,FLAML 将使用 MAE 来评估不同模型的性能,帮助你找到在预测精度上更为精细的模型。选择合适的评估指标可以显著影响 AutoML 的搜索效率和最终模型的性能。

04-26 19:04