使用 Auto-Keras 进行自动化机器学习

news2025/7/19 17:59:31

使用 Auto-Keras 进行自动化机器学习

了解自动化机器学习以及如何使用 auto-keras 完成它。如今,机器学习并不是一个非常罕见的术语,因为像 DataCamp、Coursera、Udacity 等组织一直在努力提高他们的效率和灵活性,以便将机器学习的教育带给普通人。凭借他们平台的优势,如今几乎不需要先决条件即可开始该领域真的很容易。然而,自动化机器学习一词如今在流行的数据科学教育论坛上成为很多头条新闻。许多组织,如 Google、H2O.ai 等,都在这一领域开展工作,值得称赞。与机器学习相比,这不是一个非常常见的话题。因为机器学习处理的是自动化部分本身;因此,自然而然地,首先想到的问题是 - “机器学习也可以自动化吗?"

了解标准 Machine Learning 管道

当您以数据科学家的身份解决问题时,您的标准工作流程如下所示:

  1. 数据采集
  2. 数据预处理
  3. 初始化可能适合问题的机器学习模型
  4. 训练模型
  5. 测试模型
  6. 调整模型的参数
  7. 再次测试模型
  8. 传达结果

第二步,数据预处理,其上下文非常广泛,因为它本质上是上述管道中最耗时的任务之一,它包括许多子任务,例如数据清理、数据转换、特征选择等。从 3 到 7 的步骤仅适用于一个机器学习模型。一个好的从业者肯定不会只在一个模型之后就停下来。他将在不同的模型上尝试实验以比较它们的结果,并最终决定问题的最佳模型。那么,这是另一组非常耗时的任务 - 决定选择哪种模型?

机器学习管道如何实现自动化

您将继续本节,为问题确定最佳模型,以及可能性的数量和截止日期成反比的情况。在本教程的开头,您遇到了一个问题:“机器学习也可以自动化吗?这个问题一点也不愚蠢。甚至伟大的 Sebastian Raschka 在他的一次采访中也将自动化机器学习描述为“自动化的自动化”。

重新访问您刚刚研究的数据科学任务的标准工作流中的第 5 步 - 调整模型的超参数。假设您已经完成了后续步骤的数据准备,并且您刚刚启动了一个分类器 X X X。现在,假设 X X X 接受 5 个不同的超参数。因此,您将不得不尝试相同的分类器 X X X 但使用不同的超参数值集,这绝对不是一项容易的任务。现在是更令人不安的部分。在尝试了各种组合后,您发现结果不够好。因此,您决定再测试四个分类器(每个分类器有 6 个不同的超参数)。你能想象这有多耗时吗?即使在那之后,如果您没有得到好的结果怎么办?对此的调查将不过是另一个非常耗时的过程。

因此,自动化机器学习的理念就来自这个问题。"如果必须使用各种算法和许多不同的超参数配置构建大量机器学习模型,那么这种模型构建可以自动化,模型性能和准确性的比较也可以自动化。- KDNuggets

现在有理由解释为什么 Automated Machine Learning 这个术语最近在流行的数据科学教育论坛上成为很多头条新闻。现在,您将在下一节中了解有关自动化机器学习的更多信息

自动化机器学习简介

为不同的机器学习模型优化超参数的任务本质上也很可能非常耗时。在更特定于计算机科学的术语中,超参数的调整是一个搜索过程,在这种情况下,该过程可能非常详尽。那么,如果这个过程本身可以自动化呢?嗯,这就是自动化机器学习的基本作用。“自动化机器学习是解决数据科学家短缺问题的直接解决方案,因为它可以通过加快工作周期、提高模型准确性来大幅提高数据科学家的绩效和生产力,并最终甚至可能取代对数据科学家的需求。”-用于物联网的自动化机器学习

您现在已经具备了有关自动化机器学习的足够知识,并已准备好将其付诸实践。但首先,让我们看看一些广泛用于进行自动化机器学习的 Python 库是什么。

用于自动化机器学习的 Python 库

有许多 Python 库可用于执行自动化机器学习。它们都试图实现或多或少相同的目标,即自动化机器学习过程。以下是一些用于自动化机器学习的最广泛使用的 Python 库:

  • 自动 Sklearn
  • TPOT 系列
  • 自动 Keras
  • H2O.ai
  • Google 的 AutoML

这些库中的每一个都有自己的方法来处理 “自动化的自动化” 过程。但在本教程中,您将使用 Auto-Keras。那为什么还要等呢?让我们开始吧

Auto-keras 简介

“Auto-Keras 是一个用于自动化机器学习的开源软件库。”(来源)它由德克萨斯 A&M 大学的 DATA 实验室和社区贡献者开发。根据官方网站 - “这种自动化机器学习的最终目标是为数据科学或机器学习背景有限的领域专家提供易于访问的深度学习工具。Auto-Keras 提供自动搜索深度学习模型的架构和超参数的功能。auto-keras"

在这里插入图片描述

现在您已经成功安装了 Auto-Keras,是时候进行一些快速实施了。

使用 Auto-keras 的 AutoML 案例研究

在本案例研究中,您将使用非常流行的 MNIST 数据集。 内置了此数据集。因此,您无需单独下载。您将从加载 的模块开始。您还将从模块加载 MNIST 数据集。keras``ImageClassifier``auto-keras``keras

from keras.datasets import mnist
from autokeras import ImageClassifier

您从 module 加载了 MNIST 数据集,并且还从 中导入了 。现在,您将数据集分为 train 和 test split。keras.datasets``ImageClassifier``auto-keras

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(x_train.shape + (1,)) # (1,) denotes the channles which is 1 in this case
x_test = x_test.reshape(x_test.shape + (1,)) # (1,) denotes the channles which is 1 in this case

Downloading data from https://s3.amazonaws.com/img-datasets/mnist.npz
11493376/11490434 [==============================] - 1s 0us/step

您已经分离了训练和测试拆分,现在您将使用 和 拟合 ImageClassifier。您将在 和 上测试其性能。x_train``y_train``x_test``y_test

# Instantiate the ImageClassifier class
clf = ImageClassifier(verbose=True, augment=False)
# Fit the train set to the image classifier
clf.fit(x_train, y_train, time_limit=12 * 60 * 60)
clf.final_fit(x_train, y_train, x_test, y_test, retrain=True)
# Summarize the results
y = clf.evaluate(x_test, y_test)
print(y * 100)

就这么简单。只需 4 到 5 行代码,您就可以完成快速实验。嗯,它并没有那么快。上面的代码需要相当长的时间才能执行。用于运行 Deep Learning 实验的体面配置无疑会对您有所帮助。Google Colab也是一个很好的起点。

现在,让我们详细了解您在上述代码中使用的参数。为此,您将参考 auto-keras 的文档,以下是文档的相关摘录:

  • 在 ImageClassifier() 中:
    • verbose:是否将搜索进程打印到输出的布尔值。
    • augment:一个布尔值,指示数据是否需要扩充。如果未定义,则它将使用 Constant.DATA_AUGMENTATION 的值,默认情况下为 True。
  • 在 fit() 方法中:
    • time_limit:搜索的时间限制(以秒为单位)。
  • final_fit():找到最佳架构后的最终训练。
    • retrain:是否重新初始化模型权重的布尔值。

Auto-keras 是一个不断发展的库,目前仍处于预发布版本。根据官网介绍,它支持以下主要模块:

  • supervised:所有监督任务的基类。
  • bayesian:用于贝叶斯优化的 GaussianProcessRegressor。
  • search:所有搜索器类的基类。每个搜索器类都可以覆盖其搜索函数来实现其策略。
  • graph:表示 Keras 模型的神经架构图的类。Graph 从 Keras 模型中提取神经架构图。图中的每个节点都是层之间的中间张量。每个层都是图形中的一条边。值得注意的是,多个边缘可能引用同一图层。(例如,Add layer 是将两个张量添加到一个张量中。所以它与两条边有关。
  • preprocessor:可以格式化数据的类。此类提供了将数据的分类标签转换为向量的方法。
  • model_trainer:用于训练模型的类。此类可以使用给定的数据加载器训练 Pytorch 模型。metric、loss_function 和 model 必须彼此兼容。请参阅 属性 中的详细信息。

结尾

你已经坚持到了最后。在本教程中,您大致研究了机器学习的过程,并了解了如何实现自动化。您快速浏览了可用于执行 AutoML 的库。您使用并了解了它提供的高级抽象类型以及它的易用性。auto-kerasauto-keras

本教程可能会给您一个负面的概念,即 AutoML 在完全证明时可以取代许多数据科学家。真?再想一想。AutoML 实际上使数据科学家摆脱了为问题选择最佳模型的迭代过程的负担。在该课程中,数据科学家可能会更关注更重要的数据本身。Randy Olson 的这次采访涵盖了有关这个主题的一些美丽的见解。确保你读了一遍,你会再次感到沮丧。如果您觉得自己不确定机器学习从业者所做的工作,请查看这篇文章。

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

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

相关文章

简单使用Slidev和PPTist

简单使用Slidev和PPTist 1 简介 前端PPT制作有很多优秀的工具包,例如:Slidev、revealjs、PPTist等,Slidev对Markdown格式支持较好,适合与大模型结合使用,选哟二次封装;revealjs适合做数据切换&#xff0c…

RISC-V 开发板 MUSE Pi Pro V2D图像加速器测试,踩坑介绍

视频讲解: RISC-V 开发板 MUSE Pi Pro V2D图像加速器测试,踩坑介绍 今天测试下V2D,这是K1特有的硬件级别的2D图像加速器,参考如下文档,但文档中描述的部分有不少问题,后面会讲下 https://bianbu-linux.spa…

c++多线程debug

debug demo 命令行查看 ps -eLf|grep cam_det //查看当前运行的轻量级进程 ps -aux | grep 执行文件 //查看当前运行的进程 ps -aL | grep 执行文件 //查看当前运行的轻量级进程 pstree -p 主线程ID //查看主线程和新线程的关系 查看线程栈结构 pstack 线程ID 步骤&…

如何畅通需求收集渠道,获取用户反馈?

要畅通需求收集渠道、有效获取用户反馈,核心在于多样化反馈入口、闭环反馈机制、用户分层管理、反馈数据结构化分析等四个方面。其中,多样化反馈入口至关重要,不同用户有不同的沟通偏好,只有覆盖多个反馈路径,才能捕捉…

设备预测性维护的停机时间革命:中讯烛龙如何用AI重构工业设备管理范式

在工业4.0的智能化浪潮中,非计划停机每年吞噬企业3%-8%的产值。中讯烛龙预测性维护系统通过多模态感知矩阵分布式智能体的创新架构,实现设备健康管理的范式跃迁,帮助制造企业将停机时间压缩70%以上。本文将深度解析技术实现路径与行业级实践方…

Python数据分析三剑客:NumPy、Pandas与Matplotlib安装指南与实战入门

Python数据分析三剑客:NumPy、Pandas与Matplotlib安装指南与实战入门 1. 引言 Python数据分析生态:NumPy、Pandas、Matplotlib是数据科学领域的核心工具链。适用场景:数值计算、数据处理、可视化分析(如金融分析、机器学习、科研…

Spring-Beans的生命周期的介绍

目录 1、Spring核心组件 2、Bean组件 2.1、Bean的定义 2.2、Bean的生命周期 1、实例化 2、属性填充 3、初始化 4、销毁 2.3、Bean的执行时间 2.4、Bean的作用域 3、常见问题解决方案 4、与Java对象区别 前言 关于bean的生命周期,如下所示: …

Android 自定义悬浮拖动吸附按钮

一个悬浮的拨打电话按钮,使用CardViewImageView可能会出现适配问题,也就是图片显示不全,出现这种问题,就直接替换控件了,因为上述的组合控件没有FloatingActionButton使用方便,还可以有拖动和吸附效果不是更…

一种开源的高斯泼溅实现库——gsplat: An Open-Source Library for Gaussian Splatting

一种开源的高斯泼溅实现库——gsplat: An Open-Source Library for Gaussian Splatting 文章目录 一种开源的高斯泼溅实现库——gsplat: An Open-Source Library for Gaussian Splatting摘要Abstract1. 基本思想1.1 设计1.2 特点 2. Nerfstudio&Splatfacto2.1 Nerfstudio2.…

ARM A64 STR指令

ARM A64 STR指令 1 STR (immediate)1.1 Post-index1.1.1 32-bit variant1.1.2 64-bit variant 1.2 Pre-index1.2.1 32-bit variant1.2.2 64-bit variant 1.3 Unsigned offset1.3.1 32-bit variant1.3.2 64-bit variant 1.4 Assembler symbols 2 STR (register)2.1 32-bit varia…

Linux wlan 单频段 dual wifi创建

环境基础 TP LINK WN722N V1网卡linux 主机 查看设备是否支持双ap managed:客户端模式(连接路由器/AP)AP:接入点模式(创建热点)AP/VLAN:支持带VLAN标签的虚拟AP{ AP, mesh point, P2P-GO } &l…

【CSS】使用 CSS 绘制三角形

一、Border 边框法(最常用) 原理:通过设置元素的宽高为 0,利用透明边框相交形成三角形。 .triangle {width: 0;height: 0;border-left: 50px solid transparent; /* 左侧边框透明 */border-right: 50px solid transparent; /* …

信奥赛-刷题笔记-栈篇-T2-P3056括号调整问题0518

总题单 ​ 本部分总题单如下 【腾讯文档】副本-CSP-JSNOI 题单 (未完待续) https://docs.qq.com/sheet/DSmJuVXR4RUNVWWhW?tabBB08J2 栈篇题单 P3056 [USACO12NOV] Clumsy Cows S https://www.luogu.com.cn/problem/P3056 题目描述 Bessie the cow is trying to type …

inverse-design-of-grating-coupler-3d

一、设计和优化3D光栅耦合器 1.1 代码讲解 通过预定义的环形间距参数(distances数组),在FDTD中生成椭圆光栅结构,并通过用户交互确认几何正确性后,可进一步执行参数扫描优化。 # os:用于操作系统相关功能(如文件路径操作) import os import sys# lumapi:Lumerical 的…

Science Robotics 封面论文:基于形态学开放式参数化的仿人灵巧手设计用于具身操作

人形机械手具有无与伦比的多功能性和精细运动技能,使其能够精确、有力和稳健地执行各种任务。在古生物学记录和动物王国中,我们看到了各种各样的替代手和驱动设计。了解形态学设计空间和由此产生的涌现行为不仅可以帮助我们理解灵巧的作用及其演变&#…

DSU-Net

目录 Abstract 摘要 DSU-Net 模型框架 编码器 轻量级适配器模块 特征融合与协作 解码器 模型优势 实验 代码 总结 Abstract DSU-Net is an improved U-Net model based on DINOv2 and SAM2. It addresses the limitations of existing image segmentation models …

2025年- H30-Lc138- 141.环形链表(快慢指针,快2慢1)---java版

1.题目描述 2.思路 弗洛伊德算法(快慢指针 3.代码实现 public boolean hasCycle(ListNode head) {//1.如果空节点或者只有一个节点,都说明没有环,返回falseif(headnull||head.nextnull){return false;}//2.定义快慢指针,都从头…

LoadBarWorks:一款赛博风加载动画生成器的构建旅程

我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 项目缘起:赛博与实用的结合 在日常开发中,我经常需要为不同的项目添加加载动画&#x…

SAP集团内部公司间交易自动开票

SAP集团内部公司间交易自动开票(非STO/EDI模式) 集团内部公司间采购与销售业务,在确认相应单据无误后,为减少人工开票业务, 可以用系统标准功能来实现自动开票。 1.采购发票自动开票(ERS) T-CODE:BP,勾选“基于收货的发票校验”、“自动G…

【YOLO(txt)格式转VOC(xml)格式数据集】以及【制作VOC格式数据集 】

1.txt—>xml转化代码 如果我们手里只有YOLO标签的数据集,我们要进行VOC格式数据集的制作首先要进行标签的转化,以下是标签转化的脚本。 其中picPath为图片所在文件夹路径; txtPath为你的YOLO标签对应的txt文件所在路径; xmlPa…