วิธีการพยากรณ์ด้วย Google BigQuery
การพยากรณ์เป็นเครื่องมือที่จำเป็นสำหรับธุรกิจ ช่วยให้สามารถคาดการณ์แนวโน้มในอนาคตและตัดสินใจได้อย่างชาญฉลาด ด้วยพลังของ Google BigQuery คุณสามารถดำเนินการคาดการณ์ชุดข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพและรับข้อมูลเชิงลึกอันมีค่าเกี่ยวกับอนาคตของธุรกิจของคุณ
ในบทแนะนำนี้ เราจะแนะนำคุณเกี่ยวกับพื้นฐานของการคาดการณ์ด้วย BigQuery รวมถึงวิธีตั้งค่าข้อมูล เลือกรูปแบบการคาดการณ์ที่เหมาะสม และตีความผลลัพธ์ของคุณ
เริ่มกันเลย!
กรณีการใช้งาน: การคาดการณ์ยอดขายรายสัปดาห์ของร้านค้าอีคอมเมิร์ซของ The Look
ชุดข้อมูล Look E-commerce Shopรวบรวมข้อมูลการขายจากร้านค้าออนไลน์ ประกอบด้วยข้อมูลเกี่ยวกับคำสั่งซื้อ ผลิตภัณฑ์ ลูกค้า และอื่นๆ ชุดข้อมูลนี้เป็นแหล่งข้อมูลที่ยอดเยี่ยมสำหรับทุกคนที่ต้องการวิเคราะห์และทำความเข้าใจพฤติกรรมของลูกค้าอีคอมเมิร์ซ และตัดสินใจอย่างรอบรู้เกี่ยวกับธุรกิจของตน
นี่คือสคีมาของฐานข้อมูล เพื่อให้คุณสามารถหาวิธีสร้างแบบสอบถามของคุณสำหรับการวิเคราะห์เพิ่มเติม:
ด้วย Google BigQuery คุณสามารถเข้าถึงได้โดยไม่ต้องใช้ความพยายาม!
ตัวอย่างเช่น:
SELECT
user_id,
order_id,
created_at
FROM `bigquery-public-data.thelook_ecommerce.orders`
LIMIT 10
SELECT
DATE_TRUNC(o.created_at, WEEK) as week,
ROUND(SUM(oi.sale_price)) as sales
FROM `bigquery-public-data.thelook_ecommerce.orders` o
INNER JOIN `bigquery-public-data.thelook_ecommerce.order_items` oi
ON o.order_id = oi.order_id
GROUP BY week
ORDER BY week
Shop Weekly Sales
วิธีการพยากรณ์ด้วย Google BigQuery และ ARIMA
ARIMA ย่อมาจากAutoregressive Integrated Moving Average เป็นแบบจำลองอนุกรมเวลาที่รวมองค์ประกอบสามส่วนเข้าด้วยกัน:
- คำศัพท์ Autoregressive (AR) : เราดูค่าในอดีตของอนุกรมเวลาและพยายามทำนายค่าในอนาคตตามค่าเหล่านั้น
- คำรวม (I) : เราคำนวณความแตกต่างระหว่างค่าปัจจุบันของอนุกรมเวลากับค่าก่อนหน้า และพยายามทำนายค่าในอนาคตตามความแตกต่างเหล่านั้น
- คำศัพท์ค่าเฉลี่ยเคลื่อนที่ (MA) : คำนี้พิจารณาค่าเฉลี่ยของค่าในอดีตของอนุกรมเวลา และพยายามทำนายค่าในอนาคตตามค่าเฉลี่ยนั้น [1]
วิธีสร้างและฝึกโมเดล ARIMA ด้วย Google BigQuery
ขอบคุณ Google ML เราสามารถใช้ ARIMA[2] กับ Google BigQuery :
CREATE MODEL IF NOT EXISTS `your_project.your_dataset.arima`
OPTIONS(MODEL_TYPE='ARIMA_PLUS',
time_series_timestamp_col='week',
time_series_data_col='sales'
) AS
SELECT
DATE_TRUNC(o.created_at, WEEK) as week,
ROUND(SUM(oi.sale_price)) as sales
FROM `bigquery-public-data.thelook_ecommerce.orders` o
INNER JOIN `bigquery-public-data.thelook_ecommerce.order_items` oi
ON o.order_id = oi.order_id
GROUP BY week
ORDER BY week
- โมเดลการเรียนรู้ของเครื่อง: นี่คือวิธีที่คุณเลือก ARIMA
- คอลัมน์สำหรับพิจารณาข้อมูลเวลา (ตราประทับ) ;
- และคอลัมน์สำหรับตั้งค่าข้อมูล ;
จะรู้ได้อย่างไรว่าโมเดลการเรียนรู้ของเครื่องนั้นดี
หลังจากสร้างโมเดลของคุณแล้ว [3] คุณสามารถใช้ML.ARIMA_EVALUATEฟังก์ชันเพื่อดูเมตริกการประเมินของโมเดลตัวเลือกทั้งหมดที่ได้รับการประเมินระหว่างการปรับไฮเปอร์พารามิเตอร์อัตโนมัติ:
SELECT
*
FROM
ML.ARIMA_EVALUATE(MODEL your_project.your_dataset.arima)
- สี่คอลัมน์ต่อไปนี้ (
non_seasonal_{p,d,q}และhas_drift) กำหนดโมเดล ARIMA ในไปป์ไลน์การฝึก - เมตริกสามรายการหลังจากนั้น (
log_likelihood,AIC, และvariance) เกี่ยวข้องกับกระบวนการประกอบโมเดล ARIMA
AIC เรียงลำดับโมเดลผู้สมัครเหล่านี้จากน้อยไปหามาก
โมเดลที่ดีที่สุดจะถูกบันทึกเป็นโมเดลสุดท้ายและจะใช้เมื่อคุณโทรML.EXPLAIN_FORECASTตามML.FORECASTที่แสดงในขั้นตอนต่อไปนี้
AIC คืออะไร (เกณฑ์ข้อมูล Akaike)
เป็นค่าประมาณของข้อผิดพลาดในการคาดคะเน และดังนั้นจึงเป็นคุณภาพสัมพัทธ์ของแบบจำลองทางสถิติสำหรับชุดข้อมูลที่กำหนด[4]
ใช้เพื่อเปรียบเทียบรุ่นต่างๆ และเลือกรุ่นที่ประหยัดที่สุด หมายความว่ามีพารามิเตอร์จำนวนน้อยที่สุดในขณะที่ยังคงเหมาะสมกับข้อมูลอย่างเพียงพอ
เมื่อประเมินแบบจำลอง ARIMA จะใช้ AIC เพื่อเปรียบเทียบคุณภาพของแบบจำลองต่างๆ ที่มีการรวมกันของคำ autoregressive (AR), ผลต่าง (I) และค่าเฉลี่ยเคลื่อนที่ (MA) ที่แตกต่างกัน
รุ่นที่มี AIC ต่ำสุดถือว่าดีที่สุด
วิธีการใช้แบบจำลองที่ดีที่สุดในการคาดการณ์อนุกรมเวลา
ตอนนี้เป็นเวลาที่จะคาดการณ์!
เพื่อสิ่งนั้น คุณจะใช้ฟังก์ชัน ML.FORECAST ซึ่งมาพร้อมกับอาร์กิวเมนต์จำนวนมาก แต่ต้องใช้เพียงสองอาร์กิวเมนต์เท่านั้น:
- การเลือก MODEL: คุณจะเลือกรุ่นที่คุณฝึกฝนมา ;
- และโครงสร้าง BigQuery ที่มี 2 พารามิเตอร์:
horizonและconfidence_level
หากคุณต้องการคาดการณ์ยอดขาย 52 สัปดาห์ข้างหน้า (หนึ่งปี) ด้วยความมั่นใจในระดับที่ดี นี่คือข้อความค้นหาที่ถูกต้อง:
SELECT
*
FROM
ML.FORECAST(
MODEL your_project.your_dataset.arima,
STRUCT(52 AS horizon, 0.8 AS confidence_level)
)
มุมมองมีอย่างน้อยคอลัมน์ต่อไปนี้:
forecast_timestampforecast_valuestandard_errorconfidence_levelprediction_interval_lower_boundprediction_interval_upper_bound
forecast_valueในการพยากรณ์อนุกรมเวลา ช่วงเวลาการทำนาย ซึ่งถูก บันทึกโดยขอบเขตล่างและบน มีความสำคัญเท่ากับ
ในบทความเพิ่มเติม ฉันจะอธิบายวิธีแสดงภาพการคาดการณ์ถัดจากข้อมูลปัจจุบันของคุณ ถึงกระนั้น ในตอนนี้ คุณสามารถใช้การรวม Looker Studio เพื่อ "วางแผน" การคาดคะเนของคุณ:
จากการคาดการณ์เหล่านี้ เราสามารถพูดได้ว่าแนวโน้มและฤดูกาลมีความสำคัญต่อโมเดล ARIMA มากกว่าค่าสุดท้าย: โมเดลสร้าง "รูปร่าง" ของการขายครั้งก่อนของเราแทนที่จะให้ความสำคัญกับ "การยกกำลัง" ของยอดขายล่าสุด
หากคุณมีคำถามใดๆ โปรดอย่าลังเลที่จะแสดงความคิดเห็น และหากคุณชอบบทความนี้ โปรดติดตามฉันและคุณจะได้รับการแจ้งเตือนเมื่อฉันเผยแพร่ครั้งต่อไป
อ้างอิง
[1] วิธีคำนวณค่าเฉลี่ยเคลื่อนที่ด้วย SQL , Learning SQL Publication
[2] คำสั่ง CREATE MODELเอกสารทางการของ BigQuery ML
[3] การคาดการณ์อนุกรมเวลาเดี่ยวเอกสารอย่างเป็นทางการของ BigQuery ML
[4] เกณฑ์ข้อมูล Akaike , Wikipedia





































![รายการที่เชื่อมโยงคืออะไร? [ส่วนที่ 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)