AutoKeras(Python自动化机器学习)多模态数据和多任务

要点拓扑

在这里插入图片描述

AutoKeras 拓扑

在这里插入图片描述

要点

  1. 常规机器学习:scikit-learn示例探索性数据分析和数据预处理,线性回归,决策树
  2. 图像分类ResNet模型示例,合成数据集DenseNet模型示例
  3. 绘图线性回归和决策树模型
  4. 使用Python工具seaborn、matplotlib、pandas、scikit-learn进行特征分析,数据处理
  5. Tensorflow和Keras实现多测感知器、卷积神经网络CNN和递归神经网络RNN及应用示例
  6. AutoKeras案例实现:新闻热点预测、垃圾邮件检测、CIFAR-10图像分类、事故率、MNIST识别、话题分类、情绪分析

自动化机器学习

自动化机器学习是一种自动化各种机器学习模型开发流程的过程,以便数据科学和机器学习方面专业知识有限的个人和组织能够更容易地使用机器学习。 它拥有一组技术和工具,可以自动选择和微调机器学习模型的过程。 其目标是让数据科学专业知识有限的人们更轻松地构建和部署高性能机器学习模型。

Predicting
Training
模型训练
超参数调整模型选择
验证
特征工程
新数据
预测
目标
特征工程
原始数据和目标
训练集
验证集
测试集
机器学习
模型

它使用户能够将机器学习技术应用于不同的领域,从简单的表格数据分析到图像识别、自然语言处理和预测等更复杂的任务。它不仅仅停留在模型训练上,涵盖了整个生命周期,包括评估、验证、部署以及持续监控和维护。

自动化目标可以自动化构建机器学习模型所涉及的多个步骤。其中一些如下:

  • 数据准备:处理缺失值、缩放特征、编码分类变量以及将数据拆分为训练集和测试集
  • 特征工程:从原始数据中提取有用的特征。
  • 模型选择和训练:选择合适的机器学习算法和超参数。
  • 超参数调整:微调机器学习模型的设置以优化性能。
  • 集成建模:组合多个模型以提高性能。
  • 部署:将经过训练的模型投入生产
  • 监控和维护:模型部署后可以根据新数据进行维护和监控

自动机器学习用于简化和自动化将机器学习应用于现实世界问题的端到端过程:

  • 使机器学习可供更广泛的受众使用,包括机器学习专业知识有限的个人。通过自动化复杂的任务,它降低了非数据科学专家的用户的进入门槛。
  • 减少了开发有效的机器学习模型所需的时间和精力。其工具通常提供直观、用户友好的界面或 API,让用户提供数据并接收优化的机器学习模型,而无需深入了解底层算法和技术。
  • 机器学习涉及处理各种算法、超参数和数据预处理技术。机器学习可以自动为特定任务选择最合适的算法和超参数,从而降低用户的复杂性。
  • 擅长自动优化超参数,这对于实现最佳模型性能至关重要。这个过程可能非常耗时并且需要专业知识,因此自动化非常有益。

可用于执行各种机器学习任务,包括分类、回归、聚类、深度学习,甚至预测。 它们能够执行从简单的表格数据分析到更复杂的图片识别或自然语言处理的任务。

  • 表格数据:分类和回归
  • 图像数据:计算机视觉
  • 文本数据:自然语言处理 (NLP)

使用 AutoKeras 进行图像分类的示例。

  1. 导入所需类:
import os
import pathlib
import numpy as np
import tensorflow as tf
import autokeras as ak

import warnings
warnings.filterwarnings('ignore')

  1. 加载数据库
dataset_url = "https://storage.gapis.com/download.tensorflow.org/example_images/flower_photos.tgz"
data_dir = tf.keras.utils.get_file('flower_photos', 
								origin=dataset_url, 
								untar=True)
data_dir = pathlib.Path(data_dir)

  1. 分类训练、测试、验证集
batch_size = 32
img_height = 240
img_width = 240

train_data = ak.image_dataset_from_directory(
	data_dir,
	validation_split=0.15,
	subset="training",
	seed=23,
	image_size=(img_height, img_width),
	batch_size=batch_size,
)

test_data = ak.image_dataset_from_directory(
	data_dir,
	validation_split=0.15,
	subset="validation",
	seed=23,
	image_size=(img_height, img_width),
	batch_size=batch_size,
)

输出

Found 3670 files belonging to 5 classes.
Using 3120 files for training.
Found 3670 files belonging to 5 classes.
Using 550 files for validation.
  1. 构建自动化机器学习模型
image_classifier = ak.ImageClassifier(num_classes = 5,
									multi_label = True,
									overwrite=True, 
									max_trials=1)

image_classifier.fit(train_data, epochs=5)

输出

Search: Running Trial #1
Value             |Best Value So Far |Hyperparameter
vanilla           |vanilla           |image_block_1/block_type
True              |True              |image_block_1/normalize
False             |False             |image_block_1/augment
3                 |3                 |image_block_1/conv_block_1/kernel_size
1                 |1                 |image_block_1/conv_block_1/num_blocks
2                 |2                 |image_block_1/conv_block_1/num_layers
True              |True              |image_block_1/conv_block_1/max_pooling
False             |False             |image_block_1/conv_block_1/separable
0.25              |0.25              |image_block_1/conv_block_1/dropout
32                |32                |image_block_1/conv_block_1/filters_0_0
64                |64                |image_block_1/conv_block_1/filters_0_1
flatten           |flatten           |classification_head_1/spatial_reduction_1/reduction_type
0.5               |0.5               |classification_head_1/dropout
adam              |adam              |optimizer
0.001             |0.001             |learning_rate
Trial 1 Complete [00h 08m 02s]
val_loss: 0.3753296434879303
Best val_loss So Far: 0.3753296434879303
Total elapsed time: 00h 08m 02s
INFO:tensorflow:Oracle triggered exit
Epoch 1/5
98/98 [==============================] - 110s 1s/step - loss: 0.9031 - accuracy: 0.4234
Epoch 2/5
98/98 [==============================] - 114s 1s/step - loss: 0.3507 - accuracy: 0.6224
Epoch 3/5
98/98 [==============================] - 109s 1s/step - loss: 0.2060 - accuracy: 0.8490
Epoch 4/5
98/98 [==============================] - 112s 1s/step - loss: 0.0995 - accuracy: 0.9497
Epoch 5/5
98/98 [==============================] - 106s 1s/step - loss: 0.0795 - accuracy: 0.9686
  1. 评估模型
image_classifier.evaluate(test_data)

输出

18/18 [==============================] - 5s 276ms/step - loss: 0.5662 - accuracy: 0.5600
[0.5662239789962769, 0.5600000023841858]
  1. 加载图像并进行预测
from PIL import Image

image_path = "sunflower.jpeg"

new_image = Image.open(image_path)
resized_image = new_image.resize((img_height, img_width))
resized_image

  1. 预测
preprocessed_image = np.expand_dims(resized_image, axis=0)
 
predictions = image_classifier.predict(preprocessed_image)
print(predictions)

输出

1/1 [==============================] - 0s 48ms/step
1/1 [==============================] - 0s 16ms/step
[['sunflowers']]
参阅一:计算思维
参阅二:亚图跨际

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

import tensorflow_hub报错

问题: 导入tensorflow_hub报ModuleNotFoundError: No module named ‘tensorflow.python.checkpoint’ 解决: tensorflow-estimator版本不对 和tensorflow(2.6.0)版本一致 。 pip install -U tensorflow-estimator2.6.0 验证&a…

一个收集了大量的C#/.NET/.NET Core项目宝库组织

项目宝库介绍 为.NET开发者提供一个寻找优秀C#/.NET/.NET Core项目和框架的入口,通过了解和对比更多的项目和框架来选择最适合我们自己学习、工作开发的一套项目或者框架。优秀的项目不应该被埋没,欢迎大家一起加入这个组织共同完善、发展.NET社区&…

线程和进程【并发和并行、线程上下文切换、线程的状态】

线程和进程【并发和并行、线程上下文切换、线程的状态】 什么是并发与并行?什么是线程上下文切换?线程状态:一个线程的一生 转自 极客时间 进程:是指内存中运行的一个应用程序,每个进程都有自己独立的内存空间&#x…

RapidMiner数据挖掘2 —— 初识RapidMiner

本节由一系列练习与问题组成,这些练习与问题有助于理解多个基本概念。它侧重于各种特定步骤,以进行直接的探索性数据分析。因此,其主要目标是测试一些检查初步数据特征的方法。大多数练习都是关于图表技术,通常用于数据挖掘。 为此…

51_蓝桥杯_蜂鸣器与继电器

一 电路 二 蜂鸣器与继电器工作原理 2.1蜂鸣器与继电器 2.2 十六进制与二进制 二进制 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 十六进制 0 1 2 3 4 5 6 7 8 9 A B C D E F 2.3非门 二 代码 …

C++初阶(十一) list

一、list的介绍及使用 1.1 list的介绍 list的文档介绍 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点…

第三节作业:基于 InternLM 和 LangChain 搭建你的知识库

参考文档:https://github.com/InternLM/tutorial/tree/main/langchain 基础作业:复现课程知识库助手搭建过程 (截图) 1.环境配置 2.知识库搭建 (1)数据收集 收集由上海人工智能实验室开源的一系列大模型工具开源仓库作为语料库来…

004 - Hugo, 分类

004 - Hugo, 分类content文件夹 004 - Hugo, 分类 content文件夹 ├─.obsidian ├─categories │ ├─Python │ └─Test ├─page │ ├─about │ ├─archives │ ├─links │ └─search └─post├─chinese-test├─emoji-support├─Git教程├─Hugo分类├─…

STL:优先级队列的实现

STL中优先级队列本质上就是堆。在上一篇博客中讲到过:堆是一种完全二叉树,逻辑结构上看起来像树,但在物理结构中是存储在线性表中。与普通线性表不同的是,堆中数据大小是规律排列的:小堆中每个节点都大于它的父节点&am…

2024免费人像摄影后期处理工具Portraiture4.1

Portraiture作为一款智能磨皮插件,确实为Photoshop和Lightroom用户带来了极大的便利。通过其先进的人工智能算法,它能够自动识别并处理照片中的人物皮肤、头发和眉毛等部位,实现一键式的磨皮美化效果,极大地简化了后期处理的过程。…

QKD安全攻击防御方案分析和分级评估研究报告

今天分享的是行业报告:《QKD安全攻击防御方案分析和分级评估研究报告》 (内容出品方:量子信息网络产业联盟) 报告共计:180页 来源:《见鹿报告》 前言 量子通信是量子信息科学的重要分支,它…

人工智能学习与实训笔记(十四):Langchain之Agent

人工智能专栏文章汇总:人工智能学习专栏文章汇总-CSDN博客 本篇目录 0、概要 1、Agent整体架构 2、langchain中agent实现 3、Agent业务实现逻辑 0、概要 Agent是干什么的? Agent的核心思想是使用语言模型(LLM)作为推理的大脑…

飞行路线(分层图+dijstra+堆优化)(加上题目选数复习)

飞行路线 这一题除了堆优化和dijstra算法和链式前向星除外还多考了一个考点就是,分层图,啥叫分层图呢?简而言之就是一个三维的图,按照其题意来说有几个可以免费的点就有几层,而且这个分层的权值为0(这样就相…

嵌入式Qt 计算器界面设计

一.计算器界面设计 计算机界面程序分析&#xff1a; 需要用到的组件&#xff1a; 界面设计&#xff1a; 界面设计实现&#xff1a; 实验1&#xff1a;计算器界面设计 #include <QtGui/QApplication> #include <QWidget> //主窗口 #include <QLineEdit> //文…

由斐波那契数列探究递推与递归

斐波那契数列定义&#xff1a; 斐波那契数列大家都非常熟悉。它的定义是&#xff1a; 对于给定的整数 x &#xff0c;我们希望求出&#xff1a; f ( 1 ) f ( 2 ) … f ( x ) f(1)f(2)…f(x) f(1)f(2)…f(x) 的值。 有两种方法,分别是递推(迭代)与递归 具体解释如下图 备注…

Mysql知识点汇总

Mysql知识点汇总 1. Mysql基本场景的简单语句。2. Mysql的增删改查&#xff0c;统计表中的成绩最好的两个同学的名字&#xff0c;年级等。3&#xff1a;请使用多种方法查询每个学生的每门课分数>80的学生姓名4、order by&#xff0c;group by&#xff0c;子查询4.1、having和…

优化嵌入式系统电源管理以提高稳定性

&#xff08;本文为简单介绍&#xff0c;观点源于网络&#xff09; 在嵌入式系统的领域中&#xff0c;电源管理扮演着至关重要的角色&#xff0c;关乎系统稳定性与用户体验。如果电源管理做得不好&#xff0c;就可能导致系统不稳定、数据丢失&#xff0c;甚至硬件损坏。电源管…

springboot186人格障碍诊断系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

03 SS之返回JSON+UserDetail接口+基于数据库实现RBAC

1. 返回JSON 为什么要返回JSON 前后端分离成为企业应用开发中的主流&#xff0c;前后端分离通过json进行交互&#xff0c;登录成功和失败后不用页面跳转&#xff0c;而是给前端返回一段JSON提示, 前端根据JSON提示构建页面. 需求: 对于登录的各种状态 , 给前端返回JSON数据 …

《Go 简易速速上手小册》第9章:数据库交互(2024 最新版)

文章目录 9.1 连接数据库 - Go 语言的海底宝藏之门9.1.1 基础知识讲解安装数据库驱动数据库连接 9.1.2 重点案例&#xff1a;用户信息管理系统准备数据库Go 代码实现连接数据库添加新用户查询用户信息用户登录验证主函数 9.1.3 拓展案例 1&#xff1a;批量添加用户准备数据库Go…