LoginSignup
2
2

More than 5 years have passed since last update.

[JAWS-UG CLI] Amazon MachineLearning 入門 (6) 学習モデルの更新

Last updated at Posted at 2016-10-23

この記事について

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

前提条件

必要な権限

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

  • MachineLearningのフルコントロール権限
  • S3のフルコントロール権限
  • STSの関するフルコントロール権限

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

    ML_MODEL_ID: ${ML_MODEL_ID}
    AWS_ID: ${AWS_ID}
    PREDICTION_DATA_SOURCE_ID: ${PREDICTION_DATA_SOURCE_ID}
    BUCKET_NAME: ${BUCKET_NAME}

ETX
結果

    ML_MODEL_ID: ml-model-cli-************
    AWS_ID: ************
    PREDICTION_DATA_SOURCE_ID: prediction-cli-************
    BUCKET_NAME: jawsug-cli-ml-************

1. 学習モデルの更新

1.1. 学習モデルの更新

予測精度の確認

Management Consoleで確認します。

Amazon Machine Learning Management Console (1).png

閾値を変えることで、精度にどのような影響がありそうか確認しましょう。

学習モデルの更新

コマンド
aws machinelearning update-ml-model \
    --ml-model-id ${ML_MODEL_ID} \
    --score-threshold 0.4
結果
{
    "MLModelId": "ml-model-cli-************"
}

1.2. バッチ予測の再実行

バッチ予測IDの指定

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

変数の確認

コマンド
cat << ETX

    RE_BAT_ID: ${RE_BAT_ID}
    ML_MODEL_ID: ${ML_MODEL_ID}
    PREDICTION_DATA_SOURCE_ID: ${PREDICTION_DATA_SOURCE_ID}
    BUCKET_NAME: ${BUCKET_NAME}

ETX
結果

    RE_BAT_ID: re-bat-cli-************
    ML_MODEL_ID: ml-model-cli-************
    PREDICTION_DATA_SOURCE_ID: prediction-cli-************
    BUCKET_NAME: jawsug-cli-ml-************

バッチ予測の作成

コマンド
aws machinelearning create-batch-prediction \
    --batch-prediction-id ${RE_BAT_ID} \
    --ml-model-id ${ML_MODEL_ID} \
    --batch-prediction-data-source-id ${PREDICTION_DATA_SOURCE_ID} \
    --output-uri s3://${BUCKET_NAME}/
結果
{
    "BatchPredictionId": "re-bat-cli-************"
}

バッチ予測の確認

コマンド
aws machinelearning get-batch-prediction \
    --batch-prediction-id ${RE_BAT_ID}
結果
(省略)

URLの確認

コマンド
OUTPUT_URL=$(aws machinelearning get-batch-prediction \
    --batch-prediction-id ${RE_BAT_ID} \
    --query "OutputUri" \
    --output text) \
    && echo ${OUTPUT_URL}
結果
s3://jawsug-cli-ml-************/

結果ファイルの確認

コマンド
aws s3 ls ${OUTPUT_URL}batch-prediction/result/
結果
2016-09-23 06:58:28      20195 bat-cli-************-banking-batch.csv.gz
2016-10-15 11:05:12      20262 re-bat-cli-************-banking-batch.csv.gz

ファイルのダウンロード

コマンド
aws s3 cp ${OUTPUT_URL}batch-prediction/result/${RE_BAT_ID}-banking-batch.csv.gz ~/${RE_BAT_ID}-banking-batch.csv.gz
結果
download: s3://jawsug-cli-ml-************/batch-prediction/result/re-bat-cli-************-banking-batch.csv.gz to ./re-bat-cli-************-banking-batch.csv.gz

ファイルの展開

コマンド
gzip -d ~/${RE_BAT_ID}-banking-batch.csv.gz
結果
(返値無し)

結果の比較

閾値変更前の結果

コマンド
cat ${BAT_ID}-banking-batch.csv | grep 1, | wc -l
結果
251
コマンド
cat ${BAT_ID}-banking-batch.csv | grep 0, | wc -l
結果
3868

閾値変更後の結果

コマンド
cat ${RE_BAT_ID}-banking-batch.csv | grep 1, | wc -l
結果
374
コマンド
cat ${RE_BAT_ID}-banking-batch.csv | grep 0, | wc -l
結果
3745

以上です。

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