この記事について
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で確認します。
閾値を変えることで、精度にどのような影響がありそうか確認しましょう。
学習モデルの更新
コマンド
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
以上です。