Memulai (AWS CLI) - Amazon Forecast

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 menggunakanAWS 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 CLIPerintah dalam latihan ini diuji di Linux. Untuk informasi tentang penggunaanAWS CLI perintah pada Windows, lihat Menentukan Nilai Parameter untukAWS Command Line Interface di PanduanAWS Command Line Interface Pengguna.

Mulailah dengan membuat dataset dan mengimpor data penggunaan listrik ke dalamnya.

Membuat kumpulan data Amazon Forecast
  1. Tentukan domain dan jenis dataset mana yang sesuai.

    Data pelatihan yang akan Anda impor ke kumpulan data memengaruhi pilihan domain dan jenis kumpulan data Anda. Jadi, mari kita tinjau beberapa baris sampel 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 - Cap 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 set data dan tipe dataset yang telah ditentukan berikut ini:

    • Domain kustom — Tidak ada domain set data, seperti METRICS, RETAIL, atau WEB_TRAFFIC, yang berlaku untuk data ini, jadi pilih domain Kustom.

    • Jenis seri 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 dataset seri waktu target.

      Untuk memahami mengapa Anda memilih jenis ini, lihatDomain Dataset dan Jenis Dataset yang Telah Ditetapkan.

  2. Tentukan skema set data.

    Jenis seri waktu target untukDomain KUSTOM membutuhkan bidang ini;timestamp,target_value, danitem_id. target_valueBidang adalah targetnya. Amazon Forecast menghasilkan perkiraan untuk bidang ini.

    Untuk memetakan kolom 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.

  3. Buat set data.

    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 selengkapnya tentang operasi ini, lihatCreateDataset.

  4. (Opsional) Dapatkan deskripsi set data.

    aws forecast describe-dataset \ --dataset-arn arn:aws:forecast:us-west-2:acct-id:dataset/electricity_demand_ds

    Berikut 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 sewenang-wenang.

  5. Buat grup kumpulan data dan tambahkan set data ke dalamnya. Nilaidomain 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 CUSTOM

    Berikut ini adalah contoh respons.

    { "DatasetGroupArn": "arn:aws:forecast:us-west-2:acct-id:dataset-group/electricity_ds_group" }

    Untuk informasi selengkapnya tentang operasi ini, lihatCreateDatasetGroup.

  6. (Opsional) Dapatkan deskripsi dari grup set data.

    aws forecast describe-dataset-group \ --dataset-group-arn arn:aws:forecast:us-west-2:acct-id:dataset-group/electricity_ds_group

    Berikut 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" }
  7. Impor data pelatihan penggunaan listrik dari bucket Amazon S3 Anda ke set data. IAM role yang Anda berikan harus memiliki izin untuk membaca data dari bucket S3 Anda. Untuk informasi tentang cara membuat IAM role, 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 untukdata-source parameter.

    --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 selengkapnya tentang operasi ini, lihatCreateDatasetImportJob.

  8. Memeriksa 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_job

    Berikut 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 ACTIVE dan respons termasuk statistik untuk data, seperti yang ditunjukkan dalam 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 sampai status AKTIF sebelum membuat prediktor dengan grup dataset.

    Untuk informasi selengkapnya tentang operasi ini, lihatDescribeDatasetImportJob.

Untuk membuat prediktor, Anda menggunakanCreateAutoPredictor operasi dan memberikan informasi berikut.

  • Nama prediktor - Beri prediktor nama sehingga Anda dapat membedakannya dari prediktor Anda yang lain

  • Grup set data - Anda membuat grup kumpulan data di 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 selengkapnya tentang prediktor, lihatPrediktor Pelatihan.

Untuk membuat prediktor dan meninjau metrik akurasi
  1. 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 D

    Berikut ini adalah contoh respons.

    { "PredictorArn": "arn:aws:forecast:us-west-2:acct-id:predictor/electricitypredictor" }
  2. Dapatkan status prediktor.

    aws forecast describe-predictor \ --predictor-arn arn:aws:forecast:us-west-2:acct-id:predictor/electricitypredictor

    Berikut 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.

  3. Dapatkan metrik akurasi untuk prediktor.

    aws forecast get-accuracy-metrics \ --predictor-arn arn:aws:forecast:us-west-2:acct-id:predictor/electricitypredictor

    Berikut 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 selengkapnya tentang operasi ini, lihatGetAccuracyMetrics.

Amazon Forecast membuat perkiraan untuktarget_value bidang (sebagaimana ditentukan oleh domain dan jenis kumpulan data) untuk setiap unikitem_id dalam kumpulan data. Dalam latihan ini,target_value lapangan menyediakan penggunaan listrik danitem_id menyediakan ID klien. Anda mendapatkan perkiraan untuk penggunaan listrik per jam oleh pelanggan.

Setelah perkiraan dibuat, Anda dapat melakukan kueri untuk satu item atau mengekspor perkiraan lengkap.

Untuk membuat, mengambil, dan mengekspor perkiraan
  1. Buat ramalan.

    aws forecast create-forecast \ --forecast-name electricityforecast \ --predictor-arn arn:aws:forecast:us-west-2:acct-id:predictor/electricitypredictor

    Operasi menggunakan prediktor untuk membuat perkiraan. Dalam respons, Anda mendapatkan Amazon Resource Name (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 selengkapnya tentang operasi ini, lihatCreateForecast.

  2. Ambil dua jam pertama dari perkiraan untukclient_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 termasuk parameter-parameter berikut.

    • start-datedanend-date - Menentukan rentang tanggal opsional untuk mengambil perkiraan untuk. Jika Anda tidak menentukan parameter-parameter ini, operasi mengembalikan keseluruhan perkiraan untukclient_1.

    • filters- Menentukanitem_id filter untuk mengambil perkiraan listrik untukclient_1.

      Berikut ini adalah sintaks singkatan untukfilters parameter.

      --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, respons 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 untuk 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 yakin 50% bahwa penggunaan akan di bawah 20,8, dan 10% yakin bahwa penggunaan akan di bawah 18,5.

    Untuk informasi selengkapnya tentang operasi ini, lihatQueryForecast.

  3. Ekspor perkiraan lengkap ke bucket Amazon S3 Anda. IAM role yang Anda berikan harus memiliki izin untuk menulis data ke bucket S3 Anda. Untuk informasi tentang cara membuat IAM role, 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 selengkapnya tentang operasi ini, lihatCreateForecastExportJob.

  4. Dapatkan status tugas 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.