0

私は素朴な数値予測から始めました。ここで訓練するためのコードとテストを学び、私は基本的なscikit書いたトレーニングデータ機械学習を使用した数値予測

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

テストデータ

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

です。

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

初心者の場合は、「テスト」セットが正しく表示されません。これをチェックしてください。

第2に、あなたのモデルは失敗することになります。あなたのデータをプロット - あなたは何を見ますか?明らかに、ここでは季節性がありますが、線形回帰では観測値は独立していると仮定しています。ここでは、時系列のを扱っていることを確認することが重要です。

時系列の場合はR言語が優れており、時系列予測のための高度なパッケージはとbstsのようになります。それでも、ここのPythonはまあまあです。 Pandasモジュールがうまく機能します。ここで機械学習を使う必要はないかもしれません。 ARMAおよびARIMAを確認してください。 Bayesian structural time seriesも優れています。

Hereは、時系列データを扱う際の基本を案内する非常に良い記事です。

関連する問題