LoginSignup
2
2

More than 5 years have passed since last update.

[JAWS-UG CLI] Amazon MachineLearning 入門 (3) モデルの評価

Last updated at Posted at 2016-10-23

この記事について

JAWS-UG CLI専門支部 #67 MachineLearning入門で実施するハンズオン用の手順書です。

前提条件

必要な権限

作業にあたっては、以下の権限を有したIAMユーザもしくはIAMロールを利用してください。

  • MachineLearningのフルコントロール権限

0. 準備

0.1. リージョンを指定

コマンド
export AWS_DEFAULT_REGION="eu-west-1"

0.2. 資格情報を確認

コマンド
aws configure list

インスタンスプロファイルを設定したEC2インスタンスでアクセスキーを設定せずに実行した場合、以下のようになります。

結果
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************GMWA         iam-role
secret_key     ****************obFC         iam-role
    region                eu-west-1              env    AWS_DEFAULT_REGION

0.3. バージョン確認

コマンド
aws --version
結果
aws-cli/1.10.66 Python/2.7.12 Linux/4.4.19-29.55.amzn1.x86_64 botocore/1.4.56

0.4. バージョンアップ(必要に応じて)

コマンド
sudo pip install -U awscli

0.5. 変数の確認

コマンド
cat << ETX

    AWS_ID: ${AWS_ID}
    ML_MODEL_ID: ${ML_MODEL_ID}
    TRAINING_DATA_SOURCE_ID: ${TRAINING_DATA_SOURCE_ID}

ETX
結果

    AWS_ID: ************
    ML_MODEL_ID: ml-model-cli-************
    TRAINING_DATA_SOURCE_ID: training-cli-************

1. 学習モデルの評価

1.1. 評価の実行

評価IDの指定

コマンド
EVAL_ID="eval-cli-${AWS_ID}-$(date +%Y%m%d%H)"

変数の確認

最初に作成したデータソースの3割を評価用データとして使用します。

コマンド
cat << ETX

    EVAL_ID: ${EVAL_ID}
    ML_MODEL_ID: ${ML_MODEL_ID}
    TRAINING_DATA_SOURCE_ID: ${TRAINING_DATA_SOURCE_ID}

ETX
結果

    EVAL_ID: eval-cli-************
    ML_MODEL_ID: ml-model-cli-************
    TRAINING_DATA_SOURCE_ID: training-cli-************

評価の作成

コマンド
aws machinelearning create-evaluation \
    --evaluation-id ${EVAL_ID} \
    --ml-model-id ${ML_MODEL_ID} \
    --evaluation-data-source-id ${TRAINING_DATA_SOURCE_ID}
結果
{
    "EvaluationId": "eval-cli-************"
}

評価の確認(1)

コマンド
aws machinelearning get-evaluation \
    --evaluation-id ${EVAL_ID}

完了前には以下のような結果になります。

結果
{
    "EvaluationDataSourceId": "training-cli-************",
    "Status": "INPROGRESS",
    "Name": "eval-cli-************",
    "InputDataLocationS3": "s3://jawsug-cli-ml-************/banking.csv",
    "EvaluationId": "eval-cli-************",
    "CreatedByIamUser": "arn:aws:iam::************:user/user01",
    "MLModelId": "ml-model-cli-************",
    "LastUpdatedAt": 1474611149.443,
    "StartedAt": 1474611106.459,
    "Message": "Current Step: EVALUATION (1/2) 0%",
    "PerformanceMetrics": {
        "Properties": {}
    },
    "CreatedAt": 1474611104.298
}

完了後には以下のような結果になります。

結果
{
    "EvaluationDataSourceId": "training-cli-************",
    "Status": "COMPLETED",
    "ComputeTime": 108000,
    "Name": "eval-cli-************",
    "InputDataLocationS3": "s3://jawsug-cli-ml-************/banking.csv",
    "EvaluationId": "eval-cli-************",
    "CreatedByIamUser": "arn:aws:iam::************:user/user01",
    "MLModelId": "ml-model-cli-************",
    "LastUpdatedAt": 1474611287.208,
    "StartedAt": 1474611106.459,
    "LogUri": "https://eml-prod-dub-emr.s3.amazonaws.com/************-ev-eval-cli/userlog/************-ev-eval-cli?AWSAccessKeyId=********************&Expires=1475216221&Signature=********************************",
    "PerformanceMetrics": {
        "Properties": {
            "BinaryAUC": "0.9395127463458541"
        }
    },
    "CreatedAt": 1474611104.298,
    "FinishedAt": 1474611287.208
}

評価の確認(2)

BinaryAUCが、評価指標です。
0から1で表現され、1に近いほど精度の高い予測が可能とされます。

Management Consoleでも確認が可能です。

評価指標については、Developers.IOを見ればいいと思うよ。

Amazon Machine Learningの評価指標まとめ

コマンド
aws machinelearning describe-evaluations
結果
{
    "Results": [
        {
            "EvaluationDataSourceId": "training-cli-************",
            "Status": "COMPLETED",
            "ComputeTime": 108000,
            "Name": "eval-cli-************",
            "InputDataLocationS3": "s3://jawsug-cli-ml-************/banking.csv",
            "EvaluationId": "eval-cli-************",
            "CreatedByIamUser": "arn:aws:iam::************:user/user01",
            "MLModelId": "ml-model-cli-************",
            "LastUpdatedAt": 1474611287.208,
            "StartedAt": 1474611106.459,
            "PerformanceMetrics": {
                "Properties": {
                    "BinaryAUC": "0.9395127463458541"
                }
            },
            "CreatedAt": 1474611104.298,
            "FinishedAt": 1474611287.208
        }
    ]
}

評価の確認(3)

Management Consoleで確認します。

Amazon Machine Learning Management Console.png

ログの確認

コマンド
EVAL_LOG_URI=$(aws machinelearning get-evaluation \
    --evaluation-id ${EVAL_ID} \
    --query LogUri \
    --output text) \
    && curl ${EVAL_LOG_URI}
結果
(省略)

以上です。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2