🥑Streamlit构建机器学习模型界面

Streamlit | 机器学习 | Python

背景

Streamlit是一个Python库,可帮助我们为没有HTML / CSS / JS的模型开发UI。 大多数模型都停留在Jupyter Notebook且没有吸引力。 然而,使用Streamlit,您可以为模型创建一个干净的界面并将其展示给其他人。 构建界面可使用户以更加用户友好的格式使用您的模型。

  • 您无需处理HTML / CSS / JSS

  • 支持markdown

  • 它具有许多可用的预构建窗口小部件,从而进一步减少了您花费在构建UI上的时间

  • 建立一个响应式用户界面

  • 使用Streamlit共享易于部署Streamlit应用程序

  • 它是开源的,您可以根据需要创建窗口小部件

本文将建立一个逻辑回归模型,以预测一个人是否能度过泰坦尼克号灾难。 构建模型后,我们将使用Streamlit为模型构建一个Web应用程序和一个UI。 该网络应用将允许用户输入值并获得预测结果。

准备

本文的重点是Streamlit,因此需要熟悉使用scikit-learn构建机器学习模型。

  • 对Python有很好的了解

  • 基本了解数据清理和标准技术,例如数值编码,单次热编码

  • 熟悉scikit-learn库

  • 熟悉Logistic回归会有所帮助,但不是必需的

  • 熟悉Pandas库

  • 对Matplotlib库的基本了解

库安装

导入库

逻辑回归模型

首先,我们将加载Titanic数据集并处理我们的数据集以满足我们的要求。您可以从此链接下载数据集。

我们导入数据集并创建一个数据框。

您可以打印数据框以检查其中的列。

在我们的逻辑回归模型可以使用它之前,我们需要对我们的数据执行以下操作。

  • 为“性别”特征分配一个数值。

  • 在“ Pclass”特征上使用一键编码。

  • 在“年龄”列中填写缺失的值。

  • 仅选择所需的功能。

我们将定义一个函数来转换我们的数据,以使其可用于我们的Logistic回归模型。

处理数据

  • 对于性别列,如果乘客是男性,我们将值设置为0,如果乘客是女性,则将值设置为1。

  • 我们使用平均值来填充年龄列中的缺失数据。

  • 我们对Pclass使用一键编码。

  • 由于我们不专注于构建模型,因此我们只会从数据框中选择6个特征。

我们将使用70–30的比例来拆分数据集。

我们将需要缩放数据,因此它的均值= 0,标准差= 1。

构建模型

训练完模型后,我们将存储模型的准确性得分。

Streamlit

要运行流式应用程序,请键入以下命令。

您应该会看到一个空白屏幕,因为我们目前没有任何组件正在显示。在右上角,选择“始终重新运行”。这告诉Streamlit每次我们对代码进行更改时都要重新加载。

标题和输入Dataframe

我们将在网络应用程序的这一部分中使用以下函数:

  • title(str):此方法类似于<h1>标记。它以字符串作为参数,并将文本显示为标题。

  • subheader(str):类似于标题方法,但是显示的文本字体小于标题显示的字体。

  • table(dataframe):table()方法将一个dataframe作为参数并显示它。您也可以使用.dataframe()方法,而.table()方法显示的外观更好看。

st.table()的替代方法是st.dataframe()。它们都支持一个数据框并可以显示它,但是我更喜欢st.table(),因为它看起来更好。

模型性能

用户输入

接下来,我们允许用户输入数据并显示预测。

显示预测

根据预测,我们将显示一条文本消息。

Last updated