この記事について
JAWS-UG CLI専門支部 #67 MachineLearning入門で実施するハンズオン用の手順書です。
前提条件
必要な権限
作業にあたっては、以下の権限を有したIAMユーザもしくはIAMロールを利用してください。
- MachineLearningのフルコントロール権限
- S3のフルコントロール権限
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
BUCKET_NAME: ${BUCKET_NAME}
AWS_ID: ${AWS_ID}
ML_MODEL_ID: ${ML_MODEL_ID}
ETX
結果
BUCKET_NAME: jawsug-cli-ml-************
AWS_ID: ************
ML_MODEL_ID: ml-model-cli-************
1. バッチ予測
1.1. バッチ予測の作成
バッチ予測IDの指定
コマンド
BAT_ID="bat-cli-${AWS_ID}-$(date +%Y%m%d%H)"
変数の確認
コマンド
cat << ETX
BAT_ID: ${BAT_ID}
ML_MODEL_ID: ${ML_MODEL_ID}
PREDICTION_DATA_SOURCE_ID: ${PREDICTION_DATA_SOURCE_ID}
BUCKET_NAME: ${BUCKET_NAME}
ETX
結果
BAT_ID: 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 ${BAT_ID} \
--ml-model-id ${ML_MODEL_ID} \
--batch-prediction-data-source-id ${PREDICTION_DATA_SOURCE_ID} \
--output-uri s3://${BUCKET_NAME}/
結果
{
"BatchPredictionId": "bat-cli-************"
}
1.2. バッチ予測の確認
バッチ予測の確認(1)
コマンド
aws machinelearning get-batch-prediction \
--batch-prediction-id ${BAT_ID}
結果
{
"Status": "COMPLETED",
"ComputeTime": 42000,
"Name": "bat-cli-************",
"InputDataLocationS3": "s3://jawsug-cli-ml-************/banking-batch.csv",
"InvalidRecordCount": 0,
"CreatedByIamUser": "arn:aws:iam::************:user/user01",
"MLModelId": "ml-model-cli-************",
"TotalRecordCount": 4119,
"LastUpdatedAt": 1474613923.804,
"BatchPredictionDataSourceId": "prediction-cli-************",
"OutputUri": "s3://jawsug-cli-ml-************/",
"StartedAt": 1474613832.984,
"BatchPredictionId": "bat-cli-************",
"LogUri": "https://eml-prod-dub-emr.s3.amazonaws.com/************-bp-bat-cli/userlog/************-bp-bat-cli?AWSAccessKeyId=********************&Expires=1475218749&Signature=********************************",
"CreatedAt": 1474613830.048,
"FinishedAt": 1474613923.804
}
バッチ予測の確認(2)
コマンド
aws machinelearning describe-batch-predictions
結果
{
"Results": [
{
"Status": "COMPLETED",
"ComputeTime": 42000,
"Name": "bat-cli-************",
"InputDataLocationS3": "s3://jawsug-cli-ml-************/banking-batch.csv",
"InvalidRecordCount": 0,
"CreatedByIamUser": "arn:aws:iam::************:user/user01",
"MLModelId": "ml-model-cli-************",
"TotalRecordCount": 4119,
"LastUpdatedAt": 1474613923.804,
"BatchPredictionDataSourceId": "prediction-cli-************",
"OutputUri": "s3://jawsug-cli-ml-************/",
"StartedAt": 1474613832.984,
"BatchPredictionId": "bat-cli-************",
"CreatedAt": 1474613830.048,
"FinishedAt": 1474613923.804
}
]
}
ログの確認
コマンド
BAT_LOG_URI=$(aws machinelearning get-batch-prediction \
--batch-prediction-id ${BAT_ID} \
--query LogUri \
--output text) \
&& curl ${BAT_LOG_URI}
1.3. バッチ予測結果の確認
URLの確認
コマンド
OUTPUT_URL=$(aws machinelearning get-batch-prediction \
--batch-prediction-id ${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
ファイルのダウンロード
コマンド
aws s3 cp ${OUTPUT_URL}batch-prediction/result/${BAT_ID}-banking-batch.csv.gz ~/${BAT_ID}-banking-batch.csv.gz
結果
download: s3://jawsug-cli-ml-************/batch-prediction/result/bat-cli-************-banking-batch.csv.gz to ./bat-cli-************-banking-batch.csv.gz
ファイルの展開
コマンド
gzip -d ~/${BAT_ID}-banking-batch.csv.gz
結果
(返値無し)
ファイルの確認
コマンド
head -n 100 ${BAT_ID}-banking-batch.csv
結果
bestAnswer,score
0,8.590992E-2
0,1.335159E-2
0,1.950702E-2
0,1.63126E-3
0,2.532505E-3
0,9.161337E-2
0,4.183979E-1
0,1.800268E-3
0,2.563585E-3
0,3.935924E-3
0,4.716424E-2
0,1.501254E-2
0,2.398386E-3
0,8.43198E-3
0,4.303181E-1
0,2.86207E-1
0,2.357897E-2
0,1.268291E-3
0,1.642615E-3
0,3.097656E-1
0,2.948386E-2
1,7.252365E-1
1,5.434449E-1
0,1.312167E-2
0,1.915593E-2
0,1.009565E-1
0,4.014505E-2
0,2.910636E-3
0,3.118411E-3
0,6.947834E-3
0,1.809382E-1
0,4.026444E-2
0,2.908092E-1
0,1.897957E-2
0,2.379741E-3
0,7.800709E-2
0,1.223549E-3
0,7.934856E-2
0,4.733014E-3
0,1.153531E-1
0,2.497169E-3
0,4.523935E-2
0,1.775234E-1
0,1.56301E-2
0,4.539988E-2
0,8.185244E-2
0,9.733788E-3
0,5.293093E-3
0,2.525336E-2
0,1.301621E-2
0,4.115836E-1
0,3.770942E-2
0,2.402706E-2
0,3.158798E-1
0,1.751984E-2
0,1.735797E-3
0,2.206039E-3
0,8.102211E-3
0,8.296724E-3
1,6.299675E-1
0,2.314626E-1
0,1.80875E-2
1,8.896276E-1
0,6.093348E-2
0,5.301622E-3
0,8.836432E-2
0,6.371402E-2
0,2.497029E-2
1,6.450742E-1
0,7.008393E-2
0,4.396785E-2
0,1.793529E-1
0,6.828636E-3
0,8.618571E-3
1,5.415242E-1
0,7.498209E-3
0,4.472229E-2
0,3.440514E-2
0,2.017661E-3
0,4.173267E-2
1,6.667838E-1
0,1.113257E-2
0,3.411497E-3
1,7.40254E-1
0,3.20409E-2
0,6.831488E-3
0,6.114282E-3
0,1.881771E-1
0,8.277351E-2
0,1.525499E-3
0,2.966657E-2
0,9.674413E-3
0,2.176874E-2
0,1.185455E-2
0,5.816767E-3
0,2.041374E-2
0,1.054261E-2
0,8.247854E-3
0,6.490427E-2
以上です。