机器学习的数值预测

时间:2016-12-18 05:38:33

标签: python machine-learning statistics neural-network classification

我开始进行天真的数值预测。这是培训数据

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()

但这里的准确度非常低。因为方法很幼稚。有什么更好的建议来提高准确性(在算法,例子,参考,库方面)?

1 个答案:

答案 0 :(得分:3)

对于初学者,您的“测试”设置看起来不正确。请检查一下。

其次,你的模型注定要失败。绘制数据 - 你看到了什么?显然,我们在这里有一个季节性,而线性回归假设观察是独立的。重要的是要注意你在这里处理时间序列

R语言在时间序列方面非常出色,使用高级软件包进行时间序列预测,例如 bsts 。不过,这里的Python也同样出色。 Pandas 模块将为您提供良好的服务。请注意,您可能不一定要在这里使用机器学习。检查 ARMA ARIMA Bayesian structural time series也非常出色。

Here是一篇非常好的文章,它指导您完成处理时间序列数据的基础知识。