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 здесь будет так же хорош. Модуль Pandas будет служить вам хорошо. Имейте в виду, что вы, возможно, не обязательно должны использовать машинное обучение здесь. Проверка ARMA и ARIMA. Bayesian structural time series также отличные.

Here - очень хорошая статья, которая поможет вам разобраться с данными временных рядов.

Смежные вопросы