自动机器学习 Python 等效代码解释
简介
机器学习是一个快速发展的领域,新技术和算法一直在不断涌现。然而,创建和增强机器学习模型可能是一项耗时且具有挑战性的任务,需要高度的专业知识。自动机器学习(通常称为 autoML)旨在通过自动执行许多劳动密集型任务(例如特征工程、超参数调整和模型选择)来简化机器学习模型的创建和优化。
auto-sklearn 建立在 Python 中最著名的机器学习库之一 scikit-learn 之上,是一个强大的自动机器学习开源框架。它有效地搜索潜在的机器学习管道空间,并使用贝叶斯优化和元学习自动识别给定数据集的最佳模型和超参数。本教程将介绍 Python 中 Auto-sklearn 的使用方法,以及如何安装、导入数据、进行数据准备、创建和训练模型以及评估模型有效性的说明。即使是新手也可以使用 Auto-sklearn 快速简单地创建强大的机器学习模型。
处理 node-red 中错误的方法
Auto-sklearn
使用高效的开源软件程序 Auto-sklearn 可以自动创建和持续增强机器学习模型。使用贝叶斯优化和元学习可以自主找到特定数据集的理想模型和超参数,而元学习本身基于著名的机器学习程序 scikit-learn。增加。
autosklearn 为分类和回归问题创建的几个应用程序中,只有少数几个包括自然语言处理、图片分类和时间序列预测。
该库通过在一组潜在的机器学习管道中进行搜索来运行,这些管道包括特征工程、模型选择和数据准备过程。它使用贝叶斯优化有效地搜索这个空间,并通过使用元学习从以前的测试中学习来不断提高其搜索效率。
此外,Auto-sklearn 提供了许多强大的功能,包括动态集成选择、自动模型集成和主动学习。此外,它还提供了易于使用的 API 来开发、测试和训练模型。
AutoML 代码
现在让我们使用 Auto-sklearn 更详细地检查 AutoML 代码。我们将使用 scikit-learn 中的数字数据集,这是一个手写数字的数据集。目标是从数字图片预测数字。这是代码 -
程序
import autosklearn.classification from sklearn.datasets import load_digits from sklearn.model_selection import train_test_split # 加载数据集 X, y = load_digits(return_X_y=True) X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1) # 创建并拟合 AutoML 模型 automl = autosklearn.classification.AutoSklearnClassifier(time_left_for_this_task=180, per_run_time_limit=30) automl.fit(X_train, y_train) # 在测试集上评估模型 print("Accuracy:", automl.score(X_test, y_test))
输出
Accuracy: 0.9866666666666667
代码说明
此程序使用自动机器学习 (AutoML) 对 MNIST 数据集中的手写数字进行分类,其中包括使用 Auto-sklearn 模块。以下是代码的简要概述 -
从 autosklearn.classification 模块导入 AutoSklearnClassifier 类,其中包含将要使用的 AutoML 分类模型,导入 autosklearn.classification 模块。
来自 sklearn.datasets 导入加载数字:这将从 sklearn.datasets 包导入 MNIST 数据集的加载数字函数。
从 sklearn 进行模型选择使用来自 sklearn.model 选择模块的训练测试拆分函数将 MNIST 数据集分为训练集和测试集,该模块在此处导入。
加载 MNIST 数据集,输入特征存储在 X 中,相应的标签存储在 y 中。 X, y = load digits(return X y=True): 这将加载 MNIST 数据集。
X train, X test, y train, y test = train test split(X, y, random state=1) 将数据集以 75:25 的比例拆分为训练集和测试集,并将随机种子设置为 1 以实现可重复性。
Automl 等于 autosklearn.classification。AutoSklearnClassifier(每次运行时间限制 = 30,此任务剩余时间 = 180):将在 MNIST 数据集上进行训练的 AutoML 模型是通过作为 AutoSklearnClassifier 类的实例执行此操作形成的。每次运行的时间限制表示每个模型可以运行的最长时间(以秒为单位),而此作业的剩余时间表示 AutoML 过程可以运行的最长时间(以秒为单位)。
通过使用 automl.fit 函数 (X train, y train),使用训练集 X train 和相关标签 Y train 训练 AutoSklearnClassifier 模型。
accuracy:", print(X test, y test), automl.score 在评估 AutoSklearnClassifier 模型在 X test 和 Y test 相关标签上的表现后,确定其在测试集上的准确率。score 方法给出模型在给定数据集上的准确率。
上述代码实现了 AutoML 方法,这是一种机器学习技术,可自动执行模型构建过程的每个步骤,包括特征选择、超参数调整和数据准备。即使是非专家也可以借助 AutoML 创建强大的模型,从而减少手动创建机器学习模型所需的劳动力。
首先将所需的库(例如 pandas、numpy、sklearn 和 tpot)导入代码。Sklearn 用于机器学习任务,如数据预处理、模型选择和评估,Pandas 用于数据处理,NumPy 用于数值计算。用于实现 AutoML 算法的主要库是 TPOT。
然后使用 pandas read csv 函数加载数据集,并将输入特征和输出标签分成不同的变量。'y' 变量保存输出的标签,而 'X' 变量存储输入的特征。
为了拟合数据并生成机器学习模型,代码首先加载数据集,然后创建 TPOTRegressor 类的实例。TPOTBase 类的子类 TPOTRegressor 使用遗传算法来选择特征并调整超参数。回归问题由 TPOTRegressor 类处理,而分类问题由 TPOTClassifier 类处理。
使用 Sklearn 的训练-测试-拆分方法将数据集划分为训练集和测试集。数据被划分为两组,这是机器学习中的常见做法:用于拟合模型的训练集和用于评估模型性能的测试集。
拆分数据后,将调用 TPOTRegressor 实例的 fit 方法,该方法将模型调整为训练数据。通过 fit 技术使用遗传算法找到给定数据的最佳特征子集和超参数。然后恢复最佳模型。
然后使用评分方法由代码评估模型在测试集上的表现,从而确定模型的准确性。准确度得分表示模型与数据的拟合程度,值越接近 1,表示拟合度越高。
然后使用导出函数将最佳模型及其测试集的准确度得分导出到 python 文件。
结论
总而言之,Auto-sklearn 是一个强大的库,可简化机器学习模型的创建和改进。通过自动寻找给定数据集的最佳模型和超参数,它可以节省时间和精力。本教程介绍了如何在 Python 中使用 Auto-sklearn,以及如何安装它、导入数据、准备数据、创建和训练模型以及评估模型性能的说明。即使是新手也可以使用 Auto-sklearn 快速简单地创建强大的机器学习模型。