Amazon Forecast tidak lagi tersedia untuk pelanggan baru. Pelanggan Amazon Forecast yang ada dapat terus menggunakan layanan seperti biasa. Pelajari lebih lanjut”
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memulai (AWS CLI)
Dalam latihan ini, Anda menggunakan AWS Command Line Interface (AWS CLI) untuk menjelajahi Amazon Forecast. Anda membuat kumpulan data Amazon Forecast, melatih prediktor, dan menggunakan prediktor yang dihasilkan untuk menghasilkan perkiraan. Sebelum memulai, pastikan Anda memiliki Akun AWS dan Anda telah menyiapkan AWS CLI. Untuk informasi selengkapnya, lihat Mengatur.
catatan
AWS CLI Perintah dalam latihan ini diuji di Linux. Untuk informasi tentang menggunakan AWS CLI perintah di Windows, lihat Menentukan Nilai Parameter untuk AWS Command Line Interface dalam Panduan AWS Command Line Interface Pengguna.
Mulailah dengan membuat dataset dan mengimpor data penggunaan listrik ke dalamnya.
Untuk membuat kumpulan data Amazon Forecast
-
Tentukan jenis domain dan dataset mana yang sesuai.
Data pelatihan yang akan Anda impor ke dalam kumpulan data memengaruhi pilihan domain dan jenis kumpulan data Anda. Jadi, mari kita tinjau beberapa contoh baris data penggunaan listrik.
2014-01-01 01:00:00, 2.53807106598985, client_0 2014-01-01 01:00:00, 23.648648648648624, client_1 2014-01-01 02:00:00, 9.648648648612345, client_0
Format datanya adalah CSV (nilai yang dipisahkan koma), dan dikumpulkan setiap jam (seperti yang ditunjukkan oleh stempel waktu). Ini termasuk kolom-kolom ini:
-
Kolom 1 — Stempel waktu yang menunjukkan kapan penggunaan listrik dicatat.
-
Kolom 2 - Nilai penggunaan listrik per jam (perhatikan bagaimana nilai stempel waktu meningkat per jam).
-
Kolom 3 — Nilai ID Klien yang mengidentifikasi pelanggan yang menggunakan listrik.
Untuk data ini, pilih domain dataset dan tipe dataset yang telah ditentukan berikut ini:
-
Domain kustom — Tidak ada domain dataset, seperti METRICS, RETAIL, atau WEB_TRAFFIC, berlaku untuk data ini, jadi pilih domain Kustom.
-
Jenis deret waktu target — Data adalah deret waktu karena melacak penggunaan listrik dari waktu ke waktu. Ini juga termasuk target yang ingin kita perkirakan (Kolom 2, penggunaan listrik). Oleh karena itu, pilih jenis kumpulan data deret waktu target.
Untuk memahami mengapa Anda memilih jenis ini, lihatDomain Dataset dan Jenis Dataset yang Telah Ditetapkan.
-
-
Tentukan skema dataset.
Jenis deret waktu target untuk bidang Domain KUSTOM membutuhkan ini;
timestamp
,target_value
, danitem_id
.target_value
Lapangan adalah targetnya. Amazon Forecast menghasilkan perkiraan untuk bidang ini.Untuk memetakan bidang yang diperlukan ke kolom dalam data Anda, Anda membuat skema. Setiap atribut dalam skema memetakan ke bidang dalam data.
penting
Urutan atribut dalam skema harus sesuai dengan urutan bidang dalam data pelatihan.
{ "Attributes":[ { "AttributeName": "timestamp", "AttributeType": "timestamp" }, { "AttributeName": "target_value", "AttributeType": "float" }, { "AttributeName": "item_id", "AttributeType": "string" } ] }
Anda sekarang memiliki informasi yang diperlukan untuk membuat dataset dan mengimpor data ke dalamnya.
-
Buat dataset.
aws forecast create-dataset \ --dataset-name electricity_demand_ds \ --domain CUSTOM \ --dataset-type TARGET_TIME_SERIES \ --data-frequency H \ --schema '{ "Attributes": [ { "AttributeName": "timestamp", "AttributeType": "timestamp" }, { "AttributeName": "target_value", "AttributeType": "float" }, { "AttributeName": "item_id", "AttributeType": "string" } ] }'
Dalam permintaan,
data-frequency
nilaiH
mewakili frekuensi pengumpulan data per jam. Berikut ini adalah contoh respons.{ "DatasetArn": "arn:aws:forecast:us-west-2:acct-id:dataset/electricity_demand_ds" }
Untuk informasi lebih lanjut tentang operasi ini, lihatCreateDataset.
-
(Opsional) Dapatkan deskripsi kumpulan data.
aws forecast describe-dataset \ --dataset-arn arn:aws:forecast:us-west-2:
acct-id
:dataset/electricity_demand_dsBerikut ini adalah contoh respons.
{ "DatasetName": "electricity_demand_ds", "DatasetArn": "arn:aws:forecast:us-west-2:acct-id:dataset/electricity_demand_ds", "CreationTime": 1564533087.907, "LastModificationTime": 1564533087.907, "Domain": "CUSTOM", "DatasetType": "TARGET_TIME_SERIES", "DataFrequency": "H", "Schema": { ... }, "EncryptionConfig": {}, "Status": "ACTIVE" }
catatan
Urutan pasangan kunci-nilai dalam respons adalah arbitrer.
-
Buat grup dataset dan tambahkan dataset ke dalamnya. Nilai
domain
parameter harus sesuai dengandomain
dataset.aws forecast create-dataset-group \ --dataset-group-name electricity_ds_group \ --dataset-arns arn:aws:forecast:us-west-2:
acct-id
:dataset/electricity_demand_ds \ --domain CUSTOMBerikut ini adalah contoh respons.
{ "DatasetGroupArn": "arn:aws:forecast:us-west-2:acct-id:dataset-group/electricity_ds_group" }
Untuk informasi lebih lanjut tentang operasi ini, lihatCreateDatasetGroup.
-
(Opsional) Dapatkan deskripsi grup dataset.
aws forecast describe-dataset-group \ --dataset-group-arn arn:aws:forecast:us-west-2:
acct-id
:dataset-group/electricity_ds_groupBerikut ini adalah contoh respons.
{ "DatasetGroupName": "electricity_ds_group", "DatasetGroupArn": "arn:aws:forecast:us-west-2:acct-id:dataset-group/electricity_ds_group", "DatasetArns": [ "arn:aws:forecast:us-west-2:acct-id:dataset-group/electricity_ds_group" ], "Domain": "CUSTOM", "CreationTime": 1564533719.852, "LastModificationTime": 1564533719.852, "Status": "ACTIVE" }
-
Impor data pelatihan penggunaan listrik dari bucket Amazon S3 Anda ke kumpulan data. Peran IAM yang Anda berikan harus memiliki izin untuk membaca data dari bucket S3 Anda. Untuk informasi tentang cara membuat peran IAM, lihatBuat Peran IAM untuk Amazon Forecast ()AWS CLI.
aws forecast create-dataset-import-job \ --dataset-arn arn:aws:forecast:us-west-2:
acct-id
:dataset/electricity_demand_ds \ --dataset-import-job-name electricity_ds_import_job \ --data-source '{ "S3Config": { "Path": "s3://bucket
/electricityusagedata.csv", "RoleArn": "arn:aws:iam::acct-id
:role/Role
" } }'Berikut ini adalah sintaks singkatan untuk parameter.
data-source
--data-source S3Config="{Path='s3://
bucket
/electricityusagedata.csv',RoleArn='arn:aws:iam::acct-id
:role/Role
'}"Berikut ini adalah contoh respons.
{ "DatasetImportJobArn": "arn:aws:forecast:us-west-2:acct-id:dataset-import-job/electricity_demand_ds/electricity_ds_import_job" }
Untuk informasi lebih lanjut tentang operasi ini, lihatCreateDatasetImportJob.
-
Periksa status impor.
aws forecast describe-dataset-import-job \ --dataset-import-job-arn arn:aws:forecast:us-west-2:
acct-id
:dataset-import-job/electricity_demand_ds/electricity_ds_import_jobBerikut ini adalah contoh respons.
{ "DatasetImportJobName": "electricity_ds_import_job", "DatasetImportJobArn": "arn:aws:forecast:us-west-2:acct-id:dataset-import-job/electricity_demand_ds/electricity_ds_import_job", "DatasetArn": "arn:aws:forecast:us-west-2:acct-id:dataset/electricity_demand_ds", "DataSource": { "S3Config": { "Path": "s3://bucket/electricityusagedata.csv", "RoleArn": "arn:aws:iam::acct-id:role/ForecastRole" } }, "DataSize": 0.14639010466635227, "TimeStampFormat": "yyyy-MM-dd HH:mm:ss", "CreationTime": 1564537011.114, "LastModificationTime": 1564537028.223, "Status": "CREATE_IN_PROGRESS" }
Ketika semua data telah diimpor, status berubah menjadi AKTIF dan responsnya mencakup statistik untuk data, seperti yang ditunjukkan pada contoh berikut.
{ "DatasetArn": "arn:aws:forecast:us-west-2:acct-id:dataset/electricity_demand_ds", "Status": "ACTIVE", "FieldStatistics": { "date": { "Min": "2014-01-01T01:00:00Z", "Max": "2015-01-01T00:00:00Z", "Count": 3241200, "CountDistinct": 8760, "CountNull": 0 }, "target": { "Min": "0.0", "Max": "168200.0", "Avg": 606.5167610461679, "Stddev": 3518.405223972031, "Count": 3241200, "CountDistinct": 1196961, "CountNull": 0, "CountNan": 0 }, "item": { "Count": 3241200, "CountDistinct": 370, "CountNull": 0 } }, ... }
penting
Anda harus menunggu hingga statusnya AKTIF sebelum membuat prediktor dengan grup kumpulan data.
Untuk informasi lebih lanjut tentang operasi ini, lihatDescribeDatasetImportJob.
Untuk membuat prediktor, Anda menggunakan CreateAutoPredictor operasi dan memberikan informasi berikut.
-
Nama prediktor — Beri nama prediktor sehingga Anda dapat membedakannya dari prediktor Anda yang lain
-
Grup Dataset - Anda membuat grup dataset pada langkah sebelumnya.
-
Frekuensi Forecast — Perincian perkiraan Anda (per jam, harian, mingguan, dll).
-
Forecast horizon — Jumlah langkah waktu yang diperkirakan.
Setelah prediktor dibuat, Anda meninjau metrik akurasi yang dihasilkan oleh Amazon Forecast. Metrik membantu Anda memutuskan apakah akan menggunakan prediktor untuk menghasilkan perkiraan. Untuk informasi lebih lanjut tentang prediktor, lihatPrediktor Pelatihan.
Untuk membuat prediktor dan meninjau metrik akurasi
-
Buat prediktor.
aws forecast create-predictor \ --predictor-name electricitypredictor \ --input-data-config DatasetGroupArn="arn:aws:forecast:us-west-2:
acct-id
:dsgroup/electricity_ds_group" \ --forecast-horizon 36 \ --forecast-frequency DBerikut ini adalah contoh respons.
{ "PredictorArn": "arn:aws:forecast:us-west-2:acct-id:predictor/electricitypredictor" }
-
Dapatkan status prediktor.
aws forecast describe-predictor \ --predictor-arn arn:aws:forecast:us-west-2:
acct-id
:predictor/electricitypredictorBerikut ini adalah contoh respons.
{ "PredictorArn": "arn:aws:forecast:<region>:<acct-num>:predictor/electricitypredictor", "PredictorName": "electricitypredictor", "ForecastHorizon": 36, "ForecastTypes": [ "0.1", "0.5", "0.9" ], "ForecastFrequency": "D", "DatasetImportJobArns": [ "arn:aws:forecast:<region>:<acct-num>:dataset-import-job/getting_started_dataset/gs_import" ], "DataConfig": { "DatasetGroupArn": "arn:aws:forecast:<region>:<acct-num>:dataset-group/getting_started", "AttributeConfigs": [ { "AttributeName": "target_value", "Transformations": { "aggregation": "sum", "backfill": "zero", "frontfill": "none", "middlefill": "zero" } } ] }, "EstimatedTimeRemainingInMinutes": 97, "Status": "CREATE_IN_PROGRESS", "CreationTime": "2022-02-23T09:26:24.643000-08:00", "LastModificationTime": "2022-02-23T09:49:26.899000-08:00", "ExplainabilityInfo": { "Status": "NOT_AVAILABLE" } }
penting
Pelatihan model membutuhkan waktu. Jangan melanjutkan sampai pelatihan selesai dan status prediktor AKTIF.
-
Dapatkan metrik akurasi untuk prediktor.
aws forecast get-accuracy-metrics \ --predictor-arn arn:aws:forecast:us-west-2:
acct-id
:predictor/electricitypredictorBerikut ini adalah contoh respons.
{ "PredictorEvaluationResults": [ { "TestWindows": [ { "EvaluationType": "SUMMARY", "Metrics": { "RMSE": 448.19602551622864, "WeightedQuantileLosses": [ { "Quantile": 0.9, "LossValue": 0.11574311406253326 }, { "Quantile": 0.5, "LossValue": 0.1706269067283527 }, { "Quantile": 0.1, "LossValue": 0.11724164222477837 } ] } }, { "EvaluationType": "COMPUTED", "Metrics": { "RMSE": 448.19602551622864, "WeightedQuantileLosses": [ { "Quantile": 0.9, "LossValue": 0.11574311406253326 }, { "Quantile": 0.5, "LossValue": 0.1706269067283527 }, { "Quantile": 0.1, "LossValue": 0.11724164222477837 } ] }, "TestWindowEnd": 1420070400.0, "TestWindowStart": 1420002000.0 } ] } ] }
Metrik menunjukkan kehilangan kesalahan untuk setiap kuantil. Misalnya, ada kesalahan 11,7% untuk kuantil pertama. Metrik juga menunjukkan root-mean-square error (
RMSE
).Metrik ringkasan menunjukkan rata-rata metrik yang dihitung di semua jendela pengujian. Karena hanya ada satu jendela pengujian, ringkasan dan metrik yang dihitung sama.
Untuk informasi lebih lanjut tentang operasi ini, lihatGetAccuracyMetrics.
Amazon Forecast membuat perkiraan untuk target_value
bidang (sebagaimana ditentukan oleh domain dan jenis kumpulan data) untuk setiap unik item_id
dalam kumpulan data. Dalam latihan ini, target_value
lapangan menyediakan penggunaan listrik dan item_id
menyediakan klien IDs. Anda mendapatkan perkiraan untuk penggunaan listrik per jam oleh pelanggan.
Setelah perkiraan dibuat, Anda dapat meminta satu item atau mengekspor perkiraan lengkap.
Untuk membuat, mengambil, dan mengekspor perkiraan
-
Buat ramalan.
aws forecast create-forecast \ --forecast-name electricityforecast \ --predictor-arn arn:aws:forecast:us-west-2:
acct-id
:predictor/electricitypredictorOperasi menggunakan prediktor untuk membuat perkiraan. Sebagai tanggapan, Anda mendapatkan Nama Sumber Daya Amazon (ARN) dari perkiraan. Anda menggunakan ARN ini untuk mengambil dan mengekspor perkiraan. Berikut ini adalah contoh respons.
{ "ForecastArn": "arn:aws:forecast:us-west-2:acct-id:forecast/electricityforecast" }
Untuk informasi lebih lanjut tentang operasi ini, lihatCreateForecast.
-
Ambil dua jam pertama dari perkiraan untuk
client_1
.catatan
Nama layanan,
forecastquery
, berbeda dengan nama layanan yang digunakan di tempat lain.aws forecastquery query-forecast \ --forecast-arn arn:aws:forecast:us-west-2:
acct-id
:forecast/electricityforecast \ --start-date 2015-01-01T00:00:00 \ --end-date 2015-01-01T02:00:00 \ --filters '{"item_id":"client_1"}'Operasi mencakup parameter berikut.
-
start-date
danend-date
- Menentukan rentang tanggal opsional untuk mengambil perkiraan untuk. Jika Anda tidak menentukan parameter ini, operasi mengembalikan seluruh perkiraan untukclient_1
. -
filters
— Menentukanitem_id
filter untuk mengambil perkiraan listrik untuk.client_1
Berikut ini adalah sintaks singkatan untuk parameter.
filters
--filters item_id="client_1"
Berikut ini adalah contoh respons.
{ "Forecast": { "Predictions": { "mean": [ { "Timestamp": "2015-01-01T01:00:00", "Value": 20.952411651611328 }, { "Timestamp": "2015-01-01T02:00:00", "Value": 19.11078453063965 } ], "p90": [ { "Timestamp": "2015-01-01T01:00:00", "Value": 24.524038314819336 }, { "Timestamp": "2015-01-01T02:00:00", "Value": 22.319091796875 } ], "p50": [ { "Timestamp": "2015-01-01T01:00:00", "Value": 20.7841739654541 }, { "Timestamp": "2015-01-01T02:00:00", "Value": 19.237524032592773 } ], "p10": [ { "Timestamp": "2015-01-01T01:00:00", "Value": 18.507278442382812 }, { "Timestamp": "2015-01-01T02:00:00", "Value": 16.15062141418457 } ] } } }
Karena ini adalah perkiraan per jam, responsnya menunjukkan nilai perkiraan per jam. Dalam respons, perhatikan hal berikut:
-
mean
— Untuk tanggal dan waktu tertentu, rata-rata adalah nilai penggunaan listrik rata-rata yang diprediksi bagi pelanggan. -
p90
,p50
, danp10
— Tentukan tingkat kepercayaan bahwa nilai aktual akan berada di bawah nilai yang tercantum pada tanggal dan waktu yang ditentukan. Misalnya, pada 2015-01-01T 01:00:00, Amazon Forecast 90% yakin bahwa penggunaan listrik akan di bawah 24,5. Amazon Forecast 50% yakin bahwa penggunaannya akan di bawah 20,8, dan 10% yakin bahwa penggunaannya akan di bawah 18,5.
Untuk informasi lebih lanjut tentang operasi ini, lihatQueryForecast.
-
-
Ekspor perkiraan lengkap ke bucket Amazon S3 Anda. Peran IAM yang Anda berikan harus memiliki izin untuk menulis data ke bucket S3 Anda. Untuk informasi tentang cara membuat peran IAM, lihatBuat Peran IAM untuk Amazon Forecast ()AWS CLI.
Buat pekerjaan ekspor perkiraan.
aws forecast create-forecast-export-job \ --forecast-export-job-name electricityforecast_exportjob \ --forecast-arn arn:aws:forecast:us-west-2:
acct-id
:forecast/electricityforecast \ --destination S3Config="{Path='s3://bucket
',RoleArn='arn:aws:iam::acct-id
:role/Role
'}"Berikut ini adalah contoh respons.
{ "ForecastExportJobArn": "arn:aws:forecast::us-west-2:acct-id:forecast-export/64bbc087" }
Untuk informasi lebih lanjut tentang operasi ini, lihatCreateForecastExportJob.
-
Dapatkan status pekerjaan ekspor.
aws forecast describe-forecast-export-job \ --forecast-export-job-arn arn:aws:forecast:us-west-2:acct-id:forecast/electricityforecast
Berikut ini adalah contoh respons.
{ "ForecastExportJobArn": "arn:aws:forecast::us-west-2:
acct-id
:forecast-export/64bbc087", "ForecastExportJobName": "electricityforecast_exportjob", "Status": "CREATE_IN_PROGRESS" }Saat statusnya AKTIF, Anda dapat menemukan file perkiraan di bucket S3 yang ditentukan.