译者|张艺评论|梁策、孙淑娟1.如何成为IDO?IDO(insight-drivenorganization)是指以洞察力为导向(以信息为导向)的组织。要成为IDO,您首先需要数据以及操作和分析数据的工具;第二,具有适当经验的数据分析师或数据科学家;最后,你需要找到一种技术或方法来在整个公司实施洞察力驱动的决策过程。机器学习是一种最大限度发挥数据优势的技术。ML过程首先使用数据训练预测模型,训练成功后解决与数据相关的问题。其中,人工神经网络是最有效的技术,它是根据我们目前对人脑工作原理的理解而设计的。考虑到人们目前拥有的巨大计算资源,它可以在对大量数据进行训练时生成令人难以置信的模型。企业可以使用多种自助服务软件和脚本来完成不同的任务,从而避免出现人为错误的情况。同样,您可以根据数据做出决策以避免人为错误。2.为什么企业在采用人工智能方面进展缓慢?只有少数企业使用人工智能或机器学习来处理数据。根据美国人口普查局的数据,截至2020年,只有不到10%的美国企业采用了机器学习(主要是大公司)。采用ML的障碍包括:人工智能在取代人类之前还有很多工作要做。首先是很多公司缺乏也请不起专业人才。数据科学家在这个领域备受推崇,但他们的聘用成本也是最高的。缺乏可用数据、数据安全和ML算法的实施耗时。企业很难创造一个可以利用数据及其优势的环境。这种环境需要相关的工具、流程和政策。3.机器学习的推广AutoML(AutoML)工具本身还不够AutoML平台前景广阔,但其覆盖面目前相当有限,AutoML是否会很快取代数据科学家存在争论。如果您想在公司中成功部署自助式机器学习,AutoML工具确实至关重要,但流程、方法和策略也必须得到认真对待。AutoML平台只是工具,大多数ML专家认为这还不够。4.分解机器学习过程任何机器学习过程都是从数据开始的。人们普遍认为数据准备是ML过程中最重要的部分,而建模部分只是整个数据管道的一部分,AutoML工具简化了这一部分。完整的工作流程仍然需要大量工作来转换数据并将其提供给模型。数据准备和数据转换可能是工作中最耗时和最不愉快的部分。此外,用于训练机器学习模型的业务数据也会定期更新。因此,需要企业构建复杂的ETL流水线,掌握复杂的工具和流程,保证ML流程的连续实时性也是一项具有挑战性的任务。5.将ML与应用程序集成假设现在我们已经构建了ML模型,我们需要部署它。经典的部署方式将其视为应用层组件,如下图所示:它的输入是数据,它的输出是我们得到的预测。通过集成这些应用程序的API使用ML模型的输出。仅从开发人员的角度来看,这一切似乎都很容易,但考虑到过程就没那么容易了。在大型组织中,任何与业务应用程序的集成和维护都相当麻烦。即使一家公司精通技术,任何代码更改请求也必须经过多个级别部门的特定审查和测试流程。这会对灵活性产生负面影响,并增加整个工作流程的复杂性。如果在测试各种概念和想法时有足够的灵活性,基于ML的决策就会容易得多,因此人们会更喜欢具有自助服务功能的产品。6.自助机器学习/智能数据库?正如我们在上面看到的,数据是ML过程的核心,现有的ML工具获取数据并返回预测,这些预测也是以数据的形式存在的。现在问题来了:为什么我们将机器学习作为一个独立的应用程序,并在机器学习模型、应用程序和数据库之间进行复杂的集成?为什么不让机器学习成为数据库的核心功能呢?为什么不让ML模型通过SQL等标准数据库语法可用呢?让我们分析上述问题以及寻找ML解决方案所面临的挑战。挑战#1:复杂的数据集成和ETL管道在ML模型和数据库之间维护复杂的数据集成和ETL管道是ML流程面临的最大挑战之一。SQL是一种出色的数据操作工具,因此我们可以通过将ML模型引入数据层来解决这个问题。换句话说,ML模型将从数据库中学习并返回预测。挑战#2:将ML模型与应用程序集成通过API将ML模型与业务应用程序集成是另一个挑战。业务应用程序和BI工具与数据库紧密耦合。因此,如果AutoML工具成为数据库的一部分,我们可以使用标准的SQL语法进行预测。接下来,不再需要ML模型和业务应用程序之间的API集成,因为模型驻留在数据库中。解决方案:在数据库中嵌入AutoML在数据库中嵌入AutoML工具会带来很多好处,例如:任何使用数据并理解SQL的人(数据分析师或数据科学家)都可以利用机器学习的力量。软件开发人员可以更有效地将ML嵌入到业务工具和应用程序中。数据和模型之间、模型和业务应用程序之间不需要复杂的集成。这样一来,上面相对复杂的集成图就发生了如下变化:看起来更简单了,也让ML过程更顺畅、更高效。7.如何实现自助服务ML找到使用模型作为虚拟数据库表的解决方案的下一步是实现它。为此,我们使用一种称为AI表的结构。它以虚拟表的形式将机器学习引入数据平台。它可以像任何其他数据库表一样创建,然后暴露给应用程序、BI工具和数据库客户端。我们通过简单地查询数据来做出预测。AITables最初由MindsDB开发,可作为开源或托管云服务使用。它们与Kafka和Redis等传统SQL和NoSQL数据库集成。8.使用AITablesAITables的概念使我们能够在数据库中执行ML过程,从而使ML过程的所有步骤(即数据准备、模型训练和预测)都可以通过数据库执行。训练AITables,首先需要用户根据自己的需要创建一个AITable,类似于机器学习模型,包含与源表的列等价的特征;然后,AutoML引擎自行完成其余的建模任务。稍后将给出示例。进行预测创建AI表后,无需任何进一步部署即可使用。要进行预测,只需在AITable上运行标准SQL查询。您可以一个一个地或分批地进行预测。AITables可以处理许多复杂的机器学习任务,例如多变量时间序列、检测异常等。9.AITables的工作示例在正确的时间保持产品库存对零售商来说是一项复杂的任务。当需求增加时,供应也随之增加。基于这些数据和机器学习,我们可以预测给定产品在给定日期应该有多少库存,从而为零售商带来更多收入。首先,您需要跟踪以下信息并创建一个AI表:产品销售日期(date_of_sale)商店(shop)销售的产品销售的具体产品(product_code)产品销售数量(amount)如下图所示:(1)训练AITables要创建和训练AITables,首先要允许MindsDB访问数据。详情请参考MindsDB文档(MindsDBdocumentation)。AITables就像ML模型一样,需要使用历史数据来训练它们。让我们使用一个简单的SQL命令来训练AITable:让我们分析这个查询:使用MindsDB中的CREATEPREDICTOR语句。根据历史数据定义源数据库。AITable根据历史数据表(historical_table)进行训练,选择的列(column_1和column_2)是用于预测的特征。AutoML会自动执行其余的建模任务。MindsDB识别每一列的数据类型,对其进行规范化和编码,并构建和训练ML模型。同时,您可以看到每个预测的整体准确性和置信度,并估计哪些列(特征)对结果更重要。在数据库中,我们经常需要处理涉及高基数的多元时间序列数据的任务。使用传统方法创建此类ML模型需要付出相当大的努力。我们需要根据给定的时间、日期或时间戳数据字段对数据进行分组和排序。例如,让我们预测五金店出售的锤子数量。然后,数据按商店和产品分组,并对每个不同的商店和产品组合进行预测。这给我们带来了为每个组创建时间序列模型的问题。这听起来工作量很大,但MindsDB提供了一种使用GROUPBY语句创建单个ML模型来一次性训练多变量时间序列数据的方法。让我们看看这是如何仅使用一个SQL命令完成的:创建一个stock_forecaster来预测特定商店将来会销售多少商品。数据按销售日期排序并按商店分组。所以我们可以预测每个商店的销售额。(2)批量预测通过使用下面的查询将销售数据表与预测器进行join,JOIN操作将预测的数量添加到记录中,这样我们就可以一次得到多条记录的批量预测。要了解有关在BI工具中分析和可视化预测的更多信息,请查看本文。(3)将ML模型视为独立应用程序的传统方法的实际应用需要维护ETL管道到数据库和API集成到业务应用程序。AutoML工具使建模部分简单明了,但完整的ML工作流程仍然需要经验丰富的专家来管理。事实上,数据库已经是数据准备的首选工具,因此将ML引入数据库比将数据引入ML更有意义。由于AutoML工具驻留在数据库中,从MindsDB构建的AITables为数据从业者提供了自助式AutoML,并简化了机器学习工作流程。原文链接:https://dzone.com/articles/self-service-machine-learning-with-intelligent-dat译者简介张毅,51CTO社区编辑,中级工程师。主要研究人工智能算法的实现和场景应用,了解和掌握机器学习算法和自动控制算法,将持续关注国内外人工智能技术的发展,特别是人工智能技术在智能领域的应用联网汽车和智能家居等领域的实现和应用。
