Buat pekerjaan AutoML untuk peramalan deret waktu menggunakan API - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Buat pekerjaan AutoML untuk peramalan deret waktu menggunakan API

Peramalan dalam pembelajaran mesin mengacu pada proses memprediksi hasil atau tren masa depan berdasarkan data dan pola historis. Dengan menganalisis data deret waktu lalu dan mengidentifikasi pola yang mendasarinya, algoritma pembelajaran mesin dapat membuat prediksi dan memberikan wawasan berharga tentang perilaku masa depan. Dalam peramalan, tujuannya adalah untuk mengembangkan model yang dapat secara akurat menangkap hubungan antara variabel input dan variabel target dari waktu ke waktu. Ini melibatkan pemeriksaan berbagai faktor seperti tren, musiman, dan pola relevan lainnya dalam data. Informasi yang dikumpulkan kemudian digunakan untuk melatih model pembelajaran mesin. Model terlatih mampu menghasilkan prediksi dengan mengambil data input baru dan menerapkan pola dan hubungan yang dipelajari. Ini dapat memberikan perkiraan untuk berbagai kasus penggunaan, seperti proyeksi penjualan, tren pasar saham, prakiraan cuaca, perkiraan permintaan, dan banyak lagi.

Petunjuk berikut menunjukkan cara membuat pekerjaan Amazon SageMaker Autopilot sebagai percobaan percontohan untuk jenis masalah peramalan deret waktu menggunakan Referensi. SageMaker API

catatan

Tugas-tugas seperti klasifikasi teks dan gambar, peramalan deret waktu, dan fine-tuning model bahasa besar tersedia secara eksklusif melalui AutoML versi 2. REST API Jika bahasa pilihan Anda adalah Python, Anda dapat merujuk ke AWS SDK for Python (Boto3)atau MLV2objek Auto dari Amazon Python SageMaker secara langsung. SDK

Pengguna yang lebih menyukai kenyamanan antarmuka pengguna dapat menggunakan Amazon SageMaker Canvas untuk mengakses model pra-terlatih dan model dasar AI generatif, atau membuat model khusus yang disesuaikan untuk teks tertentu, klasifikasi gambar, kebutuhan peramalan, atau AI generatif.

Anda dapat membuat eksperimen peramalan deret waktu Autopilot secara terprogram dengan memanggil dalam bahasa CreateAutoMLJobV2APIapa pun yang didukung oleh Amazon Autopilot atau. SageMaker AWS CLI

Untuk informasi tentang cara API tindakan ini diterjemahkan ke dalam fungsi dalam bahasa pilihan Anda, lihat bagian Lihat Juga CreateAutoMLJobV2 dan pilih. SDK Sebagai contoh, untuk pengguna Python, lihat sintaks permintaan lengkap dari in. create_auto_ml_job_v2 AWS SDK for Python (Boto3)

Autopilot melatih beberapa kandidat model dengan deret waktu target Anda, lalu memilih model peramalan optimal untuk metrik objektif tertentu. Ketika kandidat model Anda telah dilatih, Anda dapat menemukan metrik kandidat terbaik dalam menanggapi DescribeAutoMLJobV2 atBestCandidate.

Bagian berikut menentukan parameter permintaan input wajib dan opsional untuk CreateAutoMLJobV2 API digunakan dalam peramalan deret waktu.

catatan

Lihat Peramalan Seri Waktu notebook dengan Amazon SageMaker Autopilot untuk contoh prakiraan deret waktu yang praktis dan praktis. Di buku catatan ini, Anda menggunakan Amazon SageMaker Autopilot untuk melatih model deret waktu dan menghasilkan prediksi menggunakan model terlatih. Notebook ini memberikan instruksi untuk mengambil kumpulan data data historis tabular yang sudah jadi di Amazon S3.

Prasyarat

Sebelum menggunakan Autopilot untuk membuat eksperimen peramalan deret waktu, pastikan untuk: SageMaker

  • Siapkan kumpulan data deret waktu Anda. Persiapan dataset melibatkan pengumpulan data yang relevan dari berbagai sumber, membersihkan dan menyaringnya untuk menghilangkan noise dan inkonsistensi, dan mengaturnya ke dalam format terstruktur. Lihat Format kumpulan data deret waktu dan metode pengisian nilai yang hilang untuk mempelajari lebih lanjut tentang persyaratan format deret waktu di Autopilot. Secara opsional, Anda dapat melengkapi kumpulan data Anda dengan kalender hari libur nasional negara pilihan Anda untuk menangkap pola terkait. Untuk informasi lebih lanjut tentang kalender liburan, lihatKalender hari libur nasional.

    catatan

    Kami merekomendasikan untuk menyediakan setidaknya 3-5 titik data historis untuk setiap 1 titik data future yang ingin Anda prediksi. Misalnya, untuk memperkirakan 7 hari ke depan (horizon 1 minggu) berdasarkan data harian, latih model Anda pada data historis minimal 21-35 hari. Pastikan untuk menyediakan data yang cukup untuk menangkap pola musiman dan berulang.

  • Tempatkan data deret waktu Anda di bucket Amazon S3.

  • Berikan akses penuh ke bucket Amazon S3 yang berisi data masukan untuk peran SageMaker eksekusi yang digunakan untuk menjalankan eksperimen. Setelah ini selesai, Anda dapat menggunakan peran eksekusi ini dalam permintaan AutopilotAPI. ARN

    • Untuk informasi tentang mengambil peran SageMaker eksekusi Anda, lihatDapatkan peran eksekusi Anda.

    • Untuk informasi tentang pemberian izin peran SageMaker eksekusi untuk mengakses satu atau beberapa bucket tertentu di Amazon S3, lihat Menambahkan Izin Amazon S3 Tambahan ke Peran Eksekusi di. SageMaker Buat peran eksekusi

Parameter yang diperlukan

Saat menelepon CreateAutoMLJobV2 untuk membuat eksperimen Autopilot untuk peramalan deret waktu, Anda harus memberikan nilai berikut:

  • An AutoMLJobName untuk menentukan nama pekerjaan Anda. Nama harus bertipestring, dan harus memiliki panjang minimal 1 karakter dan panjang maksimum 32.

  • Setidaknya satu AutoMLJobChannel AutoMLJobInputDataConfig di mana Anda menentukan nama bucket Amazon S3 yang berisi data Anda. Secara opsional, Anda dapat menentukan jenis konten (CSVatau file Parket) dan kompresi (GZip).

  • AutoMLProblemTypeConfigJenis TimeSeriesForecastingJobConfig untuk mengonfigurasi pengaturan pekerjaan peramalan deret waktu Anda. Secara khusus, Anda harus menentukan:

    • Frekuensi prediksi, yang mengacu pada perincian yang diinginkan (per jam, harian, bulanan, dll) dari perkiraan Anda.

      Interval yang valid adalah bilangan bulat diikuti oleh Y (Tahun), M (Bulan), W (Minggu), D (Hari), H (Jam), dan min (Menit). Misalnya, 1D menunjukkan setiap hari dan 15min menunjukkan setiap 15 menit. Nilai frekuensi tidak boleh tumpang tindih dengan frekuensi yang lebih besar berikutnya. Misalnya, Anda harus menggunakan frekuensi 1H alih-alih60min.

      Nilai yang valid untuk setiap frekuensi adalah sebagai berikut:

      • Menit - 1-59

      • Jam - 1-23

      • Hari - 1-6

      • Minggu - 1-4

      • Bulan - 1-11

      • Tahun - 1

    • Cakrawala prediksi dalam perkiraan Anda, yang mengacu pada jumlah langkah waktu yang diprediksi model. Cakrawala ramalan juga disebut panjang prediksi. Cakrawala perkiraan maksimum adalah kurang dari 500 langkah waktu atau 1/4 langkah waktu dalam kumpulan data.

    • A TimeSeriesConfigdi mana Anda menentukan skema kumpulan data Anda untuk memetakan header kolom ke perkiraan Anda dengan menentukan:

      • ATargetAttributeName: Kolom yang berisi data historis bidang target yang akan diramalkan.

      • ATimestampAttributeName: Kolom yang berisi titik waktu di mana nilai target dari item tertentu dicatat.

      • AItemIdentifierAttributeName: Kolom yang berisi pengidentifikasi item yang ingin Anda prediksi nilai targetnya.

    Berikut ini adalah contoh parameter permintaan tersebut. Dalam contoh ini, Anda menyiapkan perkiraan harian untuk jumlah yang diharapkan atau tingkat permintaan item tertentu selama periode 20 hari.

    "AutoMLProblemTypeConfig": { "ForecastFrequency": "D", "ForecastHorizon": 20, "TimeSeriesConfig": { "TargetAttributeName": "demand", "TimestampAttributeName": "timestamp", "ItemIdentifierAttributeName": "item_id" },
  • OutputDataConfigUntuk menentukan jalur keluaran Amazon S3 untuk menyimpan artefak pekerjaan AutoML Anda.

  • A RoleArn untuk menentukan peran ARN yang digunakan untuk mengakses data Anda. Anda dapat menggunakan peran eksekusi yang telah Anda berikan akses ke data Anda. ARN

Semua parameter lainnya adalah opsional. Misalnya, Anda dapat mengatur kuantil perkiraan tertentu, memilih metode pengisian untuk nilai yang hilang dalam kumpulan data, atau menentukan cara menggabungkan data yang tidak sejajar dengan frekuensi perkiraan. Untuk mempelajari cara mengatur parameter tambahan tersebut, lihatParameter opsional.

Parameter opsional

Bagian berikut memberikan rincian beberapa parameter opsional yang dapat Anda berikan ke pekerjaan AutoML perkiraan deret waktu Anda.

Secara default, pekerjaan Autopilot Anda melatih daftar algoritme yang telah ditentukan sebelumnya pada kumpulan data Anda. Namun, Anda dapat memberikan subset dari pemilihan algoritme default.

Untuk peramalan deret waktu, Anda harus memilih TimeSeriesForecastingJobConfig sebagai jenis. AutoMLProblemTypeConfig

Kemudian, Anda dapat menentukan array yang dipilih AutoMLAlgorithms dalam AlgorithmsConfig atribut CandidateGenerationConfig.

Berikut ini adalah contoh AlgorithmsConfig atribut yang mencantumkan tepat tiga algoritma (“cnn-qr”, “nabi”, “arima”) di bidangnya. AutoMLAlgorithms

{ "AutoMLProblemTypeConfig": { "TimeSeriesForecastingJobConfig": { "CandidateGenerationConfig": { "AlgorithmsConfig":[ {"AutoMLAlgorithms":["cnn-qr", "prophet", "arima"]} ] }, }, }, }

Untuk daftar algoritma yang tersedia untuk peramalan deret waktu, lihat. AutoMLAlgorithms Untuk detail tentang setiap algoritma, lihatDukungan algoritma untuk peramalan deret waktu.

Autopilot melatih 6 kandidat model dengan deret waktu target Anda, kemudian menggabungkan model ini menggunakan metode ansambel susun untuk membuat model peramalan optimal untuk metrik objektif tertentu. Setiap model peramalan Autopilot menghasilkan perkiraan probabilistik dengan menghasilkan perkiraan pada kuantil antara P1 dan P99. Kuantil ini digunakan untuk menjelaskan ketidakpastian perkiraan. Secara default, perkiraan akan dihasilkan untuk 0.1 (p10), 0.5 (p50), dan 0.9 (p90). Anda dapat memilih untuk menentukan kuantil Anda sendiri.

Di Autopilot, Anda dapat menentukan hingga lima kuantil perkiraan dari 0,01 (p1) hingga 0,99 (p99), dengan penambahan 0,01 atau lebih tinggi dalam atribut. ForecastQuantiles TimeSeriesForecastingJobConfig

Dalam contoh berikut, Anda menyiapkan perkiraan persentil 10, 25, 50, 75, dan 90 harian untuk kuantitas atau tingkat permintaan barang tertentu yang diharapkan selama periode 20 hari.

"AutoMLProblemTypeConfig": { "ForecastFrequency": "D", "ForecastHorizon": 20, "ForecastQuantiles": ["p10", "p25", "p50", "p75", "p90"], "TimeSeriesConfig": { "TargetAttributeName": "demand", "TimestampAttributeName": "timestamp", "ItemIdentifierAttributeName": "item_id" },

Untuk membuat model perkiraan (juga disebut sebagai kandidat model terbaik dari eksperimen Anda), Anda harus menentukan frekuensi perkiraan. Frekuensi perkiraan menentukan frekuensi prediksi dalam perkiraan Anda. Misalnya, perkiraan penjualan bulanan. Model terbaik autopilot dapat menghasilkan perkiraan untuk frekuensi data yang lebih tinggi dari frekuensi di mana data Anda direkam.

Selama pelatihan, Autopilot mengumpulkan data apa pun yang tidak selaras dengan frekuensi perkiraan yang Anda tentukan. Misalnya, Anda mungkin memiliki beberapa data harian tetapi tentukan frekuensi perkiraan mingguan. Autopilot menyelaraskan data harian berdasarkan minggu di mana ia berada. Autopilot kemudian menggabungkannya menjadi rekor tunggal untuk setiap minggu.

Selama agregasi, metode transformasi default adalah menjumlahkan data. Anda dapat mengonfigurasi agregasi saat membuat pekerjaan AutoML Anda Transformations di atribut. TimeSeriesForecastingJobConfig Metode agregasi yang didukung adalah sum (default),,avg, firstmin,max. Agregasi hanya didukung untuk kolom target.

Dalam contoh berikut, Anda mengonfigurasi agregasi untuk menghitung rata-rata perkiraan promo individu untuk memberikan nilai perkiraan agregat akhir.

"Transformations": { "Aggregation": { "promo": "avg" } }

Autopilot menyediakan sejumlah metode pengisian untuk menangani nilai yang hilang di target dan kolom numerik lainnya dari kumpulan data deret waktu Anda. Untuk informasi tentang daftar metode pengisian yang didukung dan logika pengisian yang tersedia, lihatTangani nilai yang hilang.

Anda mengonfigurasi strategi pengisian Anda dalam Transformations atribut TimeSeriesForecastingJobConfigsaat membuat pekerjaan AutoML Anda.

Untuk mengatur metode pengisian, Anda perlu memberikan pasangan kunci-nilai:

  • Kuncinya adalah nama kolom yang ingin Anda tentukan metode pengisian.

  • Nilai yang terkait dengan kunci adalah objek yang mendefinisikan strategi pengisian untuk kolom itu.

Anda dapat menentukan beberapa metode pengisian untuk satu kolom.

Untuk menetapkan nilai tertentu untuk metode pengisian, Anda harus mengatur parameter isian ke nilai metode pengisian yang diinginkan (misalnya"backfill" : "value"), dan menentukan nilai pengisian aktual dalam parameter tambahan yang diakhiran dengan “_value”. Misalnya, untuk mengatur backfill ke nilai2, Anda harus menyertakan dua parameter: "backfill": "value" dan"backfill_value":"2".

Dalam contoh berikut, Anda menentukan strategi pengisian untuk kolom data yang tidak lengkap, “harga” sebagai berikut: Semua nilai yang hilang antara titik data pertama suatu item dan yang terakhir diatur ke 0 setelah itu semua nilai yang hilang diisi dengan nilai 2 hingga tanggal akhir kumpulan data.

"Transformations": { "Filling": { "price": { "middlefill" : "zero", "backfill" : "value", "backfill_value": "2" } } }

Autopilot menghasilkan metrik akurasi untuk mengevaluasi kandidat model dan membantu Anda memilih mana yang akan digunakan untuk menghasilkan perkiraan. Saat Anda menjalankan eksperimen peramalan deret waktu, Anda dapat memilih AutoML untuk membiarkan Autopilot mengoptimalkan prediktor untuk Anda, atau Anda dapat secara manual memilih algoritme untuk prediktor Anda.

Secara default, Autopilot menggunakan Average Weighted Quantile Loss. Namun, Anda dapat mengonfigurasi metrik objektif saat membuat pekerjaan AutoML Anda di MetricName atribut A utoMLJob Objective.

Untuk daftar algoritma yang tersedia, lihatDukungan algoritma untuk peramalan deret waktu.

Di Autopilot, Anda dapat menggabungkan kumpulan data informasi hari libur nasional yang direkayasa fitur ke deret waktu Anda. Autopilot memberikan dukungan asli untuk kalender liburan lebih dari 250 negara. Setelah Anda memilih negara, Autopilot menerapkan kalender liburan negara tersebut ke setiap item dalam kumpulan data Anda selama pelatihan. Ini memungkinkan model untuk mengidentifikasi pola yang terkait dengan hari libur tertentu.

Anda dapat mengaktifkan featurisasi liburan saat Anda membuat pekerjaan AutoML Anda dengan meneruskan HolidayConfigAttributesobjek ke atribut. HolidayConfig TimeSeriesForecastingJobConfig HolidayConfigAttributesObjek berisi CountryCode atribut dua huruf yang menentukan negara kalender hari libur nasional yang digunakan untuk menambah kumpulan data deret waktu Anda.

Lihat daftar kalender yang didukung dan kode negara yang sesuai. Kode Negara

Autopilot memungkinkan Anda untuk secara otomatis menerapkan model perkiraan Anda ke titik akhir. Untuk mengaktifkan penerapan otomatis untuk kandidat model terbaik dari pekerjaan AutoML, sertakan ModelDeployConfig a dalam permintaan pekerjaan AutoML. Ini memungkinkan penerapan model terbaik ke titik SageMaker akhir. Di bawah ini adalah konfigurasi yang tersedia untuk kustomisasi.

Anda dapat mengonfigurasi AutoML job V2 untuk secara otomatis memulai pekerjaan jarak jauh di Amazon EMR Tanpa Server saat sumber daya komputasi tambahan diperlukan untuk memproses kumpulan data besar. Dengan transisi mulus ke EMR Tanpa Server saat diperlukan, pekerjaan AutoML dapat menangani kumpulan data yang akan melebihi sumber daya yang awalnya disediakan, tanpa intervensi manual dari Anda. EMRTanpa server tersedia untuk jenis masalah tabular dan deret waktu. Sebaiknya siapkan opsi ini untuk kumpulan data deret waktu yang lebih besar dari 30 GB.

Agar AutoML job V2 Anda secara otomatis beralih ke EMR Tanpa Server untuk kumpulan data besar, Anda perlu menyediakan EmrServerlessComputeConfig objek, yang menyertakan ExecutionRoleARN bidang, ke permintaan input AutoML job V2. AutoMLComputeConfig

ExecutionRoleARNIni adalah IAM peran ARN yang memberikan pekerjaan AutoML V2 izin yang diperlukan untuk EMR menjalankan pekerjaan Tanpa Server.

Peran ini harus memiliki hubungan kepercayaan berikut:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Dan berikan izin untuk:

  • Buat, daftar, dan perbarui EMR aplikasi Tanpa Server.

  • Mulai, daftar, dapatkan, atau batalkan pekerjaan berjalan pada aplikasi EMR Tanpa Server.

  • Tag sumber EMR daya tanpa server.

  • Lulus IAM peran ke layanan EMR Tanpa Server untuk dieksekusi.

    Dengan memberikan iam:PassRole izin, pekerjaan AutoML V2 dapat mengambil peran EMRServerlessRuntimeRole-* sementara dan meneruskannya ke EMR layanan Tanpa Server. Ini adalah IAM peran yang digunakan oleh lingkungan eksekusi pekerjaan EMR Tanpa Server untuk mengakses AWS layanan dan sumber daya lain yang diperlukan selama runtime, seperti Amazon S3 untuk akses data, CloudWatch untuk pencatatan, akses ke Katalog AWS Glue Data, atau layanan lain berdasarkan persyaratan beban kerja Anda.

    Lihat Peran runtime Job untuk Amazon EMR Tanpa Server untuk detail tentang izin peran ini.

IAMKebijakan yang ditetapkan dalam JSON dokumen yang disediakan memberikan izin tersebut:

{ "Version": "2012-10-17", "Statement": [{ "Sid": "EMRServerlessCreateApplicationOperation", "Effect": "Allow", "Action": "emr-serverless:CreateApplication", "Resource": "arn:aws:emr-serverless:*:*:/*", "Condition": { "StringEquals": { "aws:RequestTag/sagemaker:is-canvas-resource": "True", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "EMRServerlessListApplicationOperation", "Effect": "Allow", "Action": "emr-serverless:ListApplications", "Resource": "arn:aws:emr-serverless:*:*:/*", "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "EMRServerlessApplicationOperations", "Effect": "Allow", "Action": [ "emr-serverless:UpdateApplication", "emr-serverless:GetApplication" ], "Resource": "arn:aws:emr-serverless:*:*:/applications/*", "Condition": { "StringEquals": { "aws:ResourceTag/sagemaker:is-canvas-resource": "True", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "EMRServerlessStartJobRunOperation", "Effect": "Allow", "Action": "emr-serverless:StartJobRun", "Resource": "arn:aws:emr-serverless:*:*:/applications/*", "Condition": { "StringEquals": { "aws:RequestTag/sagemaker:is-canvas-resource": "True", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "EMRServerlessListJobRunOperation", "Effect": "Allow", "Action": "emr-serverless:ListJobRuns", "Resource": "arn:aws:emr-serverless:*:*:/applications/*", "Condition": { "StringEquals": { "aws:ResourceTag/sagemaker:is-canvas-resource": "True", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "EMRServerlessJobRunOperations", "Effect": "Allow", "Action": [ "emr-serverless:GetJobRun", "emr-serverless:CancelJobRun" ], "Resource": "arn:aws:emr-serverless:*:*:/applications/*/jobruns/*", "Condition": { "StringEquals": { "aws:ResourceTag/sagemaker:is-canvas-resource": "True", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "EMRServerlessTagResourceOperation", "Effect": "Allow", "Action": "emr-serverless:TagResource", "Resource": "arn:aws:emr-serverless:*:*:/*", "Condition": { "StringEquals": { "aws:RequestTag/sagemaker:is-canvas-resource": "True", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "IAMPassOperationForEMRServerless", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/EMRServerlessRuntimeRole-*", "Condition": { "StringEquals": { "iam:PassedToService": "emr-serverless.amazonaws.com", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } } ] }