如何判断是否将采购订单发送给技术审批人
立即解锁
发布时间: 2025-09-01 00:05:28 阅读量: 2 订阅数: 6 AIGC 

### 如何判断是否将采购订单发送给技术审批人
在实际业务场景中,我们常常需要判断是否将采购订单发送给技术审批人。下面将详细介绍如何利用机器学习来解决这个问题。
#### 1. 特征选择与目标设定
在处理这个问题时,我们选择的数据集字段要能够重现决策过程。虽然有很多字段可供选择,也有一些复杂的工具能辅助特征选择,但在这个场景中,我们凭借对问题的直觉来挑选特征。这种方法往往能快速带来出色的结果。
我们的最终目标是向机器学习模型提交订单,模型能返回是否将订单发送给技术审批人的建议。我们确定了用于决策的特征,即产品类型和请求者是否来自 IT 部门,并创建了带标签的历史数据集,如下表所示:
| tech_approval_required | requester_id | role | product | quantity | price | total |
| --- | --- | --- | --- | --- | --- | --- |
| 0 | E2300 | tech | Desk | 1 | 664 | 664 |
| 0 | E2300 | tech | Keyboard | 9 | 649 | 5841 |
| 0 | E2374 | non - tech | Keyboard | 1 | 821 | 821 |
| 1 | E2374 | non - tech | Desktop Computer | 24 | 655 | 15720 |
| 0 | E2327 | non - tech | Desk | 1 | 758 | 758 |
| 0 | E2354 | non - tech | Desk | 1 | 576 | 576 |
| 1 | E2348 | non - tech | Desktop Computer | 21 | 1006 | 21126 |
| 0 | E2304 | tech | Chair | 3 | 155 | 465 |
| 0 | E2363 | non - tech | Keyboard | 1 | 1028 | 1028 |
| 0 | E2343 | non - tech | Desk | 3 | 487 | 1461 |
#### 2. 模型训练基础
有了带标签的数据集,我们就可以训练机器学习模型来做决策。简单来说,机器学习模型是一个数学函数,猜对会得到奖励,猜错会受到惩罚。为了提高猜对的几率,函数会将每个特征中的某些值与猜对或猜错关联起来。随着处理的样本越来越多,模型的猜测能力会不断提升。当处理完所有样本,就认为模型训练完成了。
#### 3. 选择机器学习算法
机器学习模型基于数学函数,也就是机器学习算法。每个算法都有一些参数可以设置以优化模型性能。在这个过程中,我们先采用算法的默认设置,后续再探讨如何微调算法以获得更好的结果。
对于机器学习初学者来说,选择合适的算法是个难题。在这个监督式机器学习练习中,我们选用 XGBoost 算法,原因如下:
- 它具有较强的适应性,无需大量调整就能在各种问题上表现良好。
- 不需要大量数据就能给出不错的结果。
- 很容易解释在特定场景下它为何做出某个预测。
- 是一个高性能算法,在处理小数据集的机器学习竞赛中,很多参与者都会优先选择它。
如果想了解更多关于 XGBoost 的信息,可以访问:https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html 。
#### 4. 运行 Jupyter 笔记本并进行预测
我们将通过 Jupyter 笔记本逐步操作,预测是否将订单发送给技术审批人。具体分为以下六个部分:
1. 加载并检查数据。
2. 调整数据格式。
3. 创建训练、验证和测试数据集。
4. 训练机器学习模型。
5. 部署机器学习模型。
6. 测试模型并用于决策。
要进行后续操作,需要完成以下两件事:
- 将数据集 orders_with_predicted_value.csv 加载到 S3。
- 将 Jupyter 笔记本 tech_approval_required.ipynb 上传到 SageMaker。
具体步骤如下:
1. 从 https://s3.amazonaws.com/mlforbusiness/ch02/orders_with_predicted_value.csv 下载数据集。
2. 将数据集上传到为该项目设置的 S3 存储桶。
3. 从 https://s3.amazonaws.com/mlforbusiness/ch02/tech_approval_required.ipynb 下载 Jupyter 笔记本。
4. 将 Jupyter 笔记本上传到 SageMaker 笔记本实例。
#### 5. 加载并检查数据
在 Jupyter 笔记本中,我们首先要加载并检查数据。整个笔记本中,我们只需修改两个值,即 data_bucket 和 subfolder,这两个值应根据附录 B 的说明设置。
以下是设置 S3 存储桶和子文件夹的代码:
```python
data_bucket = 'mlforbusiness'
subfolder = 'ch02'
dataset = 'orders_with_predicted_value.csv'
```
在 Jupyter 笔记本中运行代码有两种方式:运行单个单元格或多个单元格。运行单个单元格时,点击单元格并按 C + R,此时单元格左侧会出现星号 (*),表示代码正在运行。当星号被数字取代,说明代码运行完成,该数字表示自打开笔记本以来运行的单元格数量。
如果想运行整个笔记本,点击 Jupyter 笔记本顶部工具栏的 Cell,然后点击 Run All。
接下来,我们要设置笔记本所需的 Python 库:
```python
import pandas as pd
import boto3
import sagemaker
import s3fs
from sklearn.model_selection import train_test_split
role = sagemaker.get_execution_role()
s3 = s3fs.S3FileSystem(anon=False)
``
```
0
0
复制全文
相关推荐









