

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

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

您可以使用 Amazon SageMaker Processing 处理数据，并使用 Amazon SageMaker AI 提供的 Docker 映像中的 scikit-learn 脚本评估模型。下面举例说明如何使用 scikit-learn 运行 Amazon SageMaker Processing 作业。

有关演示如何使用 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 for Processing。

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

要了解有关将 SageMaker Python SDK 与处理容器结合使用的更多信息，请参阅 [SageMaker Python SDK](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 AI 提供并维护的 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 SageMaker Processing 上使用 scikit-learn 并行处理数据，您可以通过在 `ProcessingInput` 内部设置 `s3_data_distribution_type='ShardedByS3Key'`，按 S3 键对输入对象分片，以便每个实例接收数量大致相同的输入对象。