2015-05-20 18 views
5

SVM tabanlı tahmin için tam bir yeni kullanıcıyım ve bu yüzden bazı rehberlik arıyorum. Scikit-learn'in SVM kütüphanelerini kullanarak bir zaman serisini tahmin etmek için bir python kodu oluşturmaya çalışıyorum.scikit ile zaman serileri tahmini

Verilerim son 24 saat için 30 dakikalık aralıklarla X değerleri içeriyor ve bir sonraki zaman damgası için y değerini tahmin etmem gerekiyor.

SVR(kernel='linear', C=1e3).fit(X, y).predict(X) 

Ama bu tahmin çalışması için, ben kullanılamaz sonraki zaman damgası, X değerine ihtiyacımız - İşte ben kurdunuz budur. Gelecek y değerlerini tahmin etmek için bunu nasıl ayarlayabilirim?

# prepare model and set parameters 
svr_model = SVR(kernel='linear', C=1e3) 
# fit your model with the training set 
svr_model.fit(TRAINIG_SET, TAINING_LABEL) 
#predict on a test set 
svr_model.predict(TEST_SET) 

Yani, burada sorun bir set eğitim ancak modeliniz doğruluğunu ölçmek için ayarlanmış bir test olması:

cevap

3

Sen SVR bu şekilde kullanmalıdır. Test ben de size yorumlardan istediğini anlamış ex: 80% for train 20% for test

DÜZENLEME

Umut belirtilen tek çözüm set eğitiminizin bir parçası kullanmaktır.

from sklearn.svm import SVR 
import random 
import numpy as np 

''' 
data: the train set, 24 elements 
label: label for each time 
''' 

data = [10+y for y in [x * .5 for x in range(24)]] 
label = [z for z in [random.random()]*24] 

# reshaping the train set and the label ... 

DATA = np.array([data]).T 
LABEL = np.array(label) 

# Declaring model and fitting it 

clf = SVR(kernel='linear', C=1e3) 
clf.fit(DATA, LABEL) 

# predict the next label 

to_predict = DATA[DATA[23,0]+0.5] 

print clf.predict(to_predict) 

>> 0.94407674 
+0

hala bana yardım etmez:

Yani tren setinde son bir saat için bir sonraki etiket tahmin etmek istiyorum, burada ne istediğinizi bir örnektir. Eğitim setimi bölsem bile, gelecekte tahmin etmek istediğim nokta için bir X değerine sahip değilim. – Raj

+0

Gelecekte tahmin etmek istediğiniz nokta nedir? – farhawa

+1

Zaman serisindeki bir sonraki nokta, yani, t zamanında, t + 1 – Raj

İlgili konular