在Data Collector中使用TensorFlow进行实时机器学习
导言
只有当业务方面的用户和应用程序能够从一系列来源访问原始和聚合数据,并及时生成数据驱动时,才能实现现代DataOps平台的真正价值。借助机器学习,分析师和数据科学家可以利用TensorFlow等技术,利用历史数据帮助制定更好的,数据驱动的业务决策:离线和实时。
在本文中,将学习如何使用TensorFlow(TF)模型进行预测和分类,使用StreamSets Data Collector 3.5.0 和StreamSets Data Collector Edge 中新发布的TensorFlow Evaluator *。
*注意:TensorFlow Evaluator 术语测试阶段的Technology Preview系列,在推出测试阶段之前不应该用于生产。
在深入了解细节之前,先了解一些基本概念。
机器学习
Arthur Samuel 将其描述为:“研究领域使计算机无需明确编程即可学习。”随着机器学习的最新进展,计算机现在能够进行预测,甚至比人类更好,它可以感觉、理解越来越多的问题。让我们首先回顾一下它解决了什么样的问题。
一般而言,ML分为两大类:
监督学习
“监督学习是学习功能的机器学习任务,它根据示例输入-输出对,将输入映射到输出。”
它涉及构建一个准确的模型,该模型可以预测历史数据被标记为这些结果的结果。
监督学习解决的常见业务问题:
二进制分类(学习预测分类值)
- 客户是否会购买特定产品?
- 这种癌症是恶性的还是良性的?多类分类(学习预测分类值)
- 给定的文本是否有毒,威胁或淫秽?
- 这种鸢尾花属植物,杂色或维吉尼亚的种类?回归(学习预测连续价值)
- 房屋的预测售价是多少?
- 明天在旧金山会有什么温度?
无监督学习
允许我们在很少或根本不知道输出是什么的情况下解决问题。它涉及构建模型,其中过去数据的标签不可用。在这些类型的问题中,通过基于数据中的变量之间的关系对数据进行聚类来导出结构。
无监督学习的两种常用方法是:K-means和DBSCAN。
*注意:Data Collector和Data Collector Edge中的TensorFlow评估器目前仅支持监督学习模型。
神经网络与深度学习
神经网络是ML算法的一种形式,可以学习和使用受人类大脑结构启发的计算模型。与其他ML算法(如决策树、逻辑回归等)相比神经网络已经被证明是高度准确的。
深度学习是神经网络的一个子集,它允许网络在嵌套层次结构中表示各种各样的概念。
Andrew Ng 在传统的人工神经网络的背景下描述了它。在他的题为“深度学习,自学习和无监督特征学习”的演讲中,他将深度学习的概念描述为:
“使用大脑模拟,希望:
- 使学习算法更好,更容易使用。
- 在机器学习和人工智能方面取得革命性的进步。
我相信这是我们迈向真正人工智能的最好机会。”
常见的神经网络和深度学习应用包括:
计算机视觉/图像识别/物体检测
语音识别/自然语言处理(NLP)
推荐系统(产品,配对等)
异常检测(网络安全等)
TensorFlow
TensorFlow是专为深度神经网络设计的开源ML框架,由Google Brain Team创建。TensorFlow支持Windows和Mac OS上的可扩展和便携式训练:在CPU、GPU和TPU上。截止今天,它是GitHub上最受欢迎和最活跃的ML项目。
Data Collector中的TensorFlow
通过引入TensorFlow评估程序,现在可以创建管道,可以在所包含的环境中提取数据/功能并生成预测或分类,而无需对作为Web服务提供和公开的ML模型启动HTTP或REST API调用。例如,Data Collector管道现在可以检测欺诈性事件,或者在数据通过各个阶段之前实时对文本执行自然语言处理,然后再存储到最终目标中,以便进一步处理或做出决策。
此外,使用Data Collector Edge,您可以在Raspberry Pi等设备上运行支持 TensorFlow ML的管道,以及在支持的平台上运行的其他设备。例如,检测高风险地区洪水等自然灾害,以防止损害有价值的资产。
乳腺癌分类
让我们考虑将乳腺肿瘤分类为恶性或良性的用例。(威斯康星州)乳腺癌是一种经典的数据集,可作为scikit-learn的一部分。要了解我如何在Python中使用此数据集训练和导出简单的TF模型(代码见GitHub)。正如你将注意到的,模型创建和训练保持在最低限度,并且只有几个隐藏层非常简单。要注意的最重要的地方是如何使用TensorFlow SavedModelBuilder * 导出和保存模型。
*注意:要在Data Collector或Data Collector Edge中使用TF模型,应使用TensorFlow SavedModelBuilder以您选择的受支持语言(如Python和交互式环境(如 Jupiter Notebook))导出/保存它们。
使用TensorFlow SavedModelBuilder 训练和导出模型后,只要将模型保存在Data Collector 或Data Collector Edge 可访问的位置,就可以在数据流管道中使用它进行预测或分类非常简单。
管道概述
在深入细节之前,我们先来看管道是怎样的?
管道细节
目录来源:
- 这将从.csv文件加载乳腺癌记录。(注意:此输入数据源可以很容易地替换为其他来源,包括Kafka,AWS S3,MySQL等)场转换器:
- 此处理器将转换模型使用的所有输入乳腺癌记录功能TensorFlow Evaluator *:
- 保存的模型路径:指定要使用的预训练TF模型的位置。
- 模型标签:设置为“提供”,因为元图(在我们的导出模型中)旨在用于服务。
- 输入配置:指定在训练和导出模型期间配置的输入张量信息。
- 输出配置:指定在训练和导出模型期间配置的输出张量信息。
- 输出字段:我们要存储分类值的输出记录字段。表达式计算器:
- 此处理器评估模型输出/分类值0或1(存储在输出字段TF_Model_Classification中)并创建一个新记录字段'Condition',其值分别为Benign或Malignant。流选择器:
- 该处理器评估癌症状况(良性或恶性)并将记录路由到相应的Kafka生产者。Kafka Producers:
- 输入记录以及模型输出/分类值有条件地路由到两个Kafka生产者进行进一步处理和分析。(注意:这些目的地可以很容易地用其他目的地替换,例如AWS S3,MySQL,NoSQL等,以便进一步处理和/或分析。)
*TensorFlow评估器配置
*注意:一旦TensorFlow Evaluator 生成模型输出,此示例中的管道阶段是可选的,并且可以根据用例的要求与其他处理器和目标互换。
管道执行
在预览(或执行)管道时,输入的乳腺癌记录通过上面概述的数据流管道阶段,包括服务我们的TensorFlow模型。发送给Kafka生产者的最终输出记录(如上所示)包括模型用于分类的乳腺癌特征,用户定义的字段TF_Model_Classification中的模型输出值0或1,以及由现场条件创建的相应癌症状况良性或恶性。
结语
这篇文章说明了在Data Collector 3.5.0 中使用新发布的TensorFlow Evaluator。一般而言,此评估程序将使您能够提供预先训练的TF模型,以生成预测和/或分类,而无需编写任何自定义代码。
长按订阅更多精彩▼
在Data Collector中使用TensorFlow进行实时机器学习相关推荐
- 在数据采集器中用TensorFlow进行实时机器学习
最新DataOps平台的真正价值,只有在业务用户和应用程序能够从各种数据源来访问原始数据和聚合数据,并且及时地产生数据驱动的认识时,才能够实现.利用机器学习(Machine Learning),分析师 ...
- collector_使用Data Collector进行SQL Server性能监视–第3部分–阅读报告
collector first part of this article, we described Data Collector, its features and pre-defined coll ...
- Streamsets Data Collector 3.12
Streamsets Data Collector 3.12 官方文档:https://docs.streamsets.com/portal/datacollector/3.9.x/help/data ...
- 独家 | 在浏览器中使用TensorFlow.js和Python构建机器学习模型(附代码)
作者:MOHD SANAD ZAKI RIZVI 翻译:吴金笛 校对:丁楠雅 本文约5500字,建议阅读15分钟. 本文首先介绍了TensorFlow.js的重要性及其组件,并介绍使用其在浏览器中构建 ...
- collector_使用Data Collector监视SQL Server性能
collector 什么是SQL Server数据收集器 (What is SQL Server Data Collector) SQL Server数据收集器是SQL Server Manageme ...
- linux tensorflow demo_独家 | 在浏览器中使用TensorFlow.js和Python构建机器学习模型(附代码)...
作者:MOHD SANAD ZAKI RIZVI 翻译:吴金笛 校对:丁楠雅 本文约5500字,建议阅读15分钟. 本文首先介绍了TensorFlow.js的重要性及其组件,并介绍使用其在浏览器中构建 ...
- opencv python 人脸识别 相似度_OpenCV+Tensorflow实现实时人脸识别演示
原标题:OpenCV+Tensorflow实现实时人脸识别演示 Facenet网络介绍 FaceNet是谷歌提出的人脸识别模型,它跟其他人脸识别模型最大的一个不同就是它不是一个中间层输出,而是直接在欧 ...
- 调用摄像头使用face_recognition 或 opencv中haar人脸特征实时检测识别人脸、给人脸打马赛克/给人脸贴图
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) OpenCV:python调用摄像头同时使用OpenCV中自带 ...
- 如何基于Flink+TensorFlow打造实时智能异常检测平台?只看这一篇就够了
作者 | 潘国庆编辑 | Natalie AI 前线导读:Flink 已经渐渐成为实时计算引擎的首选之一,从简单的实时 ETL 到复杂的 CEP 场景,Flink 都能够很好地驾驭.本文整理自携程实时 ...
最新文章
- 编译内核出现make CONFIG_DEBUG_SECTION_MISMATCH=y错误
- python简单网页服务器示例
- php中url编码地址栏,php url地址栏传中文乱码解决方法集合_PHP
- poco c++ 开发指南_掌握这个框架,你将会开发通杀全平台的万能爬虫
- 10-礼帽与黑帽操作
- wap_list.php,织梦DEDECMS生成静态手机页面
- 抓包测试步骤XMind
- 高中电子技术——继电器
- sqlmap自动扫描注入点_SQLMAP使用指南[学员作品]
- BZOJ3156 防御准备
- 前任3丨《前任3》里的这三种爱情,你都有过哪一种
- 《电子DIY》之《单片机实践项目》之proteus中电源配置问题,keil常见错误总结一(九十)
- CSPS-S 模拟47
- Docker------网络
- Java中String类intern()详解
- 一路生花 - 温奕心
- 计算机应用技术与物联网专业介绍,《物联网应用技术》专业简介
- 编写高质量代码改善C#程序的157个建议——建议64:为循环增加Tester-Doer模式而不是将try-catch置于循环内...
- T检验,方差分析,非参数检验,卡方检验,方差分析总结
- linux程序包覆盖安装,Linux—程序包安装与管理
热门文章
- 带修莫队 ---- 离散化 + 暴力 + 带修莫队 F. Machine Learning
- 差分阻抗为多少_谈谈差分信号
- BZOJ 2156 「国家集训队」星际探索(最短路)【BZOJ计划】
- c语言信号灯作用,交通信号灯对交通领域的作用与影响
- android系统密码设置功能,手机锁屏密码怎么设置 三种安卓手机锁屏方式推荐
- 解决MyBatis中 Could not set property ~ o f ~异常
- 关于libStagefright系列漏洞分析
- [转] 大规模服务设计部署经验谈
- 巧用Windows 7命令,修复系统故障!
- 移动端网页乱象怎么破?搜狗搜索正在为行业建言