自动机器学习AutoML

news2025/1/11 2:13:34

自动机器学习AutoML

  • AutoML
    • Auto-Sklearn
    • AutoKeras
    • AutoGluon
    • Google AutoML
    • Azure自动机器学习

AutoML

模型的选择和超参数的调节等等任务对于机器学习算法的开发者来说是一件繁琐的工作,为了使得机器可以自动地设计模型并调优,自动机器学习AutoML便应运而生。

自动化机器学习也称为自动化 ML 或 AutoML,是将机器学习模型开发过程中耗时的反复性任务自动化的过程。 它的主要作用是降低构建和部署机器学习模型的门槛,通过自动执行一系列任务,例如特征选择、模型选择、超参数调优等等,AutoML能够有效地减少人工干预的需求,并提高模型的性能。

AutoML主要是基于神经网络结构搜索(Neural Architecture Search,NAS),通过该算法实现模型的自动生成,其中主要涉及到搜索空间和搜索策略,然后对生成模型的性能进行自动评估。目前NAS在图像分类、目标检测、语音识别、自然语言处理的各种模型中被广泛使用。

  • 搜索空间定义: NAS首先定义一个搜索空间,该空间包含了所有可能的神经网络结构。这可以包括不同类型的层、层之间的连接方式、每一层的宽度和深度等。
  • 搜索策略: NAS使用搜索算法,通常是基于启发式或优化方法,来在搜索空间中寻找最优的网络结构。这些算法可以是基于遗传算法、强化学习、进化算法、贝叶斯优化等。
  • 评估和更新: 对于每个搜索到的网络结构,需要评估其性能。通常采用训练神经网络并在验证集上进行评估的方式。性能评估后,根据评估结果更新搜索算法的权重,以优化下一轮搜索。
  • 加速搜索: 由于NAS的搜索空间很大,搜索过程可能非常昂贵。因此,研究者们提出了一些方法来加速搜索,例如通过共享参数、采用模型缩放、使用代理模型等。

使用AutoML通常包括以下步骤:

  1. 数据准备: 准备好用于训练和评估的数据集。
  2. 选择AutoML工具: 选择适合你任务的AutoML工具或平台。一些常见的AutoML工具包括Auto-Sklearn、AutoKeras、AutoGluon、Google AutoML、Azure和Auto-PyTorch等。
  3. 配置搜索空间: 定义模型和超参数的搜索空间。这可能涉及到选择合适的模型类型、设置超参数的范围等。
  4. 运行AutoML: 启动AutoML工具,让其在定义的搜索空间中自动搜索最佳模型和超参数组合。
  5. 模型评估: 对AutoML得到的模型进行评估,了解其性能。这通常涉及使用验证集或交叉验证来检查模型的泛化能力。
  6. 部署模型: 一旦满意,将AutoML生成的模型部署到生产环境中,以便进行实际预测。

下面对Auto-Sklearn、AutoKeras、AutoGluon、Google AutoML和Azure自动机器学习共五种AutoML工具进行介绍。

Auto-Sklearn

Auto-Sklearn是一个流行的AutoML工具,它建立在Scikit-Learn库之上,提供了自动化模型选择和调优的功能。在实际使用中,可能需要根据数据的特征进行更详细的配置,例如选择不同的度量标准、调整模型的搜索空间等。Auto-Sklearn提供了许多配置选项,允许用户更灵活地定制自动化过程。此外,还可以通过Auto-Sklearn的API访问模型的详细信息,以便更好地了解所选择的最佳模型。更多详细内容可以参考官方Github网站。

在这里插入图片描述

Python代码示例:使用Auto-Sklearn对手写数字数据集(Digits)进行分类,可以根据你的任务替换为自己的数据集。请注意,time_left_for_this_task和per_run_time_limit参数用于限制Auto-Sklearn的运行时间。

# 安装Auto-Sklearn
!pip install auto-sklearn

# 导入必要的库
import autosklearn.classification
from sklearn.model_selection import train_test_split
from sklearn import datasets

# 加载示例数据集(如果没有,可以替换为自己的数据集)
X, y = datasets.load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)

# 创建并训练Auto-Sklearn分类器
automl_classifier = autosklearn.classification.AutoSklearnClassifier(time_left_for_this_task=120, per_run_time_limit=30)
automl_classifier.fit(X_train, y_train)

# 在测试集上评估模型性能
accuracy = automl_classifier.score(X_test, y_test)
print(f"Accuracy: {accuracy}")

# 获取Auto-Sklearn所选用的模型信息
print(automl_classifier.show_models())

AutoKeras

AutoKeras是一个基于Keras的开源AutoML框架,由Texas A&M大学开发,上手简单,可以尝试各种结构的神经网络结构。更多详细内容可以参考官方Github网站。

Python代码的一个简单示例:

# 安装autokeras
pip install autokeras

# 导入autokeras库
import autokeras as ak

# 创建模型
clf = ak.ImageClassifier()

# 模型训练
clf.fit(x_train, y_train)

# 模型测试
results = clf.predict(x_test)

AutoGluon

AutoGluon是另一个开源的AutoML框架,由Apache MXNet社区(亚马逊)开发,上手非常简单,且功能强大。它旨在简化机器学习模型的训练和部署过程,使用户能够轻松构建高性能的模型,而无需深度专业知识。它与更多关注模型和超参数选择的其他AutoML框架不同,AutoGluon可以通过集成多个模型并使它们堆叠在多个层中而获得更优异的表现。更多详细内容可以参考官方Github网站。

Python代码示例:假设你有一个用于二分类的表格数据集,其中class列是目标标签。AutoGluon会自动选择合适的模型并优化超参数,然后返回在测试集上的性能指标和预测结果。

# 安装AutoGluon
!pip install autogluon

# 导入AutoGluon相关模块
from autogluon import TabularPrediction as task

# 加载示例数据集(如果没有,可以替换为自己的数据集)
train_data = task.Dataset('https://autogluon.s3.amazonaws.com/datasets/Inc/train.csv')
test_data = task.Dataset('https://autogluon.s3.amazonaws.com/datasets/Inc/test.csv')

# 定义任务类型为二分类
predictor = task.fit(train_data=train_data, label='class', problem_type='binary')

# 在测试集上评估模型性能
performance = predictor.evaluate(test_data)

# 打印性能指标
print(performance)

# 进行预测
predictions = predictor.predict(test_data)
print(predictions)

Google AutoML

Google Cloud AutoML是Google Cloud平台上的一项服务,它提供了强大的自动机器学习功能。请注意,使用Google AutoML需要Google Cloud账户,并且可能涉及费用。以下是开发步骤:

  1. 创建Google Cloud项目: 确保你在Google Cloud上创建了一个项目,并启用了AutoML API。
  2. 上传数据: 在Google Cloud Console中,导航到AutoML Vision页面,上传包含图像和标签的数据集。按照指导上传和标记图像。
  3. 训练模型: 在上传完数据后,选择模型配置和超参数,然后开始训练模型。
  4. 等待模型训练完成: 根据数据集的大小,模型训练可能需要一些时间。你可以在Google Cloud Console上跟踪训练进度。
  5. 评估模型: 训练完成后,你可以在AutoML Vision页面上评估模型的性能,查看混淆矩阵、精确度等指标。
  6. 使用模型进行预测: 一旦满意,你可以使用训练好的模型进行预测。在Google Cloud Console上提供一个在线API,或者你可以下载模型并在本地部署。

以下是一个简化的Python示例:演示如何使用Google AutoML Vision进行图像分类任务。

from google.cloud import automl_v1beta1
from google.cloud.automl_v1beta1.proto import service_pb2

# 替换为你的项目ID、模型ID和文件路径
project_id = "your-project-id"
model_id = "your-model-id"
file_path = "path/to/your/image.jpg"

# 创建AutoML客户端
client = automl_v1beta1.AutoMlClient()

# 构建模型路径
model_full_id = f"projects/{project_id}/locations/us-central1/models/{model_id}"

# 读取图像文件
with open(file_path, "rb") as content_file:
    content = content_file.read()

# 构建图像内容
image = automl_v1beta1.Image(image_bytes=content)

# 构建预测请求
payload = service_pb2.PredictRequest.Params()
payload.image.image_bytes = content
payload = {"image": payload}
request = automl_v1beta1.PredictRequest(name=model_full_id, payload=payload)

# 发送预测请求
response = client.predict(request=request)

# 解析预测结果
for result in response.payload:
    print(f"Predicted class: {result.display_name}")
    print(f"Confidence: {result.classification.score}")

Azure自动机器学习

Azure自动机器学习是微软开发的AutoML框架。如图所示,在训练期间,Azure 自动机器学习会创建多个尝试不同算法和参数的并行管道。 该服务将迭代与特征选择配对的 ML 算法,每次迭代都会生成带有训练评分的模型。 要优化的指标的分数越好,模型就越被视为“适合”数据。 一旦达到试验中定义的退出条件,机器学习就会停止。
在这里插入图片描述
Azure自动机器学习框架可以适用于分类、回归、时序预测、计算机视觉和自然语言处理。其中:

  • 分类模型的主要目标是根据从其训练数据中获得的经验,预测新数据将属于哪些类别。 常见分类示例包括欺诈检测、手写识别和对象检测。
  • 回归模型基于独立的预测器预测数字输出值。 在回归中,目标是通过估计一个变量对其他变量的影响,帮助建立这些独立预测因子变量之间的关系。 例如,基于每英里耗油量、安全评级等特征预测汽车价格。
  • 时序预测被视为多元回归问题。 将“透视”过去的时序值,使其成为回归量与其他预测指标的附加维度。 与传统时序方法不同,这种方法的优点是,在训练过程中自然包含多个上下文变量及其相互关系。 自动化 ML 会针对数据集和预测时间范围内的所有项目,习得通常有内部分支的单个模型。 这样就可以使用更多的数据来估计模型参数,使得未知系列的泛化成为可能。高级预测配置包括:
    (1)假日检测和特征化
    (2)时序和 DNN 教学器(Auto-ARIMA、Prophet、ForecastTCN)
    (3)通过分组实现的多模型支持
    (4)滚动原点交叉验证
    (5)可配置滞后
    (6)滚动窗口聚合特征
  • 计算机视觉可支持多类图像分类、多标签图像分类、目标检测和实例分割任务。并可大规模运作,利用 Azure 机器学习 MLOps 和 ML 管道功能。
  • 自然语言处理的自动化ML,让你能够轻松地生成针对文本数据训练的模型,用于文本分类和命名实体识别场景。它提供 104 种语言的多语言支持,支持 Horovod 进行分布式训练。

自动化机器学习支持默认已启用的系综模型。 系综学习通过组合多个模型而不是使用单个模型,来改善机器学习结果和预测性能。 系综迭代显示为作为的最后一个迭代。 自动化机器学习使用投票和堆叠系综方法来组合模型:

  • 投票:根据预测类概率(对于分类任务)或预测回归目标(对于回归任务)的加权平均值进行预测。
  • 堆叠:堆叠方法组合异构的模型,并根据各个模型的输出训练元模型。 当前的默认元模型是 LogisticRegression(对于分类任务)和 ElasticNet(对于回归/预测任务)。

此外, 在 Azure 自动机器学习中,应用缩放和规范化技术来简化特征工程(特征工程是使用数据领域知识创建有助于优化机器学习算法学习效果的特征的过程)。

上述关于Azure自动机器学习的内容参考官方网站,在此仅介绍了它的相关原理和功能,前往官方网站查看更多详细内容,例如,如何安装Azure、数据预处理、模型训练与测试、模型部署、可视化以及监视模型等等,并提供了详细的代码示例。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1275039.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

打破语言障碍:跨境电商中的多语言营销策略

随着全球市场的不断扩大,跨境电商成为企业拓展国际业务的重要途径。然而,语言障碍往往成为企业在跨境电商中面临的挑战之一。为了打破这一障碍,实现全球市场的可持续发展,多语言营销策略变得至关重要。 多语言市场的挑战 在跨境电…

春秋云境:CVE-2022-32991(sql注入)

靶标介绍: 该CMS的welcome.php中存在SQL注入攻击。 获取登录地址 http://eci-2zeb0096que0556y47vq.cloudeci1.ichunqiu.com:80 登录注册 注册成功登录进入注册接口 参数接口一 发现接口参数q http://eci-2zeb0096que0556y47vq.cloudeci1.ichunqiu.com/welcome.p…

使用visual Studio MFC 平台实现对灰度图添加椒盐噪声,并进行均值滤波与中值滤波

平滑处理–滤波 本文使用visual Studio MFC 平台实现对灰度图添加椒盐噪声,并进行均值滤波与中值滤波 关于其他MFC单文档工程可参考 01-Visual Studio 使用MFC 单文档工程绘制单一颜色直线和绘制渐变颜色的直线 02-visual Studio MFC 绘制单一颜色三角形、渐变颜色边…

【openssl】Window系统如何编译openssl

本文主要记录如何编译出windows版本的openss的lib库 1.下载openssl,获得openssl-master.zip。 a.可以通过github(网址在下方)上下载最新的代码、今天是2023.12.1我用的master版本,下载之后恭喜大侠获得《openssl-master.zip》 …

iPhone苹果手机如何将词令网页添加到苹果iPhone手机桌面快捷打开?

iPhone苹果手机如何将词令网页添加到苹果iPhone手机桌面快捷打开? 1、在iPhone苹果手机上找到「Safari浏览器」,并点击打开; 2、打开Safari浏览器后,输入词令官方网站地址:ciling.cn ; 3、打开词令官网后,点击Safari…

特殊二叉树——堆

🌈一、堆的基本概念 1.堆:非线性结构,是完全二叉树 2.堆分为大堆和小堆。 大堆:树中任意一个父亲都大于等于孩子,根节点值大于等于其所有子孙节点的值。 小堆:树中任意一个父亲都小于等于孩子,…

IO / day01 作业。

1.使用fgets统计一个文件的行号 //使用fgets统计一个文件的行号#include <string.h> #include <stdlib.h> #include <stdio.h>int main(int argc, const char *argv[]) {if(argc<2) //获取文件名{printf("input error\n!");printf("usage…

Flutter页面刷新失败?看看是不是这个原因

文章目录 问题描述解决办法在控件A中定义回调函数在页面中使用控件A 原因分析回顾问题原因分析 setState使用注意事项上下文正确性异步更新避免深层嵌套避免频繁调用避免在 build 方法中调用避免在 dispose 方法中调用 问题描述 我用flutter开发了一个页面&#xff0c;页面上有…

苍穹外卖——删除购物车信息

1. 删除购物车中一个商品 1.1 产品原型 1.2 接口设计 1.3 数据模型 shopping_cart表&#xff1a; -- auto-generated definition create table shopping_cart (id bigint auto_increment comment 主键primary key,name varchar(32) null comment 商品名称…

上门服务系统|东郊到家软件提供高效服务的科技支柱

预约上门服务系统的崛起改变了传统服务行业的格局。用户不再需要亲自前往实体店面&#xff0c;而是通过几次点击就能享受到各类服务。这背后离不开预约上门服务系统的智能化和高效性&#xff0c;而源码正是这个系统的灵魂所在。下面小编就给大家介绍下上门服务系统开发优势。 1…

windows 如何卸载证书

1、windows r 2、输入 certmgr.msc 3、进入证书管理&#xff0c;选择个人 4、选择个人---找到要删除的证书&#xff0c;删除 就可以了。

LiveGBS流媒体平台GB/T28181功能-概览中负载信息直播、回放、播放、录像、H265、级联查看负载会话列表

LiveGBS常见问题-概览中负载信息具体表示什么直播、回放、播放、录像、H265、级联等 1、负载信息2、负载信息说明3、会话列表查看3.1、会话列表 4、搭建GB28181视频直播平台 1、负载信息 实时展示直播、回放、播放、录像、H265、级联等使用数目 2、负载信息说明 直播&#x…

SD-WAN组网中的CPE及云服务CPE部署方法

什么是CPE&#xff1f; CPE全称为Customer Premises Equipment&#xff0c;即客户端设备&#xff0c;在SD-WAN中通常为路由器&#xff0c;部署在中心点和分支上&#xff0c;提供连接和路由、协议转换、流量监控等功能。一般可分为硬件CPE和虚拟化CPE&#xff08;virtual CPE&a…

项目设计---网页五子棋

文章目录 一. 项目描述二. 核心技术三. 需求分析概要设计四. 详细设计4.1 实现用户模块4.1.1 约定前后端交互接口4.1.2 实现数据库设计4.1.3 客户端页面展示4.1.4 服务器功能实现 4.2 实现匹配模块4.2.1 约定前后端交互接口4.2.2 客户端页面展示4.2.3 服务器功能实现 4.3 实现对…

带你用uniapp从零开发一个仿小米商场_10.开发一个占剩余窗口的滚动区域

首先是一个头部的tag切换栏,这个很简单,就不多说 源码奉上 <scroll-view scroll-x class"border scroll-row" style"height: 80rpx;"><view class"scroll-row-item" style"height: 80rpx;line-height: 80rpx;" v-for"(…

首批量子计算机即将部署!欧盟为波兰提供新算力优势

&#xff08;图片来源&#xff1a;网络&#xff09; 英国量子计算机开发商ORCA公司将为波兰的波兹南超级计算和网络中心&#xff08;PSNC&#xff09;提供两个PT-1光量子系统&#xff0c;以加速其在量子计算领域的研究和应用工作&#xff0c;如生物学、化学和机器学习领域。 …

目标检测——Mask R-CNN算法解读

论文&#xff1a;Mask R-CNN 作者&#xff1a;Kaiming He Georgia Gkioxari Piotr Dollar Ross Girshick 链接&#xff1a;https://arxiv.org/abs/1703.06870 代码&#xff1a;https://github.com/facebookresearch/Detectron R-CNN系列其他文章&#xff1a; R-CNN算法解读SPP…

WordPress(安装比子主题文件)zibll-7.5.1

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、新建网站二、配置ssl三.配置伪静态四.上传文件五.添加本地访问前言 提示:这里可以添加本文要记录的大概内容: 首先,我们要先理解什么是授权原理。 原理就是我们大家运营网站,点击授权…

【高效开发工具系列】Hutool DateUtil工具类

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…