ฉันจะทำนายปริมาณการใช้ข้อมูลตามข้อมูลอนุกรมเวลาก่อนหน้าได้อย่างไร


18

หากฉันมีร้านค้าปลีกและมีวิธีการวัดจำนวนผู้ที่เข้ามาในร้านของฉันทุกนาทีและประทับเวลาข้อมูลนั้นฉันจะคาดการณ์ปริมาณการใช้ข้อมูลในอนาคตได้อย่างไร

ฉันได้ตรวจสอบอัลกอริทึมการเรียนรู้ของเครื่อง แต่ฉันไม่แน่ใจว่าจะใช้อันไหน ในข้อมูลการทดสอบของฉันแนวโน้มปีต่อปีมีความแม่นยำมากขึ้นเมื่อเทียบกับสิ่งอื่น ๆ ที่ฉันได้ลองเช่น KNN (ด้วยสิ่งที่ฉันคิดว่าเป็นพารามิเตอร์ที่สมเหตุสมผลและฟังก์ชันระยะทาง)

ดูเหมือนว่านี่จะคล้ายกับแบบจำลองทางการเงินที่คุณจัดการกับข้อมูลอนุกรมเวลา ความคิดใด ๆ


บางทีสมุดปกขาวนี้อาจมีประโยชน์ knime.org/files/knime_bigdata_energy_timeseries_whitepaper.pdfมันเกี่ยวกับการสร้างแบบจำลองอนุกรมเวลารวมถึงฤดูกาล - Rosaria
Rosaria

คำตอบ:


17

ปัญหาของตัวแบบเช่น KNN คือพวกเขาไม่คำนึงถึงฤดูกาล (แนวโน้มขึ้นอยู่กับเวลา) ในการพิจารณาสิ่งเหล่านี้คุณควรใช้การวิเคราะห์อนุกรมเวลา

สำหรับข้อมูลนับเช่นของคุณคุณสามารถใช้โมเดลเฉลี่ยเคลื่อนที่แบบถอยหลังอัตโนมัติเชิงเส้น (GLARMA) โชคดีที่มีแพ็กเกจ R ที่ใช้มัน ( glarma )

บทความเป็นทรัพยากรที่ดีสำหรับทฤษฎีที่อยู่เบื้องหลังเครื่องมือ


2
แพ็คเกจที่มีประโยชน์อื่น ๆ สำหรับการพยากรณ์และการวิเคราะห์อนุกรมเวลาคือการพยากรณ์โดย Prof. Rob J. Hyndman
Def_Os

คุณรู้หรือไม่ว่าสิ่งนี้ได้ถูกนำไปใช้ในภาษาอื่นหรือไม่? ฉันไม่ได้เป็นมืออาชีพอย่างแน่นอนกับอาร์ฉันจะอ่านบทความอย่างน้อยที่สุด
user1132959

ฉันไม่คุ้นเคยกับหนึ่ง หากคุณต้องการใช้ python คุณสามารถใช้แพ็คเกจrpy2เพื่อเรียกใช้ฟังก์ชัน glarma ในขณะที่ทำการเขียนโปรแกรมส่วนที่เหลือใน python ภาษาอื่นส่วนใหญ่มีตัวเชื่อมต่อเช่นกัน
Christopher Louden

10

ฉันคิดว่าคำตอบของคริสโตเฟอร์เป็นสิ่งที่สมเหตุสมผล ในฐานะที่เป็นแนวทางสำรอง (หรืออาจเป็นเพียงแค่นอกเหนือจากคำแนะนำที่เขาให้ไว้) ฉันอาจเริ่มต้นจากการมองภาพข้อมูลเล็กน้อยเพื่อลองรับความรู้สึกคร่าวๆว่าเกิดอะไรขึ้น

หากคุณยังไม่ได้ทำสิ่งนี้คุณอาจลองเพิ่มเดือนและวันที่ของสัปดาห์เป็นคุณลักษณะ - หากคุณติดกับ KNN สิ่งนี้จะช่วยให้แบบจำลองเลือกฤดูกาล

ในฐานะที่เป็นวิธีที่แตกต่างกันในการทำสิ่งนี้คุณอาจลองเริ่มต้นด้วยแบบจำลองพื้นฐานที่แท้จริง (เช่น OLS) .. สิ่งเหล่านี้มักจะไปไกลในการสร้างการทำนายที่สมเหตุสมผล

ในที่สุดยิ่งเรารู้ข้อมูลของคุณมากเท่าไหร่เราก็จะยิ่งช่วยสร้างคำแนะนำได้ง่ายขึ้นเท่านั้น ฟีเจอร์ที่คุณใช้ในปัจจุบันคืออะไร? เป็นต้น

หวังว่านี่จะช่วยได้ -


ใช่การสร้างภาพเป็นขั้นตอนแรกที่สำคัญในการวิเคราะห์ใด ๆ
Christopher Louden

ฉันเพิ่มคุณสมบัติเดือนเดือนของวันวันในสัปดาห์และปี ฉันลองใช้ค่า "ความเป็น" ที่ลดลงแบบเส้นตรง ฉันไม่คิดว่าฉันลองใช้ OLS แล้ว ฉันกำลังสังเกตกรอบเวลาที่สามารถอยู่ได้ทุกที่ตั้งแต่สองสามสัปดาห์จนถึงหลายปี เท่าที่เห็นภาพไปฉันก็พยายามทำเช่นนั้น ปัญหาคือเราต้องการซอฟต์แวร์ที่จะสามารถทำนายได้โดยอัตโนมัติโดยไม่ต้องมีการแทรกแซงของมนุษย์สำหรับลูกค้าที่แตกต่างกัน
user1132959

3

คุณสามารถลองใช้โครงข่ายประสาทเทียม คุณสามารถหาคำอธิบายที่ดี 2 กับวิธีการใช้ NN ในอนุกรมเวลาที่นี่และที่นี่

โปรดทราบว่าวิธีปฏิบัติที่ดีที่สุดคือ:

  • Deseasonalize / detrend ข้อมูลอินพุต (เพื่อให้ NN จะไม่เรียนรู้ฤดูกาล)
  • Rescale / Normalize ข้อมูลอินพุต

เพราะสิ่งที่คุณกำลังมองหาปัญหาการถดถอยฟังก์ชั่นการเปิดใช้งานที่ควรจะเป็นlinearและไม่ได้sigmoidหรือtanhและคุณมุ่งมั่นที่จะลดsum-of-squares error(ตามที่ฝ่ายค้านจะสูงสุดของnegative log-likelihoodปัญหาในการจัดหมวดหมู่)


ฉันเลือกใช้ตัวเลือก Neural Networks แต่ไม่ทราบว่าจะใช้พารามิเตอร์แบบใด ฉันจะต้องให้ยิงพวกนั้น
user1132959

Sigmoid และ Tanh นั้นดีต้องการความไม่เป็นเชิงเส้นในการเรียนรู้การโต้ตอบที่ซับซ้อนมากขึ้นและน้ำหนักจะทำแผนที่สิ่งเหล่านี้ในทุกช่วงเวลาที่เครือข่ายเห็นว่าจำเป็น
Jan van der Vegt

3

ดังที่ @Christopher Lauden ดังกล่าวข้างต้นการวิเคราะห์อนุกรมเวลาเหมาะสมที่สุดสำหรับสิ่งนี้ อย่างไรก็ตามหากคุณต้องการทำ "วิธีการเรียนรู้ด้วยเครื่อง" แบบดั้งเดิมมากกว่าเดิมบางสิ่งที่ฉันเคยทำในอดีตคือการบล็อกข้อมูลของคุณในหน้าต่างที่ซ้อนทับกันของเวลาเป็นคุณสมบัติจากนั้นใช้เพื่อทำนายวันถัดไป ) การจราจร

ฟีเจอร์เมทริกซ์ของคุณจะเป็นอย่างไร:

t1 | t2 | ... | tN
t2 | t3 | ... | tN+1
t3 | t4 | ... | tN+2
...
tW | tW+1 | ... |tN+W

ที่การจราจรในวันที่tI Iคุณลักษณะที่คุณคาดการณ์คือปริมาณการใช้งานในวันถัดจากคอลัมน์สุดท้าย ในสาระสำคัญให้ใช้หน้าต่างการรับส่งข้อมูลเพื่อทำนายปริมาณการใช้งานของวันถัดไป

ML รุ่นใดก็ได้ที่ใช้งานได้

แก้ไข

ในการตอบคำถามคุณสามารถอธิบายรายละเอียดเกี่ยวกับวิธีการใช้คุณสมบัติเมทริกซ์นี้ได้อย่างไร:

เมทริกคุณลักษณะมีค่าที่ระบุทราฟฟิกที่ผ่านมาในช่วงระยะเวลาหนึ่ง (ตัวอย่างเช่นทราฟฟิกแบบรายชั่วโมงในช่วง 1 สัปดาห์) และเราใช้สิ่งนี้ในการทำนายทราฟฟิกสำหรับช่วงเวลาที่ระบุในอนาคต เราใช้ข้อมูลในอดีตของเราและสร้างเมทริกซ์ฟีเจอร์ของการเข้าชมในอดีตและติดป้ายกำกับนี้กับการจราจรในบางช่วงในอนาคต (เช่น 2 วันหลังจากหน้าต่างในฟีเจอร์นี้) การใช้รูปแบบการเรียนรู้ของเครื่องถดถอยเราสามารถนำข้อมูลการจราจรในอดีตและลองสร้างแบบจำลองที่สามารถทำนายว่าการรับส่งข้อมูลเคลื่อนย้ายอย่างไรในชุดข้อมูลประวัติของเรา ข้อสันนิษฐานคือการรับส่งข้อมูลในอนาคตจะคล้ายกับการรับส่งข้อมูลในอดีต


คุณช่วยอธิบายรายละเอียดเกี่ยวกับวิธีที่คุณจะใช้เมทริกซ์ฟีเจอร์นี้ได้หรือไม่? คุณกำลังพยายามเรียนรู้จากการเปลี่ยนแปลงปริมาณการใช้งานข้ามวันหรือไม่?
user1132959

ฉันแก้ไขคำตอบเพื่อหวังว่าจะให้ความกระจ่างมากขึ้น
gallamine

2

ก่อนอื่นฉันจะไม่ใช้สิ่งต่าง ๆ เช่นการเรียนรู้ของเครื่องโดยไม่ต้องมีความรู้เชิงลึก สิ่งที่ง่ายฉันจะทำอย่างไรถ้าฉันมีซีรีส์เวลานี้คือ:

  1. เขียนข้อความค้นหา sql เพื่อทำความเข้าใจว่าคุณมีการจราจรหนาแน่นที่สุดโดยเฉลี่ยและต่ำสุดเท่าไร
  2. จากนั้นลองจินตนาการถึงอนุกรมเวลาทั้งหมดและคุณสามารถใช้อัลกอริธึมการจับคู่รูปแบบพื้นฐานเพื่อรับรูปแบบ

สองสิ่งนี้จะช่วยให้คุณเข้าใจว่าชุดข้อมูลของคุณบอกอะไรคุณ จากนั้นในมือคุณอาจจะอยู่ในสถานะที่ดีกว่าในการใช้อัลกอริทึมการเรียนรู้ของเครื่อง

นอกจากนี้ฉันกำลังทำงานในการสร้างบางสิ่งบางอย่างในอนุกรมเวลาและการใช้การวิเคราะห์อนุกรมเวลาจะช่วยคุณได้มากกว่าการเรียนรู้ของเครื่อง ตัวอย่างเช่นมีอัลกอริธึมการจดจำรูปแบบที่คุณสามารถใช้ที่ใช้ข้อมูลทุกวันเพื่อแสดงรูปแบบและที่ใช้ข้อมูลมากถึง 3 ถึง 6 เดือนในการจับรูปแบบ


0

ฉันจะแนะนำไม่ให้ใช้เครือข่ายประสาทหรือสิ่งที่เทียบเท่าฉันคิดว่าคุณมีประสบการณ์ที่ดีก่อนหน้านี้จากประสบการณ์การใช้งานของคุณกับร้านค้า (เช่นมีแนวโน้มแบบวันต่อวัน / ตามฤดูกาลและระดับความเรียบ) และ ฉันจินตนาการถึงข้อมูลจำนวนเล็กน้อย IMO ตัวเลือกที่ดีกว่าคือการใช้วิธีเคอร์เนลเช่นกระบวนการ Gaussian หรือ SVM


0

นำหัวข้อนี้กลับมามีชีวิตเช่นนี้อาจเป็นประโยชน์กับผู้อื่นที่มาที่นี่พร้อมกับคำถามที่คล้ายกัน

Facebookเพิ่งเปิดตัวและเป็นเครื่องมือการพยากรณ์ภายในที่เรียกว่าProphet https://facebookincubator.github.io/prophet/

มันมีให้เป็นทั้งแพ็คเกจ R & Python และพิสูจน์ให้เห็นว่าเป็นทางออกที่น่าสนใจสำหรับคนที่มีพื้นฐานการเรียนรู้ของเครื่องน้อย อย่างไรก็ตามความรู้ ML เพิ่มเติมบางอย่างอนุญาตให้ปรับแต่งและเพิ่มประสิทธิภาพโมเดลที่ผลิตขึ้น

ฉันแนะนำให้ลองศาสดาเป็นขั้นตอนแรก การชนะอย่างรวดเร็วของโซลูชันนี้คือความง่ายและความเร็วของการสร้างแบบจำลองและการทดสอบ: คุณสามารถรับการคาดการณ์แบบสืบเชื้อสายได้ในเวลาไม่กี่นาที มันทำงานได้เป็นอย่างดีในอนุกรมเวลาจับฤดูกาลของข้อมูลที่อยู่ในมือ "ตามธรรมชาติ"

ใต้ฝากระโปรงมันคล้ายกับโมเดลเสริมทั่วไป (GAM) - รายละเอียดเพิ่มเติมเกี่ยวกับกระดาษเฉพาะ: https://facebookincubator.github.io/prophet/static/prophet_paper_20170113.pdf

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.