2019年09月11日
独自データセットでAmazon Forecastの実行方法
Tweet |
Amazon Forecast 開発者ガイド
この通りですが、やはり上手く行かない事が幾つもありました。
まずデータのインポートで
Data schemaが、
Timestamp format ですが、基本的にyyyy-MM-dd HH:mm:ssの形式以外、受け付けないと思って良いです。
Timestamp formatを変えたり、ファイルの方に1文字でも形式に合ってない所があれば、
データセットやpredictor 予測子ですが、管理画面の方から見て無いように思った時があったんですが、
リージョンが違うと別になりますので、リージョンに気を付けておくべきです。
次にTrain predictorですが、この時点から気を付ける必要がある点があります。
ForecastFrequency が、Hになってると思いますが、 これだと1時間幅での学習、予測しかしませんので、使いたい時間幅に変更しなければいけません。
幅を伸ばした場合、その区間の合計値が系列値になるみたいです?
Forecast horizon は、予測する未来の時間幅です。ここで設定した分しか予測しません。
Predictor detailsで、Country for holidays - optional なんかもあるんですね。
...ここまで実行出来たなら、トレーニングでエラーが生じる事は無いと思います。
学習と予測の作成は、ただ待つだけです。
..................
この通りですが、やはり上手く行かない事が幾つもありました。
まずデータのインポートで
Data schemaが、
"Attributes": [こうなっていますが、データファイルでのカラムの順番も、この順番になって無ければいけません。
{
"AttributeName": "item_id",
"AttributeType": "string"
},
{
"AttributeName": "timestamp",
"AttributeType": "timestamp"
},
{
"AttributeName": "target_value",
"AttributeType": "float"
}
]
Timestamp format ですが、基本的にyyyy-MM-dd HH:mm:ssの形式以外、受け付けないと思って良いです。
Timestamp formatを変えたり、ファイルの方に1文字でも形式に合ってない所があれば、
We were unable to upload your data.
Invalid timestamp format specified: yyyy-MM-dd HH:mm. Options: [yyyy-MM-dd, yyyy-MM-dd HH:mm:ss]
We were unable to upload your data.等の様なエラーが返ります。
1 validation error detected: Value 'yyyy/MM/dd HH:mm' at 'timestampFormat' failed to satisfy constraint:
Member must satisfy regular expression pattern: ^[a-zA-Z0-9\-\:\.\,\'\s]+$
データセットやpredictor 予測子ですが、管理画面の方から見て無いように思った時があったんですが、
リージョンが違うと別になりますので、リージョンに気を付けておくべきです。
次にTrain predictorですが、この時点から気を付ける必要がある点があります。
ForecastFrequency が、Hになってると思いますが、 これだと1時間幅での学習、予測しかしませんので、使いたい時間幅に変更しなければいけません。
Valid intervals are Y (Year), M (Month), W (Week), D (Day), H (Hour), 30min (30 minutes), 15min (15 minutes), 10min (10 minutes), 5min (5 minutes), and 1min (1 minute). For example, "Y" indicates every year and "5min" indicates every five minutes.データが1分毎の場合、1分より長い幅に設定する事は出来ますが、逆は出来ません。
幅を伸ばした場合、その区間の合計値が系列値になるみたいです?
Forecast horizon は、予測する未来の時間幅です。ここで設定した分しか予測しません。
Predictor detailsで、Country for holidays - optional なんかもあるんですね。
...ここまで実行出来たなら、トレーニングでエラーが生じる事は無いと思います。
学習と予測の作成は、ただ待つだけです。
..................
ドル円1分足 2015/08/17 04:08 〜 2015/10/19 09:09 のデータが有ったので、それで試しました。
それの予測値ですが
このようにForecast horizonの分しか予測しません。
予測を作る時点で、指定できる時間が決まってしまっているのです。
任意のデータを入力として予測を行いたいのですが、それはどうするのでしょうか?
学習の時点で、TARGET_TIME_SERIESに加えてRELATED_TIME_SERIES を指定しても、学習に役立っているのかどうか全然分からないですが...
このPredictorを外部プログラムからAPIで呼び出す方法はどうやるのでしょうか?
ipynbのコードは、呼び出している事になっていると思いますが
ipynb の方で実行する時、のエラー解消ですが
これは、多分、こうします。
それの予測値ですが
このようにForecast horizonの分しか予測しません。
予測を作る時点で、指定できる時間が決まってしまっているのです。
任意のデータを入力として予測を行いたいのですが、それはどうするのでしょうか?
学習の時点で、TARGET_TIME_SERIESに加えてRELATED_TIME_SERIES を指定しても、学習に役立っているのかどうか全然分からないですが...
このPredictorを外部プログラムからAPIで呼び出す方法はどうやるのでしょうか?
ipynbのコードは、呼び出している事になっていると思いますが
ipynb の方で実行する時、のエラー解消ですが
UnknownServiceError: Unknown service: 'forecast'. Valid service names are: acm, acm-pca, alexaforbusiness, amplify, apigateway, apigatewaymanagementapi, apigatewayv2, application-autoscaling, application-insights, appmesh, appstream, appsync, athena, autoscaling, autoscaling-plans, backup, batch, budgets, ce, chime, cloud9, clouddirectory, cloudformation, cloudfront, cloudhsm, cloudhsmv2, cloudsearch, cloudsearchdomain, cloudtrail, cloudwatch, codebuild, codecommit, codedeploy, codepipeline, codestar, cognito-identity, cognito-idp, cognito-sync, comprehend, comprehendmedical, config, connect, cur, datapipeline, datasync, dax, devicefarm, directconnect, discovery, dlm, dms, docdb, ds, dynamodb, dynamodbstreams, ec2, ec2-instance-connect, ecr, ecs, efs, eks, elasticache, elasticbeanstalk, elastictranscoder, elb, elbv2, emr, es, events, firehose, fms, fsx, gamelift, glacier, globalaccelerator, glue, greengrass, groundstation, guardduty, health, iam, importexport, inspector, iot, iot-data, iot-jobs-data, iot1click-devices, iot1click-projects, iotanalytics, iotevents, iotevents-data, iotthingsgraph, kafka, kinesis, kinesis-video-archived-media, kinesis-video-media, kinesisanalytics, kinesisanalyticsv2, kinesisvideo, kms, lakeformation, lambda, lex-models, lex-runtime, license-manager, lightsail, logs, machinelearning, macie, managedblockchain, marketplace-entitlement, marketplacecommerceanalytics, mediaconnect, mediaconvert, medialive, mediapackage, mediapackage-vod, mediastore, mediastore-data, mediatailor, meteringmarketplace, mgh, mobile, mq, mturk, neptune, opsworks, opsworkscm, organizations, personalize, personalize-events, personalize-runtime, pi, pinpoint, pinpoint-email, pinpoint-sms-voice, polly, pricing, quicksight, ram, rds, rds-data, redshift, rekognition, resource-groups, resourcegroupstaggingapi, robomaker, route53, route53domains, route53resolver, s3, s3control, sagemaker, sagemaker-runtime, sdb, secretsmanager, securityhub, serverlessrepo, service-quotas, servicecatalog, servicediscovery, ses, shield, signer, sms, sms-voice, snowball, sns, sqs, ssm, stepfunctions, storagegateway, sts, support, swf, textract, transcribe, transfer, translate, waf, waf-regional, workdocs, worklink, workmail, workspaces, xray
これは、多分、こうします。
pip install --upgrade boto3