什么是机器学习?
机器学习 (ML) 是人工智能 (AI) 的一个分支,专注于开发算法和模型,使计算机能够从数据中学习并做出预测或决策,而无需明确编程。这意味着模型可以根据特定行业或公司的自定义数据进行训练,并且可以比现成的基础模型更有效地执行任务。
量身定制的智能应用程序——哇,听起来很棒,对吧?没错。但这很复杂吗?好吧,十年前,这对大多数公司或行业来说都是行不通的,因为复杂性、相关工具的访问权限有限,当然还有在最终用户应用程序中实现模型的困难。
如今,过去的挣扎和担忧终于开始消散。得益于向人工智能增强型应用程序开发的过渡, Mendix,应用程序可以结合智能解决方案和功能,如 Amazon Textract、Rekognition 等。
如果您想了解更多, 访问我们的网站 或读出的 Mendix 评估指南.
您需要的工具
首先,让我向你介绍一下这些工具。不要害怕;只有几个。
- Amazon SageMaker AI:用于创建和训练模型。
- Python 3.0:编写代码。
- Mendix Studio Pro 10:最新版本 Mendix 包括创建定制智能终端用户应用程序所需的 ML Kit。
使用最新版本的 Studio Pro 10, Mendix 通过在平台中加入许多炫酷、智能的功能,提高了应用程序开发的标准。其中之一,也是我个人最喜欢的,就是 Mendix 机器学习套件(Mendix ML套件)。ML Kit 可将您的 ONNX 模型直接导入 Studio Pro,无需进一步集成或调整,从而帮助您创建更快、更智能、更具协作性的应用程序。
我与机器学习,奋斗简史
亚马逊 SageMaker 人工智能
对于每个刚开始机器学习之旅的人来说,SageMaker 可能看起来有点复杂和令人不知所措。从个人经验来说,我的前几次尝试都以彻底的灾难告终。多个内核运行,菜单上的每个选项都要点击,多个笔记本执行着谁知道是什么,域和配置文件到处都是,不断点击播放按钮只是为了看看会发生什么。一场彻底的、最终的灾难。但我还没准备好放弃,所以经过一些尝试和几个小时的阅读后,我得出了这样的结论:“不是所有的东西都能用于所有的事情。”
Amazon SageMaker AI 为您提供了很多选择,帮助您创建、训练、集成、部署以及完成几乎所有您想用机器学习模型做的事情,但事实是,在大多数情况下,您只需要一个 Jupyter 笔记本、一些 Python 知识,当然还有一个数据集。
机器学习库
我在机器学习之旅中学到的一件事是,有许多不同的“建模框架”,如 ONNX、Scikit-learn、Tensorflow、Pytorch 等。每个框架都有自己的专门方式来执行和创建各种类型的人工智能。
昂尼克斯
正如前面几行提到的,ML Kit Mendix 10 与 ONNX 建模框架兼容。您可能会问自己,为什么是 ONNX?
ONNX(即开放神经网络交换)是一种支持框架间互操作性的 AI 模型开源格式,这意味着您可以在一个框架中训练模型,将其转换为 ONNX,然后在另一个框架中使用它。为了更清楚一点,每个可以转换为 ONNX 模型的框架也可以导入到 Mendix 10.
在这篇博文中,我将稍微解释一下如何将 Scikit-learn 模型转换为 ONNX 模型,并将其导入到 Mendix 10.1.1,并围绕它创建一个测试应用程序。如果您想了解有关 ONNX 的更多信息以及如何转换或使用 ONNX 模型, 访问这个网站.
上班时间
对于每一位想要卷起袖子跟随的读者,你将需要以下内容:
正如本博文开头所述,我将通过 Amazon SageMaker AI 的帮助,指导您完成创建演示垃圾邮件过滤器的过程,从而快速轻松地创建一个智能应用程序, Mendix.
为了方便一点,如果您想参与这次旅程,您可以从以下链接下载示例文件:
步骤 1 – 首先要做的事情:从 Amazon SageMaker Studio 开始
要开始使用 SageMaker Studio,请登录您的 AWS 账户并导航到 SageMaker 服务。在 SageMaker 仪表板中,从左侧菜单中选择 单间 进入SageMaker Studio界面。

如果您已有用户个人资料,请选择,然后打开 Studio。如果您没有个人资料或域,请选择 域名 从左侧菜单并按照说明进行操作。
第 2 步 - SageMaker Studio:Jupyter Lab Notebook
一旦工作室准备就绪,您将进入主屏幕,花一些时间检查屏幕,点击 jJ点击 upyterLab 图标继续。''JupyterLab 是最新的基于 Web 的交互式开发环境,适用于笔记本、代码和数据。其灵活的界面允许用户配置和安排数据科学、科学计算、计算新闻和机器学习中的工作流程。'' 了解更多信息 点击这里.
点击 Jupyter实验室 和 然后 创建 Jupyter实验室 空间.

选择一个名字, 至 指定 空间名称 并击中 创造空间 按钮。


你将被重定向到 Jupyter实验室 概览空间, 那么 s选举 运行空间 运行新创建的空间, 读一次 可选 它。
第 3 步 - 开始享受乐趣
检查左侧菜单并选择文件(文件夹)图标。这将打开文件部分,工作室中的所有可用文件都将可见。找到出现的上传按钮(如下面的屏幕截图所示)以上传示例文件。


一旦文件在文件夹中可见,请打开 spam_nb.ipynb 笔记本电脑。

Studio 将启动内核。这可能需要几分钟,一旦准备就绪,笔记本就会出现。
双击垃圾邮件 并选择 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 “ipykernel' 作为 核心 在弹出窗口中.

步骤 4 – 解释 Notebook 中的垃圾邮件代码
垃圾邮件示例非常简单,由三部分组成。
- 第一部分:必要的库
- 第二部分:训练和导出
- 第三部分:测试
在这篇博文中,我们将解释前两部分。
第一部分
第一部分,导入库。
- 这个 SYS 模块将有助于控制和改变环境运行时。
- 这个 skl2onnx 模块。sklearn-onnx 包含将模型从 scikit-learn 工具包转换为 ONNX 的功能。
- 这个 昂尼克斯 模块。
- 这个 onnxruntime 模块。

第二部分
在此部分中,模型经过训练并转换为 ONNX,然后导出到 ONNX 文件。下面的示例是使用训练集教模型进行预测。

训练集由与已知结果 (y_train) 相关的训练数据 (X_train) 组成。模型将学习哪种模式将被标记为 1 (真),例如, 垃圾邮件或 0(假),例如, 火腿.这个过程也被称为 配件。还将包括一个测试集(X_test,y_test)。
在上图中,我们可以看到第二部分也是从导入一些方法开始的(第 1-10 行)。现在不需要深入解释这些方法,因为我们会逐行解释这些函数。
下一行导入了 12 个数据集:
(df = pd.read_csv("spam.csv", encoding="L1")), and the attributes X and y are defied (X = df["v2"].values, y = df["v1"].values)
然后,创建四部分数据,用于拟合和预测值:
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=345)
(sklearn.model_selection.train_test_split 将数组分成随机训练和测试子集。)
在接下来的几行中,创建了管道对象:
pipe = make_pipeline(
CountVectorizer(binary=True),
MultinomialNB()
)
因此,最重要的部分发生在下一行,因为这里开始模型的“拟合”:
pipe.fit (X_train, y_train)
大功告成!剩下的就是使用 “to_onnx” 函数,然后使用将文件导出到笔记本中的文件 “写” 功能。
>
onxx_pipeline = to_onnx(pipe, initial_types=[('message', StringTensorType([None, 1]))])
with open("spam_nb.onnx", "wb") as f:
f.write(onxx_pipeline.SerializeToString())
有关将管道转换为 ONNX 的更多示例和信息,请查看 ONNX 文档.
最后但同样重要的一点是,您需要运行笔记本来执行代码:
- 将光标放在第一行。
- 点击顶部的播放图标。
- 笔记本上会出现一些多余的行,并且光标会重新出现在下一部分。
- 再次单击播放图标即可执行训练。
- 一些额外的行会再次出现,并且会创建 ONNX 文件。

检查文件夹,右键单击 spam_nb.onnx 并下载文件。

重要! 完成模型的训练和测试后,单击运行终端图标...
![]()
...在左侧菜单中,终止所有正在运行的实例以避免额外费用。
第 5 步 - 带上 Mendix 闪耀
现在是时候测试 ML Kit 了。
首先打开您的 Mendix 10 Studio 并创建一个新的空白应用程序。选择名为 我的第一个模块 从资源管理器选项卡中右键单击以打开弹出菜单

选择 ML 模型映射。

点击 导入模型 并导入ONNX文件。 Mendix 将自动创建输入和输出对象。
如果您在 ML 模型输入中看到错误消息,请打开实体并通过选择“1”作为静态张量形状来解决问题。


你的领域模型看起来应该像这样:

转到应用程序资源管理器中的域模型,添加一个额外的实体,并将其命名为 电子邮件. 为电子邮件实体添加两个字符串属性: Payload (无限制字符)和 预测 (保留默认值)。

选择电子邮件实体并右键单击以打开侧面菜单,然后选择 生成概览页面.

Mendix 将自动创建 电子邮件概述 和 Email_New编辑 页面并将它们放在 概述页面 的文件夹 浏览器 菜单。

为您的 Email_New编辑 页面并双击打开。双击 已保存 操作来打开其属性。

在 活动 部分,选择 调用微流程 > 从我们的数据库中通过 UL Prospector 平台选择 > 新增.

命名新的微流 预测垃圾邮件 (或 PredictSpam)。新微流程打开后,添加以下操作:

- 电子邮件实体的参数。
- 针对 ML 模型的输入对象的创建对象操作。

- 调用 ML 模型操作:选择可用的 ML 模型映射和输入对象,然后单击 OK.
- 更改电子邮件操作(设置 承诺 和 刷新 至 是)作为成员,选择预测,并作为值,设置输出标签 输出对象.

- 最后, 关闭页面 行动。

该应用程序仅剩两项调整,几乎已准备就绪,您将能够运行和使用智能电子邮件垃圾邮件检测应用程序。
转到菜单的导航选项。

点击 电子邮件概述 页面作为默认页面并作为主页。

完成了!时间终于到了……
测试与验证
点击右上角的播放图标来运行你的项目。准备就绪后,点击 查看应用 按钮转到您的应用程序。
![]()
主页看起来应该是这样的:

点击开始测试 新增. 添加一条消息作为有效载荷。

您可以通过添加如下类似垃圾邮件的消息来测试它。
“恭喜!
您已被选为 2023 年微软彩票的幸运获奖者之一。您赢得了 10,000,000 美元的现金奖励和一台全新的笔记本电脑。
要领取奖品,您需要联系我们的代理并提供以下信息:
联系代理“
如果该电子邮件被识别为垃圾邮件,则预测下将显示“垃圾邮件”...

…如果不是,那就是“火腿”。

就这样。不到一小时,您就创建了一个小型 ML 注入应用!如果您喜欢这个过程并希望继续学习更多知识,您可以关注 链接 更多示例或 Mendix ML 套件示例应用程序。
下一步是什么
两项强大技术的融合, Mendix 10 ML Kit 和 Amazon SageMaker AI,为 AI 应用开发领域开启了激动人心的无限可能。通过利用 Mendix 借助 SageMaker 先进的机器学习功能,开发人员可以创建不仅用户友好而且深度智能的人工智能驱动的应用程序。
想继续探索人工智能吗?
生成式人工智能和 ChatGPT 等工具被大肆炒作,但它对企业应用开发的未来意味着什么?它只是一个闪亮的新玩具,还是一个可以带来真正投资回报的改变游戏规则的工具? 注册参加我们的网络研讨会,生成式人工智能:构建更智能的应用程序,构建更智能的应用程序,28 年 2023 月 9 日(美国东部时间上午 3 点 | 欧洲中部时间下午 XNUMX 点)!