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

### 背景

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（），因为它看起来更好。

#### 模型性能

#### 用户输入

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

#### 显示预测

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

{% content-ref url="../zhi-dian-mi-jin-brief" %}
[zhi-dian-mi-jin-brief](https://via-dean.gitbook.io/all/interdisciplinary-perspective-xue-ji-de-shi-dian/ya-tu-kua-ji/gui-dang/zhi-dian-mi-jin-brief)
{% endcontent-ref %}
