Python में Time Series Data के लिए Machine Learning
Chris Holdgraf
Fellow, Berkeley Institute for Data Science
# "split" मेथड पर इटरेट करने से train/test इंडिस मिलते हैं
for tr, tt in cv.split(X, y):
model.fit(X[tr], y[tr])
model.score(X[tt], y[tt])
KFold क्रॉस-वैलिडेशन आपका डेटा बराबर साइज़ के कई "folds" में बाँटता हैयह सबसे आम क्रॉस-वैलिडेशन रूटीन में से एक है
from sklearn.model_selection import KFold
cv = KFold(n_splits=5)
for tr, tt in cv.split(X, y):
...
fig, axs = plt.subplots(2, 1)
# हर लूप में वैलिडेशन के लिए चुनी गई इंडिस प्लॉट करें
axs[0].scatter(tt, [0] * len(tt), marker='_', s=2, lw=40)
axs[0].set(ylim=[-.1, .1], title='टेस्ट सेट इंडिस (color=CV loop)',
xlabel='कच्चे डेटा की इंडेक्स')
# हर इटरेशन पर मॉडल की प्रेडिक्शंस प्लॉट करें
axs[1].plot(model.predict(X[tt]))
axs[1].set(title='हर CV लूप पर टेस्ट सेट प्रेडिक्शंस',
xlabel='प्रेडिक्शन इंडेक्स')

टाइमसीरीज़ पर प्रेडिक्शन करते समय डेटा को shuffle नहीं करना चाहिए.
from sklearn.model_selection import ShuffleSplit
cv = ShuffleSplit(n_splits=3)
for tr, tt in cv.split(X, y):
...

# क्रॉस-वैलिडेशन इटरेटर इम्पोर्ट और इनिशियलाइज़ करें
from sklearn.model_selection import TimeSeriesSplit
cv = TimeSeriesSplit(n_splits=10)
fig, ax = plt.subplots(figsize=(10, 5))
for ii, (tr, tt) in enumerate(cv.split(X, y)):
# ट्रेनिंग और टेस्ट इंडिस प्लॉट करें
l1 = ax.scatter(tr, [ii] * len(tr), c=[plt.cm.coolwarm(.1)],
marker='_', lw=6)
l2 = ax.scatter(tt, [ii] * len(tt), c=[plt.cm.coolwarm(.9)],
marker='_', lw=6)
ax.set(ylim=[10, -1], title='TimeSeriesSplit behavior',
xlabel='data index', ylabel='CV iteration')
ax.legend([l1, l2], ['Training', 'Validation'])

def myfunction(estimator, X, y):
y_pred = estimator.predict(X)
my_custom_score = my_custom_function(y_pred, y)
return my_custom_score
def my_pearsonr(est, X, y):
# प्रेडिक्शंस बनाकर वेक्टर में बदलें
y_pred = est.predict(X).squeeze()
# numpy के "corrcoef" फंक्शन से कॉरिलेशन मैट्रिक्स निकालें
my_corrcoef_matrix = np.corrcoef(y_pred, y.squeeze())
# मैट्रिक्स से एकल कॉरिलेशन वैल्यू लौटाएँ
my_corrcoef = my_corrcoef[1, 0]
return my_corrcoef
Python में Time Series Data के लिए Machine Learning