

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 scikit-learn 运行处理作业
<a name="use-scikit-learn-processing-container"></a>

你可以使用 Amazon Processing 在 Amazon AI 提供的 Docker 镜像中使用 scikit-learn 脚本 SageMaker 处理数据和评估模型。 SageMaker 以下提供了如何使用 scikit-learn 运行亚马逊 SageMaker 处理任务的示例。

[有关演示如何使用 SageMaker AI 提供和维护的 Docker 镜像运行 scikit-learn 脚本来预处理数据和评估模型的示例笔记本，请参阅 scikit-learn 处理。](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker_processing/scikit_learn_data_processing_and_model_evaluation)要使用此笔记本，你需要安装用于处理的 SageMaker AI Python SDK。

此笔记本使用 SageMaker Python SDK 中的`SKLearnProcessor`类运行处理作业，以运行你提供的 scikit-learn 脚本。该脚本预处理数据，使用 SageMaker 训练作业训练模型，然后运行处理作业来评估训练后的模型。处理作业将估计模型在生产中的预期效果。

要详细了解如何将 SageMaker Python 开发工具包与处理容器配合使用，请参阅 [SageMaker Python 软件开发工具包](https://sagemaker.readthedocs.io/en/stable/)。有关可用于处理作业的预构建 Docker 映像的完整列表，请参阅 [Docker 注册表路径和示例代码](https://docs.aws.amazon.com/sagemaker/latest/dg-ecr-paths/sagemaker-algo-docker-registry-paths)。

以下代码示例显示了笔记本`SKLearnProcessor`如何使用 SageMaker 人工智能提供和维护的 Docker 镜像，而不是你自己的 Docker 镜像来运行你自己的 scikit-learn 脚本。

```
from sagemaker.sklearn.processing import SKLearnProcessor
from sagemaker.processing import ProcessingInput, ProcessingOutput

sklearn_processor = SKLearnProcessor(framework_version='0.20.0',
                                     role=role,
                                     instance_type='ml.m5.xlarge',
                                     instance_count=1)

sklearn_processor.run(code='preprocessing.py',
                      inputs=[ProcessingInput(
                        source='s3://path/to/my/input-data.csv',
                        destination='/opt/ml/processing/input')],
                      outputs=[ProcessingOutput(source='/opt/ml/processing/output/train'),
                               ProcessingOutput(source='/opt/ml/processing/output/validation'),
                               ProcessingOutput(source='/opt/ml/processing/output/test')]
                     )
```

要在 Amazon Processing Scikit-Learn 上并行 SageMaker 处理数据，您可以通过 S3 密钥对输入对象进行分片，方法是在`s3_data_distribution_type='ShardedByS3Key'`内部进行设置，`ProcessingInput`以便每个实例接收的输入对象数量大致相同。