टाइम-डिलेयड फीचर्स और ऑटो-रेग्रेसिव मॉडल

Python में Time Series Data के लिए Machine Learning

Chris Holdgraf

Fellow, Berkeley Institute for Data Science

अतीत उपयोगी है

  • टाइमसीरीज़ डेटा में अक्सर अलग-अलग समय बिंदुओं के बीच साझा जानकारी होती है.
  • अतीत की जानकारी भविष्य की भविष्यवाणी में मदद करती है.
  • अक्सर किसी टाइमसीरीज़ की सबसे अच्छी फीचर्स उसी टाइमसीरीज़ के पिछले मान होते हैं.
Python में Time Series Data के लिए Machine Learning

स्मूदनेस और ऑटो-कोरिलेशन पर नोट

  • टाइमसीरीज़ से जुड़ा आम सवाल: डेटा कितना स्मूद है.
  • यानी, एक समय बिंदु अपने पड़ोसियों से कितना सह-संबद्ध है (इसे autocorrelation कहते हैं).
  • डेटा में ऑटो-कोरिलेशन की मात्रा आपके मॉडलों को प्रभावित करेगी.
Python में Time Series Data के लिए Machine Learning

टाइम-लैग्ड फीचर्स बनाना

  • देखें, अतीत के मानों को इनपुट फीचर्स की तरह लेकर मॉडल कैसे बनता है.
  • इससे आप सिग्नल का ऑटो-कोरिलेशन आँक सकते हैं (और बहुत कुछ भी).
Python में Time Series Data के लिए Machine Learning

Pandas के साथ टाइम-शिफ्टिंग

print(df)
         df 
    0   0.0
    1   1.0 
    2   2.0 
    3   3.0 
    4   4.0 
# DataFrame/Series को 3 इंडेक्स मान अतीत की ओर शिफ्ट करें
print(df.shift(3))
         df
    0   NaN
    1   NaN
    2   NaN
    3   0.0
    4   1.0
Python में Time Series Data के लिए Machine Learning

टाइम-शिफ्टेड DataFrame बनाना

# data एक pandas Series है जिसमें time series डेटा है
data = pd.Series(...)

# Shifts
shifts = [0, 1, 2, 3, 4, 5, 6, 7]

# टाइम-शिफ्टेड डेटा की डिक्शनरी बनाएँ
many_shifts = {'lag_{}'.format(ii): data.shift(ii) for ii in shifts}

# इन्हें DataFrame में बदलें
many_shifts = pd.DataFrame(many_shifts)
Python में Time Series Data के लिए Machine Learning

टाइम-शिफ्टेड फीचर्स के साथ मॉडल फिट करना

# इन इनपुट फीचर्स से मॉडल फिट करें
model = Ridge() 
model.fit(many_shifts, data)
Python में Time Series Data के लिए Machine Learning

ऑटो-रेग्रेसिव मॉडल के कोएफ़िशिएंट्स समझना

# फिट मॉडल के कोएफ़िशिएंट्स देखें
fig, ax = plt.subplots()
ax.bar(many_shifts.columns, model.coef_)
ax.set(xlabel='Coefficient name', ylabel='Coefficient value')

# फॉर्मैटिंग ताकि ग्राफ़ साफ दिखे
plt.setp(ax.get_xticklabels(), rotation=45, horizontalalignment='right')
Python में Time Series Data के लिए Machine Learning

रफ सिग्नल के कोएफ़िशिएंट्स का विज़ुअलाइज़ेशन

Python में Time Series Data के लिए Machine Learning

स्मूद सिग्नल के कोएफ़िशिएंट्स का विज़ुअलाइज़ेशन

Python में Time Series Data के लिए Machine Learning

अभ्यास करते हैं!

Python में Time Series Data के लिए Machine Learning

Preparing Video For Download...