

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

# 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 を使用して処理ジョブを実行し、指定した 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)」を参照してください。

次のコード例は、SageMaker AI によって提供および保守されている scikit-learn Docker イメージを使用して処理ジョブを実行する方法を示しています。

```
from sagemaker.core.resources import ProcessingJob

processing_job = ProcessingJob.create(
    processing_job_name="sklearn-processing",
    role_arn=role,
    app_specification={
        "image_uri": "sklearn-processing-image-uri",
        "container_entrypoint": ["python3", "/opt/ml/processing/input/code/preprocessing.py"]
    },
    processing_resources={
        "cluster_config": {
            "instance_count": 1,
            "instance_type": "ml.m5.xlarge",
            "volume_size_in_gb": 30
        }
    },
    processing_inputs=[
        {
            "input_name": "code",
            "s3_input": {
                "s3_uri": "s3://path/to/preprocessing.py",
                "local_path": "/opt/ml/processing/input/code",
                "s3_data_type": "S3Prefix",
                "s3_input_mode": "File"
            }
        },
        {
            "input_name": "input-data",
            "s3_input": {
                "s3_uri": "s3://path/to/my/input-data.csv",
                "local_path": "/opt/ml/processing/input",
                "s3_data_type": "S3Prefix",
                "s3_input_mode": "File"
            }
        }
    ],
    processing_output_config={
        "outputs": [
            {"output_name": "train", "s3_output": {"s3_uri": "s3://output/train", "local_path": "/opt/ml/processing/output/train", "s3_upload_mode": "EndOfJob"}},
            {"output_name": "validation", "s3_output": {"s3_uri": "s3://output/validation", "local_path": "/opt/ml/processing/output/validation", "s3_upload_mode": "EndOfJob"}},
            {"output_name": "test", "s3_output": {"s3_uri": "s3://output/test", "local_path": "/opt/ml/processing/output/test", "s3_upload_mode": "EndOfJob"}}
        ]
    }
)
```

Amazon SageMaker Processing で scikit-learn を使ってデータを並列処理するには、`ProcessingInput` 内部で `s3_data_distribution_type='ShardedByS3Key'` を設定し、S3 キーを使って入力オブジェクトをシャードします。これにより、各インスタンスがほぼ同じ数の入力オブジェクトを受け取ることになります。