2016-12-19 25 views
0

我有一個dataframe來預測能源消耗。列。是TimestampDaily KWH system無法在SVM模型中使用日期時間數據

當SVM模型中,我下面讓Value errorValueError: Unknown label type: array([ 0. , 127.2264855 , 80.74373643, ..., 7.67569729, 3.32998307, 2.08538807])

數據集包括能耗從9至12月 每半小時這裏有一個樣本數據集

  Timestamp     Daily_KWH_System 
0  2016-09-07 19:47:07  148.978580 
1  2016-09-07 19:47:07  104.084760 
2  2016-09-07 19:47:07  111.850947 
3  2016-09-07 19:47:07   8.421390 
4  2016-12-15 02:48:07   13.778317 
5  2016-12-15 02:48:07   0.637790 

到目前爲止我已經完成:

閱讀CSV

data = pd.read_csv('C:/Users/anagha/Documents/Python Scripts/Half_Ho.csv') 

索引

data['Timestamp'] = pd.to_datetime(data['Timestamp']) 
data.index = data['Timestamp'] 
del data['Timestamp'] 
data 

繪製圖形

data.resample('D', how='mean').plot() 

分成訓練和測試

from sklearn.utils import shuffle 

test = shuffle(test) 
train = shuffle(train) 

trainData = train.drop('Daily_KWH_System' , axis=1).values 
trainLabel = train.Daily_KWH_System.values 

testData = test.drop('Daily_KWH_System' , axis=1).values 
testLabel = test.Daily_KWH_System.values 

SVM模型

from sklearn import svm 
    model = svm.SVC(kernel='linear', gamma=1) 
    model.fit(trainData,trainLabel) 
    model.score(trainData,trainLabel) 

Predict Output

predicted= model.predict(testData) 
    print(predicted) 
+0

我認爲你需要分解的日期時間爲單個日期等元素。月,工作日,小時等 – josh

+0

那麼它不會是時間序列問題吧?任何其他方式? – Anagha

+0

這將是。也許有通讀這個:https://www.analyticsvidhya.com/blog/2016/06/winners-mini-datahack-time-series-approach-codes-solutions/。這是一個時間序列比賽,日期時間分解與XGBoost而不是SVM很好地結合。然而,我每天都在SVR上使用這種方法處理所有類型的能源數據,並且效果很好。 – josh

回答

1

SVC是支持向量分類。使用它會明確處理你的標籤。看起來你實際上正在嘗試做迴歸。 (注意你的錯誤,「未知的標籤類型」)。一個好的第一步將是檢查出SVR。或者你可以將你的價值觀融入課堂,例如0-10,10-20,等:

sklearn SVR

+0

我可以用來預測和檢測異常的任何其他算法 – Anagha

+1

如果您不按照建議對它們進行分箱,您需要一個無監督的學習算法來執行此操作,而無需使用標籤。 – josh

+0

@Anagha有許多異常檢測方法:https://en.wikipedia.org/wiki/Anomaly_detection最簡單的你可能是sklearn的一類SVM。 http://scikit-learn.org/stable/modules/outlier_detection.html – eqzx

相關問題