

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# scikit-learn で Processing ジョブを実行する
<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 トレーニングジョブを使ってモデルをトレーニングした後、処理ジョブを実行してトレーニング済みモデルを評価します。処理ジョブは、モデルが本番稼働環境でどのように実行されるかを見積もります。

Processing コンテナで SageMaker Python SDK を使う方法の詳細については、[SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable/) を参照してください。処理ジョブに使用可能な構築済みの Docker イメージの完全なリストについては、「[Docker Registry Paths and Example Code](https://docs.aws.amazon.com/sagemaker/latest/dg-ecr-paths/sagemaker-algo-docker-registry-paths)」を参照してください。

次のコード例では、ノートブックが `SKLearnProcessor` を使って、独自の Docker イメージではなく、SageMaker AI が提供、保守する 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 キーを使って入力オブジェクトをシャードします。これにより、各インスタンスがほぼ同じ数の入力オブジェクトを受け取ることになります。