当前位置: 首页 > 科技观察

在Data Collector中如何使用TensorFlow实现实时机器学习_0

时间:2023-03-14 15:58:52 科技观察

如何在DataCollector中使用TensorFlow实现实时机器学习只有获得数据驱动的洞察力,他们才能真正实现现代DataOps平台的真正价值。借助机器学习(MachineLearning,ML)技术,数据分析师和科学家可以离线或实时地使用各种历史数据,利用TensorFlow等技术协助做出更好的数据驱动业务决策。在本文中,您将学习:如何使用StreamSetsDataCollector3.5.0(参见--https://streamsets.com/products/sdc)和StreamSetsDataCollectorEdge(参见--https://streamsets.com/documentation/datacollector/latest/help/datacollector/UserGuide/Edge_Mode/EdgePipelineTypes.html#concept_c14_m4r_4bb)最新版本的TensorFlowEvaluator(参见--https://streamsets.com/documentation/datacollector/latest/help/datacollector/UserGuide/Processors/TensorFlow.html#concept_otg_csh_z2b),使用TensorFlow(TF)模型进行各种预测和分类。在深入细节之前,让我们一起澄清几个基本概念。机器学习ArthurSamuel将其描述为:“这是一个研究如何让计算机在没有事先显式编程的情况下自动学习的领域。”随着机器学习技术的发展,如今的计算机已经能够做出与人类相同甚至更好的预测。在解决问题的方式上,机器学习通常分为两类:监督学习维基百科定义为:监督学习是一种可以基于给定示例中的“输入输出对”的方法。将输入映射到输出的学习任务。当历史数据根据其结果进行标记时,可以通过构建准确的模型来预测各种结果。监督学习可以解决的常见业务问题包括:二选一分类(学习预测分类值)客户会购买某种产品吗?某种癌症病例是恶性的还是良性的?多重分类(学习预测分类值)在给定的文本中是病毒式的还是不健康的?给定的花属于什么主题和物种?回归(学习预测连续值)房子的预售价是多少?旧金山明天的温度是多少?UnsupervisedLearning无监督学习过程最大的问题是我们对输出知之甚少或一无所知。由于要构建的模型不能使用过去数据的标签,因此需要根据数据中变量之间的关系对数据进行聚类,推导出结构。无监督学习的两种常用方法是:K-means聚类(参见--https://en.wikipedia.org/wiki/K-means_clustering)和DBSCAN(参见--https://en.wikipedia.org/wiki/数据库扫描)。注意:DataCollector和DataCollectorEdge中的TensorFlowEvaluator目前仅支持监督学习模型。神经网络和深度学习神经网络是机器学习算法的一种形式,它学习和使用受人脑结构启发的计算模型。与决策树、逻辑回归等其他机器学习算法相比,神经网络具有更高的准确性。深度学习是神经网络的一个子集,它允许网络在嵌套层次结构中表示各种概念。常见的神经网络和深度学习应用包括:计算机视觉/图像识别/目标检测语音识别/自然语言处理(NLP)推荐系统(产品推荐、婚介等)异常检测(网络安全等)TensorFlowbytheGoogleBrain团队创建了TensorFlow,这是一个专为深度神经网络设计的开源机器学习框架。TensorFlow不仅可以在Windows和MacOS上,还可以在CPU、GPU和TPU上支持可扩展和可移植的模型训练。目前,它是GitHub上最受欢迎和最活跃的机器学习项目之一。DataCollector中的TensorFlow使用TensorFlowEvaluator,您可以创建传输数据/特征的管道,并在包含的环境中生成各种预测或分类。您可以访问作为Web服务发布的机器学习模型,而无需启动HTTP或RESTAPI调用。例如,数据在存储到最终目的地之前通常会经历几个阶段,而DataCollector的各种管道可以实时检测诸如欺诈交易之类的事情,或者通过文本的自然语言处理来采取进一步的措施。处理或决策。此外,借助DataCollectorEdge,您可以运行RaspberryPi(参见--https://www.raspberrypi.org/)或其他受支持的平台(参见--https://streamsets.com/documentation/datacollector/latest/help/datacollector/UserGuide/Edge_Mode/SupportedPlatforms.html#concept_yxr_b5q_4bb)以运行支持TensorFlow机器学习的管道。例如,检测高风险地区发生洪水等自然灾害的概率。用例让我们考虑一个如何将乳腺癌肿瘤分类为恶性或良性的用例。通过使用scikit-learn模型提供的乳腺癌经典数据集(参见--http://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_breast_cancer.html),我使用Python构建列a可用于训练和导出的简单TF模型。您可以通过以下链接查看我在GitHub上的代码-https://github.com/iamonthheinet/datascience/blob/master/Breast_Cancer/breast_cancer_training.py。作为最小用例,我在模型的创建和训练中只使用了几个隐藏层。但是,您可以关注TensorFlowSavedModelBuilder(参见--https://www.tensorflow.org/api_docs/python/tf/saved_model/builder/SavedModelBuilder)如何与支持的语言(如Python)一起工作,以及Notebook如何工作(参见--http://jupyter.org/)用于导出和保存模型的交互式环境。使用TensorFlowSavedModelBuilder训练并导出模型后,只需将模型保存在DataCollector或DataCollectorEdge可访问的位置,即可轻松在数据流管道中进行预测或分类。管道概述下图显示了上述用例的管道详细信息。其中:DirectoryOrigin:乳腺癌数据记录从.csv文件加载到这里。注意:您可以轻松地将此处输入的数据源替换为其他来源,包括:Kafka、AWSS3、MySQL等FieldConverter:该处理器将对所有以breast为特征的输入进行从字符串到浮点数的均值转换癌症记录。TFevaluator(TensorFlowEvaluator,其配置如下图):Savedmodelpath:指定预训练TF模型的位置。ModelTag:在我们导出的模型中,由于metagraph是要服务的,所以需要设置为“serve”。更多细节请参考tag_constants.py(https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/saved_model/tag_constants.py)和相关的TensorFlowAPI文档(https://www.tensorflow.org/api_docs/python/tf/saved_model/tag_constants)。输入配置:指定训练和导出模型时配置的输入张量信息。请参阅训练模型和使用TensorFlowSavedModelBuilder保存和导出部分(https://github.com/iamonthheinet/datascience/blob/master/Breast_Cancer/neural_networks_with_tensorflow-breast-cancer.ipynb)。输出配置:指定在训练和导出模型期间配置的输出张量信息(另请参见上面的链接)。输出字段:我们需要输出记录字段来存储分类值。ExpressionEvaluator:该处理器评估分类值为0或1的模型输出(通常存储在输出字段TF_Model_Classification中),并据此创建分别具有“良性”或“恶性”特征的条件(Condition)”新记录字段。流选择器:通过评估癌症的状态(良性或恶性),它将记录发送到各种Kafka生产者。Kafka生产者:各种输入记录,以及模型输出/分类值,有条件地路由到两个Kafka生产者用于进一步处理和分析。(注意:这里的目标可以很容易地替换为其他目标,包括:AWSS3,MySQL和NoSQL等)匹配。您可以根据用例需要与其他处理器和目标交换。执行管道的预览(或执行)管道时,那些输入的乳腺癌记录通过上述数据流的管道阶段传递,包括服务pro为TensorFlow模型提供。发送给Kafka生产者的最终输出记录(如上所示)将包括用于对乳腺癌进行分类的模型特征;在用户定义字段TF_Model_Classification中,输出模型值(0或1);并通过过滤器创建的表达式A字段条件进行评估,这反过来表明癌症状况是良性还是恶性。总结以上简单介绍了DataCollector3.5.0新发布的TensorFlowEvaluator的使用方法。通过这个评估器,您可以提供经过训练的TF模型来生成各种预测和分类,而无需编写任何额外的自定义代码。原标题:Real-TimeMachineLearningWithTensorFlowinDataCollector,作者:DashDesai