使用 Auto-Keras 进行自动化机器学习
使用 Auto-Keras 进行自动化机器学习
了解自动化机器学习以及如何使用 auto-keras 完成它。如今,机器学习并不是一个非常罕见的术语,因为像 DataCamp、Coursera、Udacity 等组织一直在努力提高他们的效率和灵活性,以便将机器学习的教育带给普通人。凭借他们平台的优势,如今几乎不需要先决条件即可开始该领域真的很容易。然而,自动化机器学习一词如今在流行的数据科学教育论坛上成为很多头条新闻。许多组织,如 Google、H2O.ai 等,都在这一领域开展工作,值得称赞。与机器学习相比,这不是一个非常常见的话题。因为机器学习处理的是自动化部分本身;因此,自然而然地,首先想到的问题是 - “机器学习也可以自动化吗?"
了解标准 Machine Learning 管道
当您以数据科学家的身份解决问题时,您的标准工作流程如下所示:
- 数据采集
- 数据预处理
- 初始化可能适合问题的机器学习模型
- 训练模型
- 测试模型
- 调整模型的参数
- 再次测试模型
- 传达结果
第二步,数据预处理,其上下文非常广泛,因为它本质上是上述管道中最耗时的任务之一,它包括许多子任务,例如数据清理、数据转换、特征选择等。从 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 的这次采访涵盖了有关这个主题的一些美丽的见解。确保你读了一遍,你会再次感到沮丧。如果您觉得自己不确定机器学习从业者所做的工作,请查看这篇文章。
相关文章:

使用 Auto-Keras 进行自动化机器学习
使用 Auto-Keras 进行自动化机器学习 了解自动化机器学习以及如何使用 auto-keras 完成它。如今,机器学习并不是一个非常罕见的术语,因为像 DataCamp、Coursera、Udacity 等组织一直在努力提高他们的效率和灵活性,以便将机器学习的教育带给普…...
python 自动化教程
文章目录 前言整数变量字符串变量列表变量算术操作比较操作逻辑操作if语句for循环遍历列表while循环定义函数调用函数导入模块使用模块中的函数启动Chrome浏览器打开网页定位元素并输入内容提交表单关闭浏览器发送GET请求获取网页内容使…...

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

RISC-V 开发板 MUSE Pi Pro V2D图像加速器测试,踩坑介绍
视频讲解: RISC-V 开发板 MUSE Pi Pro V2D图像加速器测试,踩坑介绍 今天测试下V2D,这是K1特有的硬件级别的2D图像加速器,参考如下文档,但文档中描述的部分有不少问题,后面会讲下 https://bianbu-linux.spa…...
人工智能100问☞第26问:什么是贝叶斯网络?
贝叶斯网络是基于有向无环图和条件概率表构建的概率图模型,用于表达变量间的条件依赖关系并进行不确定性推理。 一、通俗解释 想象你玩侦探游戏,要通过零散线索推理真相。贝叶斯网络就像一张"因果关系地图"——用箭头把事件连起来,并标注每个事件发生的概率。比…...

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

如何畅通需求收集渠道,获取用户反馈?
要畅通需求收集渠道、有效获取用户反馈,核心在于多样化反馈入口、闭环反馈机制、用户分层管理、反馈数据结构化分析等四个方面。其中,多样化反馈入口至关重要,不同用户有不同的沟通偏好,只有覆盖多个反馈路径,才能捕捉…...
标准库、HAl库和LL库(PC13初始化)
标准库 (Standard Peripheral Library) c #include "stm32f10x.h"void GPIO_Init_PC13(void) {GPIO_InitTypeDef GPIO_InitStruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);GPIO_InitStruct.GPIO_Pin GPIO_Pin_13;GPIO_InitStruct.GPIO_Mode GPIO_…...
LangGraph深度解析:构建持久化、可观测的智能体工作流
一、项目概述与技术定位 1.1 LangGraph核心价值 LangGraph是由LangChain团队推出的开源框架(GitHub仓库:https://github.com/langchain-ai/langgraph),专为构建持久化、状态化的智能体工作流设计。作为LangChain生态系统的战略补充,它解决了传统LLM应用在以下方面的关键…...

设备预测性维护的停机时间革命:中讯烛龙如何用AI重构工业设备管理范式
在工业4.0的智能化浪潮中,非计划停机每年吞噬企业3%-8%的产值。中讯烛龙预测性维护系统通过多模态感知矩阵分布式智能体的创新架构,实现设备健康管理的范式跃迁,帮助制造企业将停机时间压缩70%以上。本文将深度解析技术实现路径与行业级实践方…...
day29 python深入探索类装饰器
目录 一、类装饰器的初步理解 二、类装饰器与函数装饰器的对比 三、类装饰器的实现与应用 (一)为类添加日志功能 (二)动态方法绑定的两种方式 四、手动调用装饰器:类的“后天改造” 五、总结与展望 一、类装饰器…...

Python数据分析三剑客:NumPy、Pandas与Matplotlib安装指南与实战入门
Python数据分析三剑客:NumPy、Pandas与Matplotlib安装指南与实战入门 1. 引言 Python数据分析生态:NumPy、Pandas、Matplotlib是数据科学领域的核心工具链。适用场景:数值计算、数据处理、可视化分析(如金融分析、机器学习、科研…...
二:操作系统之进程控制块(PCB)
进程的身份证与状态记录:深入理解进程控制块 (PCB) 在我们之前的博客中,我们探讨了进程是什么——程序的一次执行实例,以及进程在其生命周期中会经历的各种状态(新建、就绪、运行、等待、终止)。我们知道,…...

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使用方便,还可以有拖动和吸附效果不是更…...
通过串口设备的VID PID动态获取串口号(C# C++)
摘要 本篇文章主要介绍分别通过C#和C++使用设备VID PID如何动态获取COM口 目录 1 简述 2 VID PID查看方式 3 C#实现通过串口设备的VID PID动态获取串口号 3.1 辅助类实现 3.2 调用实例 4 C++实现通过串口设备的VID PID动态获取串口号 4.1 辅助类实现 4.2 调用实例 1 简…...
[创业之路-361]:企业战略管理案例分析-2-战略制定-使命、愿景、价值观的失败案例
一、失败案例 1、使命方面的失败案例 真功夫创业者内乱:真功夫在创业过程中,由于股权结构不合理,共同创始人及公司大股东潘宇海与实际控制人、董事长蔡达标产生管理权矛盾。双方在公司发展方向、管理改革等方面无法达成一致,导致…...
Window远程连接Linux桌面版
Window远程连接Linux桌面版 卸载RealVNC Server 一、确认是否安装了 VNC Server 先检查是否已安装: which vncserver # 或 dpkg -l | grep vnc # 或 rpm -qa | grep vnc二、在 Debian / Ubuntu 上卸载(.deb 安装) 1. 卸载 RealVNC Serve…...

一种开源的高斯泼溅实现库——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…...
C#中的成员常量:编译时的静态魔法
在C#编程中,常量(const)是一个强大而特殊的语言特性,特别是当它们作为类的成员时。本文将深入探讨成员常量的特性、使用场景以及与静态量的区别。 成员常量的基本特性 成员常量是声明在类内部的常量,具有以下核心特点: 声明位置…...

Linux wlan 单频段 dual wifi创建
环境基础 TP LINK WN722N V1网卡linux 主机 查看设备是否支持双ap managed:客户端模式(连接路由器/AP)AP:接入点模式(创建热点)AP/VLAN:支持带VLAN标签的虚拟AP{ AP, mesh point, P2P-GO } &l…...
HOW - React NextJS 的同构机制
文章目录 一、什么是 Next.js 的同构?二、核心目录结构三、关键函数:如何实现不同渲染方式?1. getServerSideProps —— 实现 SSR(每次请求动态获取数据)2. getStaticProps getStaticPaths —— 实现 SSG(…...
c#队列及其操作
可以用数组、链表实现队列,大致与栈相似,简要介绍下队列实现吧。值得注意的是循环队列判空判满操作,在用链表实现时需要额外思考下出入队列条件。 设计头文件 #ifndef ARRAY_QUEUE_H #define ARRAY_QUEUE_H#include <stdbool.h> #incl…...

【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 …...
生命之树--树形dp
1.树形dp--在dfs遍历树的同时dp,从上到下递归,到叶子是边界条件 https://www.luogu.com.cn/problem/P8625 #include<bits/stdc.h> using namespace std; #define N 100011 typedef long long ll; typedef pair<ll,int> pii; int n,c; ll …...

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

Science Robotics 封面论文:基于形态学开放式参数化的仿人灵巧手设计用于具身操作
人形机械手具有无与伦比的多功能性和精细运动技能,使其能够精确、有力和稳健地执行各种任务。在古生物学记录和动物王国中,我们看到了各种各样的替代手和驱动设计。了解形态学设计空间和由此产生的涌现行为不仅可以帮助我们理解灵巧的作用及其演变&#…...
普通用户的服务器连接与模型部署相关记录
普通用户的服务器连接与模型部署相关记录 一、从登录到使用自己的conda 1.账号登陆: ssh xxx172.31.226.236 2.下载与安装conda: 下载conda: wget -c https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh 安装con…...