使用 Streamlit 库部署机器学习模型

2025年6月20日 | 阅读 4 分钟

机器学习

机器学习是计算机通过经验学习的能力,即使它没有被编程。机器学习是当前热门领域,全球许多顶尖公司都在利用它来改进其产品和服务。未在 Jupyter Notebook 中训练的机器学习模型是无用的。我们需要将这些模型提供给所有人,以便他们可以使用。

在本教程中,我们将训练一个鸢尾花物种分类器,然后使用 Streamlit 部署模型,Streamlit 是一个开源应用框架,可以让我们轻松部署 ML 模型。

理解 Streamlit 库

Streamlit 允许我们使用简单的 Python 脚本为我们的机器学习项目创建应用程序。它还支持热重载,因此当我们在编辑和保存文件时,我们的应用程序可以实时更新。Streamlit API 允许我们用几行代码创建应用程序(如下所示)。声明一个变量与添加一个部件是相同的。我们不需要创建后端、处理 HTTP 请求或定义不同的路由。它易于设置和维护。

首先,我们将训练模型。作为本教程的主要目的,我们不会进行太多预处理。

训练模型

所需模块和库:要开始,让我们运行以下命令安装必要的模块和库

数据集

接下来,我们需要一个数据集来训练我们的模型。在本教程中,我们将使用 Iris 数据集。让我们加载数据集并查看其结构

代码

输出

Deploy a Machine Learning Model using Streamlit Library

现在我们将删除 Id 列,因为它对于鸢尾花物种分类来说不是必需的。接下来,我们将数据分为训练集和测试集,并使用随机森林分类器。也可以使用任何其他分类器,例如逻辑回归支持向量机

代码

现在,让我们将数据分为特征 (X) 和目标变量 (y)。我们将使用 70% 的数据进行训练,30% 用于测试

代码

在本教程中,我们将使用随机森林分类器,但请随意探索其他分类器,如逻辑回归或支持向量机。我们应该准备模型并评估其准确性

代码

输出

Prediction Accuracy:  0.9777777777777777

我们得到了 97.78% 的准确率,这相当不错。

保存训练好的模型

要使用此模型预测未知数据,我们必须保存它。pickle 是一种序列化和反序列化 Python 对象结构的工具。

代码

一个名为“classifier1.pkl”的新文件将在同一目录中创建。我们现在可以使用 Streamlit 部署我们的模型 -

使用 Streamlit 部署模型

现在,让我们使用 Streamlit 部署我们的模型。创建一个新的 Python 文件并复制以下代码

代码

将文件保存为 .py 扩展名。在您的终端中,导航到包含该文件的目录并执行以下命令来运行 Streamlit 应用程序

语法

输出

Deploy a Machine Learning Model using Streamlit Library

app1.py 是编写 Streamlit 代码的地方。

网站在浏览器中打开后,我们就可以对其进行测试。我们还可以使用此方法部署深度学习和机器学习模型。

结论

在本教程中,我们准备了一个基于 Iris 数据集的非规则林地分类器,并利用 Streamlit 库发送了模型。我们展示了如何保存准备好的模型并创建一个智能 Web 应用程序以进行预测。Streamlit 的简洁性和强大功能使其成为发送 AI 模型的绝佳选择。通过遵循本教程,您可以发送您自己的模型并创建易于使用的应用程序,供他人从您的 AI 解决方案中受益。