การคาดการณ์อนุกรมเวลาใน Snowflake โดยใช้ SQL
การพยากรณ์ความต้องการ การจัดการห่วงโซ่อุปทานและสินค้าคงคลัง การวางแผนทางการเงินมีความสำคัญต่อการดำเนินธุรกิจ Modelstar ให้คุณทำเช่นนั้นใน Snowflake ด้วย SQL เพียง 1 บรรทัด
Time Series Forecasting และกรณีการใช้งานคืออะไร?
การคาดการณ์อนุกรมเวลาเป็นเทคนิคในการทำนายค่าตามข้อมูลตัวอย่างเวลาในอดีต
การพยากรณ์เป็นพื้นฐานสำหรับ การจัดการ
การคาดการณ์สามารถช่วยให้บริษัทต่างๆ ตัดสินใจทางธุรกิจได้อย่างเหมาะสมในด้านการจัดการห่วงโซ่อุปทาน การจัดการสินค้าคงคลัง (จำนวนและเวลาที่จะทำการสต็อกสินค้าใหม่) การวางแผนทางการเงิน แผนงานผลิตภัณฑ์ และกลยุทธ์การจ้างงาน ฯลฯ ด้วยผลการพยากรณ์ที่แม่นยำและทันท่วงที การจัดการธุรกิจสามารถมี ความเข้าใจที่ดีขึ้นเกี่ยวกับวิธีการจัดสรรทรัพยากรหรือใช้ประโยชน์จาก tailwinds
ความท้าทายทางเทคนิคสำหรับการพยากรณ์
การพยากรณ์เป็นการประยุกต์ใช้การวิเคราะห์อนุกรมเวลา มีองค์ประกอบหลายประการที่ต้องพิจารณา:
- ฤดูกาล: การเปลี่ยนแปลงเป็นระยะเมื่อเวลาผ่านไป ตัวอย่าง: วันหยุดฤดูร้อนและฤดูหนาวเป็นประจำทุกปี หรือมีการบริโภคกาแฟในตอนเช้ามากขึ้นทุกวัน
- แนวโน้ม: การเปลี่ยนแปลงที่ไม่ใช่เป็นระยะอย่างต่อเนื่อง ตัวอย่าง: การเติบโตของยอดขายของบริษัทในช่วง 5 ปีที่ผ่านมา
- เหตุการณ์ก่อกวน: การเปลี่ยนแปลงอย่างกะทันหัน อาจเกิดจากปัจจัยที่คาดการณ์ได้ เช่น วันหยุดหรือการบำรุงรักษาบริการ และปัญหาที่คาดเดาไม่ได้ เช่น ข้อผิดพลาดแบบสุ่มหรือจุดบกพร่อง
ความท้าทายทางเทคนิคของการนำไปใช้งาน
Python มีระบบนิเวศที่สมบูรณ์เพื่อใช้การเรียนรู้ของเครื่องและอัลกอริทึมการพยากรณ์ ความสามารถใหม่ของ Snowpark ของ Snowflake ที่นำ Python มาสู่คลังข้อมูลของคุณ การใช้ UDF เพื่อเรียกใช้ Python ใน SQL เป็นตัวเปลี่ยนเกมในการแปลงที่คุณสามารถทำได้กับข้อมูลของคุณ อย่างไรก็ตาม อาจเป็นเรื่องที่น่ากังวลและใช้เวลานาน หากคุณต้องการใช้โซลูชันปลายทางเพื่อทำการคาดการณ์ Modelstarแก้ปัญหานี้โดยการจัดหาโซลูชันที่มีประสิทธิภาพเพื่อนำพลังพิเศษของ Python มาสู่ SQL
Modelstarเป็นโครงการโอเพ่นซอร์สและสร้างขึ้นจากคุณสมบัติที่เพิ่งเปิดตัวจาก Snowflake เช่น Snowpark โดยจะจัดการการขึ้นต่อกัน การสร้างแบบจำลอง และไฟล์ I/O ในการคำนวณ Snowflake โดยอัตโนมัติ
SQL 1-liner สำหรับ การคาดการณ์
Modelstarช่วยให้คุณจัดส่งและจัดการแบบจำลองการคาดการณ์และแสดงภาพผลลัพธ์การสร้างแบบจำลองด้วย SQL 1 บรรทัดภายใน Snowflake ภายใต้ประทุน Modelstar ให้อัลกอริทึมการคาดการณ์ที่สร้างไว้ล่วงหน้า และแสดงเป็นขั้นตอนการจัดเก็บ SQL ในฐานข้อมูลของคุณ ในตัวอย่างนี้ เราจะใช้univariate_time_series_forecast
( API doc ) API นี้อ้างอิงจากไลบรารีโอเพ่นซอร์สProphetซึ่งเป็นหนึ่งในอัลกอริทึมการคาดการณ์ที่ใช้กันอย่างแพร่หลายในอุตสาหกรรม
บทช่วยสอนนี้มีขั้นตอนในการสร้างแบบจำลองการคาดการณ์อนุกรมเวลาและรายงาน มันครอบคลุม:
- แนวคิดพื้นฐาน: เกี่ยวกับกรณีการใช้งานและเทคโนโลยีการคาดการณ์ยอดขาย
- เครื่องมือ Modelstar CLI: คู่มือการติดตั้ง Modelstar
univariate_time_series_forecast
ไวยากรณ์ SQL: SQL 1-liner เพื่อทำการพยากรณ์- รายงานการคาดการณ์: ผลลัพธ์การคาดการณ์พร้อมให้ทีมธุรกิจใช้
การเตรียมการสำหรับการ เดินทาง
นี่คือคู่มือการเริ่มต้นอย่างรวดเร็วเพื่อตั้งค่า Modelstar หากคุณเป็นผู้ใช้ Modelstar เป็นครั้งแรก
ขั้นตอนที่ 1: ติดตั้ง Modelstar
$ pip install modelstar
ตรวจสอบการติดตั้งด้วยการตรวจสอบเวอร์ชันอย่างรวดเร็ว:
$ modelstar --version
ขั้นตอนที่ #2: เริ่มต้น โครงการ
$ modelstar init forecast_project
ตอนนี้คุณจะเห็นforecast_project
โฟลเดอร์ที่สร้างขึ้นในไดเร็กทอรีการทำงานของคุณ
ขั้นตอนที่ #3: กำหนดค่า เซสชัน
ภายในforecast_project
โฟลเดอร์ ค้นหาไฟล์modelstar.config.yaml
และเปิดด้วยตัวแก้ไขที่คุณชื่นชอบ เพิ่มข้อมูลบัญชี Snowflake และข้อมูลรับรองของคุณ รู้สึกอิสระที่จะตั้งชื่อเซสชันด้วยชื่อใดก็ได้ ในตัวอย่างนี้ เราใช้snowflake-test
. ข้อมูลประจำตัวในไฟล์นี้ใช้เพื่อเชื่อมต่อกับคลังข้อมูล Snowflake ของคุณ (หมายเหตุ: อย่าคอมมิตไฟล์ modelstar.config.yaml ใน CI/CD การควบคุมเวอร์ชันของคุณ)
# ./modelstar.config.yaml
# MODELSTAR CONFIGURATION FILE
---
sessions:
- name: snowflake-test
connector: snowflake
config:
account: WQA*****
username: <username>
password: <password>
database: MODELSTAR_TEST
schema: PUBLIC
stage: test
warehouse: COMPUTE_WH
ขั้นตอนที่ #4: ปิง เกล็ดหิมะ
ขณะนี้เราสามารถเริ่มเซสชัน Modelstar จากเทอร์มินัลของคุณ ภายในไดเร็กทอรีของโครงการ Modelstar ที่สร้างขึ้นใหม่ (ในตัวอย่างของเราคือ./forecast_project/
) ให้เรียกใช้สิ่งนี้:
$ modelstar use snowflake-test
ping ที่ประสบความสำเร็จควรนำไปสู่สิ่งนี้:
ขั้นตอนที่ #5: ลงทะเบียนอัลกอริทึมการคาดการณ์กับ Snowflake
Modelstar ให้อัลกอริทึมการคาดการณ์ที่พร้อมใช้งานทันทีและจัดการการอ้างอิงสำหรับอัลกอริทึมนี้ ดังนั้นคุณไม่จำเป็นต้องทำ ในการทำให้สิ่งนี้พร้อมใช้งานในคลังสินค้า Snowflake ให้รันคำสั่งต่อไปนี้:
$ modelstar register forecast:univariate_time_series_forecast
ขั้นตอนที่ #6: อัปโหลดข้อมูลการขายตัวอย่างไปยัง Snowflake (ไม่บังคับ หากคุณใช้ชุดข้อมูลของคุณเอง )
หากคุณต้องการลองใช้อัลกอริทึมการคาดการณ์ในชุดข้อมูลการขายตัวอย่าง ให้รันคำสั่งนี้เพื่อสร้างตารางข้อมูลในคลังข้อมูลของคุณ คุณสามารถข้ามขั้นตอนนี้ได้หากต้องการใช้ข้อมูลของคุณเอง
$ modelstar create table sample_data/time_series_data.csv:TS_DATA_TABLE
สร้างแบบจำลองการคาดการณ์โดยใช้ SQL 1- linear
เรียกใช้สคริปต์นี้ใน Snowflake Worksheet
ใช้คำสั่งต่อไปนี้ใน Snowflake เพื่อสร้างแบบจำลองการคาดการณ์ (ตัวอย่างด้านล่างใช้ข้อมูลตัวอย่างที่อัปโหลดในขั้นตอนที่ #6):
CALL UNIVARIATE_TIME_SERIES_FORECAST('TS_DATA_TABLE', 'DS', 'Y', 40, 'M');
เพื่อเรียกใช้อัลกอริทึมการคาดการณ์กับ ข้อมูล
ภายใต้ประทุน อัลกอริทึมการคาดการณ์จะทำงานภายใน Snowflake เป็นขั้นตอนการจัดเก็บ ใช้พารามิเตอร์ต่อไปนี้:
หากต้องการกำหนดค่าระยะเวลาการคาดการณ์ของคุณเอง ให้ตรวจสอบเอกสาร API นี้เพื่อดูรายการนามแฝงของหน่วยทั้งหมด
ตรวจสอบ ผลลัพธ์
หลังจากการฝึกโมเดลเสร็จสิ้น ในหน้าต่าง Snowflake Results การรันที่สำเร็จควรแสดงสตริง json ที่คล้ายกับสิ่งนี้:
{
"return_table": "RESULT_UNIVARIATE_TIME_SERIES_FORECAST",
"run_id": "3NvQXnHQqUdYG4Fu"
}
ตรวจสอบ ตาราง
ตรวจสอบตารางผลลัพธ์จากการเรียกใช้โดยใช้:
SELECT * FROM RESULT_UNIVARIATE_TIME_SERIES_FORECAST;
DS
(datetime
): วันที่และเวลาY_FORECAST
,YHAT_LOWER
,YHAT_UPPER
(ลอย): ค่าเฉลี่ย พันธะล่างและบนของค่าที่ทำนายไว้ (ดูUncertainty Intervals
ความหมายในส่วนอภิธานศัพท์)
รายงานที่บันทึกข้อมูลเกี่ยวกับการรันด้วยอาร์ติแฟกต์แมชชีนเลิร์นนิงจะสร้างขึ้นโดยอัตโนมัติด้วย Modelstar หากต้องการตรวจสอบรายงาน เพียงเรียกใช้คำสั่งนี้ในเครื่องคอมพิวเตอร์ของคุณ:
$ modelstar check <run_id>
รายงานจะแสดงในเบราว์เซอร์ของคุณ:
มีอะไรอยู่ใน รายงาน
รายงานประกอบด้วย 3 ส่วน:
- ข้อมูลเมตาของการเรียกใช้นี้
- แผนภูมิการคาดการณ์: เพื่อตรวจสอบคุณภาพการสร้างแบบจำลองและผลการพยากรณ์
- การวิเคราะห์องค์ประกอบ: เพื่อแสดงแนวโน้มและฤดูกาลที่แบบจำลองของคุณ "เรียนรู้" รวมถึงแนวโน้มโดยรวม และฤดูกาลรายปีและรายสัปดาห์ (รูปแบบวงจรในช่วง 1 ปี/สัปดาห์)
การคาดการณ์ในตัวอย่างและนอกตัวอย่าง:จากการคาดการณ์ในตัวอย่าง คุณสามารถตรวจสอบได้ว่าแบบจำลองการคาดการณ์เหมาะสมกับข้อมูลจริงเพียงใด การคาดการณ์นอกตัวอย่างแสดงการทำนายอนาคต
ช่วงความไม่แน่นอน:แถบระหว่างขอบเขตบนและล่าง หมายความว่ามีความเป็นไปได้ 80% ที่ค่าจริงจะอยู่ในช่วงนั้น ความต้องการความแน่นอนที่สูงขึ้นจะนำไปสู่วงกว้าง (ดูบทความของ Bartosz ) ความไม่แน่นอนก็เพิ่มขึ้นเช่นกันเมื่อเราก้าวต่อไปในอนาคต ซึ่งนำไปสู่ขอบเขตที่กว้างขึ้นตามหน้าที่ของเวลา
บทสรุป
การพยากรณ์เป็นพื้นฐานสำหรับการจัดการธุรกิจ เป้าหมายของเราคือส่งฟังก์ชันการคาดการณ์ไปยัง Snowflake เพื่อฝึกโมเดลการเรียนรู้ของเครื่องและคาดการณ์โดยใช้มัน เราประสบความสำเร็จทั้งหมดนี้ด้วย SQL เพียง 1 บรรทัด พร้อมกันนี้ รายงานการรันที่มีรายละเอียดการรันพร้อมกับการวิเคราะห์การคาดการณ์จะถูกสร้างขึ้น สิ่งนี้เกิดขึ้น ได้โดยModelstar
ตรวจสอบ พื้นที่เก็บข้อมูล GitHubของ Modelstar : ที่นี่ ติดดาวเพื่อรับการอัปเดตล่าสุด ในกรณีที่มีข้อบกพร่อง ปัญหา หรือคำขอคุณสมบัติสำหรับกรณีการใช้งานของคุณ โปรดติดต่อGithubหรือเปิดปัญหาบนGitHub
- ที่เก็บ GitHub:https://github.com/modelstar-labs/modelstar
- เอกสาร:https://modelstar.io/docs/quickstart/