0

我開始使用天真的數值預測。這裏是訓練數據使用機器學習的數值預測

https://gist.github.com/karimkhanp/75d6d5f9c4fbaaaaffe8258073d00a75

測試數據

https://gist.github.com/karimkhanp/0f93ecf5fe8ec5fccc8a7f360a6c3950

我寫的基本scikit學習代碼進行訓練和測試。

import pandas as pd 
import pylab as pl 
from sklearn import datasets 
from sklearn import metrics, linear_model 
from sklearn.linear_model import LogisticRegression, LinearRegression, BayesianRidge, OrthogonalMatchingPursuitCV, SGDRegressor 
from datetime import datetime, date, timedelta 

class NumericPrediction(object): 
    def __init__(self): 
     pass 
    def dataPrediction(self): 
     Train = pd.read_csv("data_scientist_assignment.tsv", sep='\t', parse_dates=['date']) 
     Train_visualize = Train 
     Train['timestamp'] = Train.date.values.astype(pd.np.int64) 
     Train_visualize['date'] = Train['timestamp'] 
     print Train.describe() 
     x1=["timestamp", "hr_of_day"] 
     test=pd.read_csv("test.tsv", sep='\t', parse_dates=['date']) 
     test['timestamp'] = test.date.values.astype(pd.np.int64) 
     model = LinearRegression() 
     model.fit(Train[x1], Train["vals"]) 
     # print(model) 
     # print model.score(Train[x1], Train["vals"]) 
     print model.predict(test[x1]) 

     Train.hist() 
     pl.show() 

if __name__ == '__main__': 
    NumericPrediction().dataPrediction() 

但是這裏的精度非常低。因爲方法很幼稚。任何更好的建議,以提高準確性(在算法,例子,參考,圖書館)?

回答

3

對於初學者,您的'測試'集看起來不正確。請檢查一下。其次,你的模型註定要失敗。繪製你的數據 - 你看到了什麼?很明顯,我們在這裏有季節性,而線性迴歸假設觀測值是獨立的。請務必注意,您在時間系列處理此處。

R語言在時間序列方面非常出色,具有用於時間序列預測的高級包,如bsts。儘管如此,Python在這裏還是一樣的好。 熊貓模塊將爲您服務。注意你可能不一定要在這裏使用機器學習。檢查ARMAARIMABayesian structural time series也很棒。

Here是一篇很好的文章,指導您處理時間序列數據的基本知識。