Prophet adalah algoritma peramalan deret waktu yang dikembangkan oleh Facebook, dirancang khusus untuk menangani data nonlinear dengan tren musiman. Algoritma ini secara otomatis mengidentifikasi perubahan tren, pola musiman, dan efek hari libur dalam data, memberikan hasil peramalan yang efisien dan akurat. Kemudahan penggunaan serta keandalannya membuat Prophet cocok untuk berbagai skenario bisnis dunia nyata, terutama dalam aplikasi yang memerlukan iterasi cepat dan penyesuaian model peramalan.
Batasan
Prophet hanya dapat digunakan berdasarkan sumber daya komputasi MaxCompute.
Konfigurasikan komponen di konsol PAI
Port input
Port input (kiri ke kanan)
Tipe data
Komponen hulu yang direkomendasikan
Diperlukan
Data Input
N/A
Ya
Parameter komponen
Tab
Parameter
Deskripsi
Field Setting
valueCol
Tipe data adalah STRING, dan format datanya adalah MTable. Anda dapat menggunakan komponen MTable Assembler untuk membangun data. Anda dapat menggunakan kolom data bertipe Datetime sebagai deret waktu. Contoh MTable:
{"data":{"ds":["2019-05-07 00:00:00.0","2019-05-08 00:00:00.0"],"val":[8588.0,8521.0]},"schema":"ds TIMESTAMP,val DOUBLE"}.reservedCols
Kolom yang disimpan untuk algoritma.
Parameter Setting
predictionCol
Nama kolom hasil prediksi.
cap
Batas atas nilai prediksi.
changepoint_prior_scale
Nilai default: 0.05.
change_point_range
Proporsi titik perubahan tren. Nilai default: 0.8.
changepoints
Daftar titik perubahan. Pisahkan beberapa titik perubahan dengan koma (,). Contoh:
2021-05-02,2021-05-07.daily_seasonality
Menentukan apakah akan menyesuaikan musiman per hari. Nilai default: auto.
floor
Batas bawah nilai prediksi.
growth
Jenis tren. Nilai valid:
LINEAR (nilai default)
Logistic
Flat
holidays
Pisahkan beberapa hari libur dengan spasi. Contoh:
playoff:2021-05-03,2021-01-03 superbowl:2021-02-07,2021-11-02.holidays_prior_scale
Parameter model hari libur. Nilai default: 10.0.
include_history
Menentukan apakah akan memprediksi nilai yang sesuai dengan tanggal dalam data asli.
interval_width
Interval ketidakpastian. Nilai default: 0.8.
mcmc_samples
Jumlah sampel yang digunakan untuk inferensi Bayesian. Nilai parameter ini adalah bilangan bulat. Jika parameter ini diatur ke 0, estimasi probabilitas posterior maksimum (MAP) dilakukan. Nilai estimasi default adalah 100.
n_change_point
Jumlah maksimum titik perubahan. Nilai default: 25.
predictNum
Nilai valid: (0, inf). Nilai default: 12.
predictionDetailCol
Nama kolom detail prediksi.
seasonality_mode
Mode musiman. Nilai valid:
ADDITIVE (nilai default)
MULTIPLICATIVE
seasonality_prior_scale
Parameter model musiman. Nilai default: 10.0.
stanInit
Nilai awal. Parameter ini kosong secara default.
uncertaintySamples
Nilai default: 1000. Sampel digunakan untuk menghitung metrik statistik. Jika Anda tidak perlu menghitung metrik statistik dan ingin mempercepat prediksi, atur parameter ini ke 0.
weekly_seasonality
Menentukan apakah akan menyesuaikan musiman per minggu. Nilai default: auto.
yearly_seasonality
Menentukan apakah akan menyesuaikan musiman per tahun. Nilai default: auto.
numThreads
Jumlah thread komponen.
Pengaturan Eksekusi
Number of Workers
Jumlah core. Parameter ini harus digunakan bersama dengan parameter Memori per pekerja, unit MB. Nilai parameter ini harus berupa bilangan bulat positif. Nilai valid: [1,9999].
Memory per worker, unit MB
Ukuran memori setiap node pekerja. Nilai valid: 1024 hingga 64 × 1024. Unit: MB.
Konfigurasikan komponen dengan menggunakan kode
Anda dapat menyalin kode berikut ke komponen Skrip PyAlink agar komponen Skrip PyAlink berfungsi seperti komponen Prophet.
import time, datetime
import numpy as np
import pandas as pd
downloader = AlinkGlobalConfiguration.getPluginDownloader()
downloader.downloadPlugin('tf115_python_env_linux')
data = pd.DataFrame([
[1, datetime.datetime.fromtimestamp(1), 10.0],
[1, datetime.datetime.fromtimestamp(2), 11.0],
[1, datetime.datetime.fromtimestamp(3), 12.0],
[1, datetime.datetime.fromtimestamp(4), 13.0],
[1, datetime.datetime.fromtimestamp(5), 14.0],
[1, datetime.datetime.fromtimestamp(6), 15.0],
[1, datetime.datetime.fromtimestamp(7), 16.0],
[1, datetime.datetime.fromtimestamp(8), 17.0],
[1, datetime.datetime.fromtimestamp(9), 18.0],
[1, datetime.datetime.fromtimestamp(10), 19.0]
])
source = dataframeToOperator(data, schemaStr='id int, ts timestamp, val double', op_type='batch')
source.link(GroupByBatchOp()
.setGroupByPredicate("id")
.setSelectClause("id, mtable_agg(ts, val) as data")
).link(ProphetBatchOp()
.setValueCol("data")
.setPredictNum(4)
.setPredictionCol("pred")
).link(FlattenMTableBatchOp()
.setSelectedCol("pred_detail")
.setSchemaStr("ds timestamp, yhat double")
).print()Referensi
Gunakan komponen MTable Expander untuk memperluas MTable menjadi tabel. Untuk informasi lebih lanjut, lihat MTable Expander.
Untuk informasi tentang komponen Machine Learning Designer, lihat Ikhtisar Machine Learning Designer.
Machine Learning Designer menyediakan berbagai komponen algoritma preset. Anda dapat memilih komponen untuk pemrosesan data sesuai dengan skenario bisnis Anda. Untuk informasi lebih lanjut, lihat Referensi komponen: ikhtisar semua komponen.