lazzy_decomposion.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:Power-Consumption-Prediction 作者: YoungGod 项目源码 文件源码
def choose_best_lag(seq, pre_period, lags = range(1,30), Kmax = 200):
    """
    ????lazzy model,?????
    ???(?????????)
    """
    models = []
    # ???
    std_sca = StandardScaler().fit(np.array(seq).reshape(-1,1))
#    rob_sca = RobustScaler().fit(np.array(seq).reshape(-1,1))
    seq = std_sca.transform(np.array(seq).reshape(-1,1))

    # ????????????,???????
    from sklearn.model_selection import train_test_split
    for input_lag in lags:
#        window = input_lag + pre_period
        X, Y = create_dataset(seq.flatten(), input_lag, pre_period)
#        lazzy_models = lazzy_loo(X[-1], X[0:-1], Y[:-1], Kmax)
#        y_pred = lazzy_prediction(X[-1], X[0:-1], Y[:-1], lazzy_models)
#        err = err_evaluation(y_pred.flatten(), Y[-1])
#
#        lazzy_models.sort()
#        models.append((err, input_lag, lazzy_models[0][1]))
        # do more cv
#        for state in range(0,3):
        err = 0.0
        X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.01, random_state=0)
        for x_q,y_q in zip(X_test,y_test):
            lazzy_models = lazzy_loo(x_q, X_train, y_train, Kmax)
            y_pred = lazzy_prediction(x_q, X_train, y_train, lazzy_models)
            err += err_evaluation(y_pred.flatten(), y_q)
        lazzy_models.sort()
        models.append((err/len(X_test), input_lag, lazzy_models[0][1]))
    models.sort()
    best_lag = models[0][1]
    best_k = models[0][2]
#    fig, ax = plt.subplots()
#    ax.plot(y_pred.flatten(),label='prediction')
#    ax.plot(Y[-1],label='real')
#    ax.set_title('best cv lags')
    return models, best_lag, best_k
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号