五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

人工智能學(xué)習(xí)文件qoiqwetoiu

2023-06-30 15:05 作者:我需要重新集結(jié)部隊嗎  | 我要投稿

#!/usr/bin/env python

# coding: utf-8


# #? 導(dǎo)入數(shù)據(jù)分析和建模所需要的庫


# In[1]:



import pandas as pd

from pandas import Series,DataFrame

import numpy as np

import matplotlib.pyplot as plt

import seaborn as sn

import random

import time

from datetime import datetime

import cufflinks as cf

cf.go_offline()

import plotly

print(plotly.__version__) # requires version >= 1.9.0

from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot

import plotly.express as px

import plotly.graph_objects as go


# for the ML pipeline

from sklearn.model_selection import train_test_split

from sklearn.impute? import SimpleImputer

from sklearn.preprocessing import OrdinalEncoder

from sklearn.feature_selection import SelectFromModel

import sklearn.datasets as datasets

from sklearn import preprocessing

le = preprocessing.LabelEncoder()

#導(dǎo)入機器學(xué)習(xí)算法模型

from sklearn.neighbors import KNeighborsRegressor

from sklearn.linear_model import LinearRegression

from sklearn.linear_model import Ridge

from sklearn.linear_model import HuberRegressor

from sklearn.tree import DecisionTreeRegressor

from sklearn.svm import SVR


from sklearn.linear_model import Lasso

from sklearn.neural_network import MLPRegressor

from sklearn.tree import ExtraTreeRegressor

from xgboost import XGBRegressor

from sklearn.ensemble import RandomForestRegressor

from sklearn.ensemble import AdaBoostRegressor

from sklearn.ensemble import GradientBoostingRegressor

from sklearn.ensemble import BaggingRegressor

import lightgbm as lgb

import xgboost as xgb

from xgboost import plot_importance, plot_tree

from statsmodels.tools.eval_measures import mse,rmse

from sklearn.model_selection import GridSearchCV

from xgboost import XGBRegressor

import warnings

import pickle


#切割訓(xùn)練數(shù)據(jù)和樣本數(shù)據(jù)

from sklearn.model_selection import train_test_split


#用于模型評分

from sklearn.metrics import mean_squared_error, r2_score, mean_absolute_error

from sklearn.metrics import explained_variance_score, median_absolute_error


random.seed(100)


get_ipython().run_line_magic('matplotlib', 'inline')


# from statsmodels.tsa.arima.model import ARIMA

# import statsmodels.api as sm

# from statsmodels.tsa.statespace.sarimax import SARIMAX


# import keras

# import tensorflow as tf

# from keras.preprocessing.sequence import TimeseriesGenerator

# from keras.models import Sequential

# from keras.layers import LSTM, Dense



# # 導(dǎo)入并處理數(shù)據(jù)


# In[2]:



pd.set_option('display.max_rows',100)??

pd.set_option('display.max_columns',100)?


#Import the data and parse dates.

df_test = pd.read_csv('data/液化氣_日度價格預(yù)測數(shù)據(jù)20211026.csv')

df_test['Date']=pd.to_datetime(df_test['Date'],? format='%d/%m/%Y',infer_datetime_format=True)

#df_test.tail(50)



# In[4]:



#df_test.tail(50)



# # 缺失值處理


# In[3]:



# 特征工程函數(shù)

# 增加差分列

def create_diff_features(df, columns=[], ignore=[], ignore_first=True):

? ? if len(columns)==0:

? ? ? ? columns = df.columns

? ? if ignore_first:

? ? ? ? ignore.append(df.columns[0])

? ? for col in columns:

? ? ? ? if col not in ignore:

? ? ? ? ? ? try:

? ? ? ? ? ? ? ? df[col+"_d"] = df[col].diff()

? ? ? ? ? ? except:

? ? ? ? ? ? ? ? pass

? ? return df


# 與目標(biāo)值之差

def create_target_minus(df, target="", columns=[]):

? ? if target=="":

? ? ? ? target = df.columns[0]

? ? if len(columns)==0:

? ? ? ? columns = df.columns

? ? for col in columns:

? ? ? ? if col != target:

? ? ? ? ? ? try:

? ? ? ? ? ? ? ? df[col+"_m"] = df[col]-df[target]

? ? ? ? ? ? except: pass

? ? return df


# 與目標(biāo)值之積

def create_target_divide(df, target="", columns=[]):

? ? if target=="":

? ? ? ? target = df.columns[0]

? ? if len(columns)!=0:

? ? ? ? columns = df.columns

? ? for col in columns:

? ? ? ? if col != target:

? ? ? ? ? ? try:

? ? ? ? ? ? ? ? df[col+"_t"] = df[col]/df[target]

? ? ? ? ? ? except: pass

? ? return df


# 增加日期列

def create_date_features(series):

? ? #serie = series.transpose()

? ? df_products = series

? ? df_products["Date"] = pd.to_datetime(df_products["Date"])

? ? df_products["quarter"] = df_products["Date"].dt.quarter.astype("uint8")

? ? df_products["Month"] = df_products["Date"].dt.month.astype("uint8")

? ? df_products["dayofyear"] = df_products["Date"].dt.dayofyear.astype("uint8")

? ? df_products["dayofmonth"] = df_products["Date"].dt.day.astype("uint8")

? ? df_products["dayofweek"] = df_products["Date"].dt.dayofweek.astype("uint8")

? ? df_products.index = df_products.Date

? ? df_products = df_products.drop(["Date"], axis= 1)


? ? #df_products["T-1"] = np.append(df_products.Price.values[0],df_products.Price.values[:-1])

? ? #df_products["T-7"] = np.append([df_products.Price.values[0] for _ in range(7)],df_products.Price.values[:-7])

? ??

? ? #Cheat

? ? #df_products["P-1"] = df_products.Price.values

? ? #df_products["P-2"] = df_products.Price.diff().values

? ??

? ? return df_products



# In[4]:



# 根據(jù)需要預(yù)測的日期(這里是2021-09-06)調(diào)整日期,此處預(yù)測9月6號日度價格

#df_test=df_test[(df_test['Date']<='2021-09-16')]


#查看每個特征缺失值

MisVal_Check=df_test.isnull().sum().sort_values(ascending=False)

#print(MisVal_Check.head(39))


#查看每個特征缺失值的百分比

df_MisVal_Check = pd.DataFrame(MisVal_Check,)#

df_MisVal_Check_1=df_MisVal_Check.reset_index()

df_MisVal_Check_1.columns=['Variable_Name','Missing_Number']?

df_MisVal_Check_1['Missing_Number']=df_MisVal_Check_1['Missing_Number']/len(df_test)


#去掉缺失值百分比>threshold的特征

threshold = 0.5

#Dropping columns with missing value rate higher than threshold

df_test_1 = df_test[df_test.columns[df_test.isnull().mean() < threshold]]

#df_test_1=df_test.drop(df_MisVal_Check_1[df_MisVal_Check_1['Missing_Number']>0.4].Variable_Name,axis = 1)


#補充缺失值:將缺失值補為前一個或者后一個數(shù)值

df_test_1=df_test_1.fillna(df_test.ffill())

df_test_1=df_test_1.fillna(df_test_1.bfill())

#df_test_1['year']=df_test_1['Date'].dt.year.astype("str")


#特征工程:

df_test_2 = df_test_1.copy()

cols = df_test_1.columns.values

# 自差分

#df_test_2=create_diff_features(df_test_2, columns=cols, ignore=["Price","Date"])

# 與目標(biāo)值之差

#df_test_2=create_target_minus(df_test_2, target="Price", columns=cols)

# 日期

df_test_2=create_date_features(df_test_2)


df_test_3=df_test_2.drop(['year','星期幾'],axis=1, errors='ignore')

#df_test_3=df_test_2.drop(['year','星期幾','節(jié)假日','調(diào)休上班','突發(fā)事件'],axis=1, errors='ignore')


#---------------------------------------------------

#將節(jié)假日和調(diào)休兩列從文字格式轉(zhuǎn)化為分類格式

le.fit(df_test_3['節(jié)假日'])

df_test_3['節(jié)假日']=le.transform(df_test_3['節(jié)假日'])


#------------------------------------------------------

le.fit(df_test_3['調(diào)休上班'])

df_test_3['調(diào)休上班']=le.transform(df_test_3['調(diào)休上班'])

#------------------------------------------------------

#------------------------------------------------------

le.fit(df_test_3['突發(fā)事件'])

df_test_3['突發(fā)事件']=le.transform(df_test_3['突發(fā)事件'])

#------------------------------------------------------



# In[251]:



#cols



# In[83]:



#df_test_3



# In[190]:



#add_d_columns(df_test_3)



# In[ ]:






# # 建模&預(yù)測


# In[6]:



#定義plot_feature_importance函數(shù),該函數(shù)用于計算特征重要性。此部分代碼無需調(diào)整

def plot_feature_importance(importance,names,model_type):

? ? feature_importance = np.array(importance)

? ? feature_names = np.array(names)

? ??

? ? data={'feature_names':feature_names,'feature_importance':feature_importance}

? ? fi_df = pd.DataFrame(data)

? ??

? ? fi_df.sort_values(by=['feature_importance'], ascending=False,inplace=True)

? ??

? ? plt.figure(figsize=(10,8))

? ? sn.barplot(x=fi_df['feature_importance'], y=fi_df['feature_names'])

? ??

? ? plt.title(model_type + " "+'FEATURE IMPORTANCE')

? ? plt.xlabel('FEATURE IMPORTANCE')

? ? plt.ylabel('FEATURE NAMES')

? ? plt.show()

? ??

plt.rcParams['font.sans-serif'] = [u'SimHei']

plt.rcParams['axes.unicode_minus'] = False


# 效果展示函數(shù)


# 訓(xùn)練效果展示

def visualize_loss(history, title):

? ? loss = history.history["loss"]

? ? val_loss = history.history["val_loss"]

? ? epochs = range(len(loss))

? ? plt.figure()

? ? plt.plot(epochs, loss, "b", label="Training loss")

? ? plt.plot(epochs, val_loss, "r", label="Validation loss")

? ? plt.title(title)

? ? plt.xlabel("Epochs")

? ? plt.ylabel("Loss")

? ? plt.legend()

? ? plt.show()

? ??

# 畫預(yù)測效果刺猬圖:labels第一個是真實列,后面是預(yù)測列

def plot_prediction(df_results, labels, time_label="Date", draw_spike=True, draw_point=True, draw_line=False):

? ? plt.rcParams["figure.figsize"] = (10,6)

? ? #colors = ['crimson', 'coral', 'orange', 'red', 'lightcoral', 'gold']

? ? colors = ['red','gold','blue','purple','orange','green','violet']

? ? try:

? ? ? ? time_steps = df_results[time_label]

? ? except:

? ? ? ? time_steps = df_results.index

? ? ? ??

? ? #顯示真實值

? ? plt.plot(time_steps, df_results[labels[0]], color="grey", alpha=0.5, label=labels[0])

? ??

? ? #顯示預(yù)測值

? ? if draw_spike:

? ? ? ? true_val = df_results[labels[0]].values

? ? ? ? for i, val in enumerate(labels[1:]):

? ? ? ? ? ? pred = df_results[val].values

? ? ? ? ? ? plt.plot(time_steps[:2], [true_val[0],pred[1]], color=colors[i], alpha=0.5, label=labels[i+1])

? ? ? ? ? ? for j in range(1,df_results.shape[0]-1):

? ? ? ? ? ? ? ? plt.plot(time_steps[j:j+2], [true_val[j],pred[j+1]], color=colors[i], alpha=0.5)


? ? #顯示預(yù)測點圖? ? ?

? ? if draw_point:

? ? ? ? plt.scatter(time_steps, df_results[labels[0]], color="grey", alpha=0.5, s=5)

? ? ? ? for i, val in enumerate(labels[1:]):

? ? ? ? ? ? pred = df_results[val]

? ? ? ? ? ? plt.scatter(time_steps, pred, color=colors[i], alpha=0.5, s=5)

? ? ? ??

? ? #顯示預(yù)測線圖? ? ?

? ? if draw_line:

? ? ? ? for i, val in enumerate(labels[1:]):

? ? ? ? ? ? pred = df_results[val]

? ? ? ? ? ? plt.plot(time_steps, pred, color=colors[i], alpha=0.5)


? ? plt.legend()

? ? plt.xlim([time_steps[0], time_steps[-1:]])

? ? plt.xlabel("時間軸")

? ? plt.show()



# In[7]:



df_product=df_test_3.iloc[:,:].copy()

#df_product.iloc[:,0] = df_product.iloc[:,0].diff()


X_train=df_product.iloc[1:-14,1:]

y_train=df_product.iloc[1:-14,0]

? ??

X_test=df_product.iloc[-15:,1:]

y_test=df_product.iloc[-15:,0]



# In[86]:



#X_train



# In[8]:



warnings.filterwarnings("ignore")


# Grid search for best parameters

estimator = XGBRegressor(random_state=0,

?#objective='reg:linear',

nthread=4,

seed=42

)


# Round 4 get best parameters?

parameters =? {

? ? ? ? ? ? ? 'max_depth': [10],

? ? ? ? ? ? ? 'learning_rate': [ 0.4],

? ? ? ? ? ? ? 'min_split_loss':[0,1],

? ? ? ? ? ? ? 'n_estimators': [15],

? ? ? ? ? ? ? 'min_child_weight': [6,7,8],

? ? ? ? ? ? ? 'max_delta_step': [0],

? ? ? ? ? ? ? 'subsample': [0.6,0.7,0.8],

? ? ? ? ? ? ? 'colsample_bytree': [1.0],

? ? ? ? ? ? ? 'reg_alpha':[0,0.2],

? ? ? ? ? ? ? 'reg_lambda': [0,0.05],

? ? ? ? ? ? ? 'scale_pos_weight': [0.05,0.1,]


}


? ? #################? ??


grid_search = GridSearchCV(

? ? ? ? ? ? ? estimator=estimator,

? ? ? ? ? ? ? param_grid=parameters,

? ? #scoring = 'roc_auc',

? ? #n_jobs = 10,

? ? cv = 3,

? ? verbose=True

? ? )

? ??

warnings.filterwarnings("ignore")

? ??

grid_search.fit(X_train, y_train)

? ??


###############################################################################


estimator_GBR = GradientBoostingRegressor(criterion='mse',random_state=0,)


parameters_GBR = {

? ? ? ? ? ? ?'n_estimators':[99,100,101],?

? ? ? ? ? ? 'learning_rate': [0.1,0.2],?

? ? ? ? ? ? 'max_depth':[6,7,8],?

? ? ? ? ? ? 'min_samples_leaf':[1,2,3,4],?

? ? ? ? ? ? 'max_features':[5,6,7]

? ? ? ? ? ??


}



grid_search_GBR = GridSearchCV(

? ? ? ? estimator=estimator_GBR,

? ? ? ? param_grid=parameters_GBR,

? ? ? ? #scoring = 'roc_auc',

? ? ? ? #n_jobs = 10,

? ? ? ? cv = 3,

? ? ? ? verbose=True

? ? )


grid_search_GBR.fit(X_train, y_train)

? ??


###############################################################################

estimator_RF = RandomForestRegressor(criterion='mse',random_state=0)


parameters_RF = {

? ? ? ? ? ? 'bootstrap': [False],

? ? ? ? ? ? ?'max_depth': [10,None],

? ? ? ? ? ? ?'max_features': ['sqrt'],

? ? ? ? ? ? ?'min_samples_leaf': [1],

? ? ? ? ? ? ?'min_samples_split': [2],

? ? ? ? ? ? ?'n_estimators':[94,100] #range(5,110,1)#[9,10,11],


}



grid_search_RF = GridSearchCV(

? ? ? ? estimator=estimator_RF,

? ? ? ? param_grid=parameters_RF,

? ? ? ? #scoring = 'roc_auc',

? ? ? ? #n_jobs = 10,

? ? ? ? cv = 15,

? ? ? ? verbose=True

? ? )


grid_search_RF.fit(X_train, y_train)


###############################################################################

estimator_BaggingR = BaggingRegressor(random_state=0,)


n_samples = X_train.shape[0]

n_features = X_train.shape[1]


parameters_BaggingR = {

? ? ? ? ? ?

? ? ? ? ? 'n_estimators': [ 101,102,103],

? ? ? ? ? 'max_samples': [1.0,],

? ? ? ? ? 'max_features': [0.4,1.0],

? ? ? ? ? 'bootstrap': [ False],

? ? ? ? ? 'bootstrap_features': [True]


}



grid_search_BaggingR = GridSearchCV(

? ? ? ? estimator=estimator_BaggingR,

? ? ? ? param_grid=parameters_BaggingR,

? ? ? ? #scoring = 'roc_auc',

? ? ? ?# n_jobs = 10,

? ? ? ? cv = 22,

? ? ? ? verbose=True

? ? )


grid_search_BaggingR.fit(X_train, y_train)



# In[9]:



future_days_test=X_train.copy() #createFeatures(future_days)

? ? ? ? ? ? ? ? ? ? ??

future_days_test['XGB_PREDICTIONS'] = grid_search.predict(X_train)

future_days_test['GBR_PREDICTIONS'] = grid_search_GBR.predict(X_train)? ??

future_days_test['RF_PREDICTIONS'] = grid_search_RF.predict(X_train)?

future_days_test['BaggingR_PREDICTIONS'] = grid_search_BaggingR.predict(X_train)

future_days_test['Stacking_Model_PREDICTIONS']=future_days_test['RF_PREDICTIONS'] *0.25 + future_days_test['GBR_PREDICTIONS']*0.35 + \

future_days_test['BaggingR_PREDICTIONS']*0.25 + future_days_test['XGB_PREDICTIONS']*0.15



# In[10]:



print("XGB")

print("Best score: %.3f" % grid_search.best_score_)

print("Best parameters set:")

best_parameters = grid_search.best_estimator_.get_params()

for param_name in parameters.keys():

? ? print("\t%s: %r" % (param_name, best_parameters[param_name]))

plot_feature_importance(grid_search.best_estimator_.feature_importances_, X_train.columns,'XGB')


print("GBR")

print("Best score: %.3f" % grid_search_GBR.best_score_)

print("Best parameters set:")

best_parameters = grid_search_GBR.best_estimator_.get_params()

for param_name in parameters_GBR.keys():

? ? print("\t%s: %r" % (param_name, best_parameters[param_name]))

plot_feature_importance(grid_search_GBR.best_estimator_.feature_importances_, X_train.columns,'GBR')


print("RF")

print("Best score: %.3f" % grid_search_RF.best_score_)

print("Best parameters set:")

best_parameters = grid_search_RF.best_estimator_.get_params()

for param_name in parameters_RF.keys():

? ? print("\t%s: %r" % (param_name, best_parameters[param_name]))

plot_feature_importance(grid_search_RF.best_estimator_.feature_importances_, X_train.columns,'RF')


print("BAGG")

print("Best score: %.3f" % grid_search_BaggingR.best_score_)

print("Best parameters set:")

best_parameters = grid_search_BaggingR.best_estimator_.get_params()

for param_name in sorted(parameters_BaggingR.keys()):

? ? print("\t%s: %r" % (param_name, best_parameters[param_name]))

#plot_feature_importance(grid_search_BaggingR.best_estimator_.feature_importances_, X_train.columns,'BAGG')



# In[12]:



future_days_test=X_train.copy() #createFeatures(future_days)

? ? ? ? ? ? ? ? ? ? ??

future_days_test['XGB_PREDICTIONS'] = grid_search.predict(X_train)

future_days_test['GBR_PREDICTIONS'] = grid_search_GBR.predict(X_train)? ??

future_days_test['RF_PREDICTIONS'] = grid_search_RF.predict(X_train)?

future_days_test['BaggingR_PREDICTIONS'] = grid_search_BaggingR.predict(X_train)

future_days_test['Stacking_Model_PREDICTIONS']=future_days_test['RF_PREDICTIONS'] *0.25 + future_days_test['GBR_PREDICTIONS']*0.35 + future_days_test['BaggingR_PREDICTIONS']*0.25 + future_days_test['XGB_PREDICTIONS']*0.15

#future_days_test['Stacking_Model_PREDICTIONS']=future_days_test['XGB_PREDICTIONS']



future_days_test["Price"] = y_train


future_days_test = future_days_test[-100:]

plot_prediction(future_days_test, ["Price","Stacking_Model_PREDICTIONS"])


#print("Current-Method error: ", np.sqrt(mean_squared_error(df_validation.實際起拍價,df_validation.預(yù)測起拍價)))

print("XGB_PREDICTIONS 誤差: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.XGB_PREDICTIONS)))

print("GBR_PREDICTIONS 誤差: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.GBR_PREDICTIONS)))

print("RF_PREDICTIONS 誤差: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.RF_PREDICTIONS)))

print("BaggingR_PREDICTIONS 誤差: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.BaggingR_PREDICTIONS)))

print("融合模型誤差: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.Stacking_Model_PREDICTIONS)))

print("Trival error: ", np.sqrt(mean_squared_error(future_days_test.Price[1:],future_days_test.Price[:-1])))



future_days_test=X_test.copy() #createFeatures(future_days)


future_days_test['XGB_PREDICTIONS'] = grid_search.predict(X_test)

future_days_test['GBR_PREDICTIONS'] = grid_search_GBR.predict(X_test)? ??

future_days_test['RF_PREDICTIONS'] = grid_search_RF.predict(X_test)?

future_days_test['BaggingR_PREDICTIONS'] = grid_search_BaggingR.predict(X_test)

future_days_test['Stacking_Model_PREDICTIONS']=future_days_test['RF_PREDICTIONS'] *0.25 + future_days_test['GBR_PREDICTIONS']*0.35 + future_days_test['BaggingR_PREDICTIONS']*0.25 + future_days_test['XGB_PREDICTIONS']*0.15

#future_days_test['Stacking_Model_PREDICTIONS']=future_days_test['XGB_PREDICTIONS']


future_days_test["Price"] = y_test

df_h_h = pd.read_csv('液化氣歷史預(yù)測數(shù)據(jù)_競拍最高價_20210917.csv')

df_h_h['Date']=pd.to_datetime(df_h_h['Date'],? format='%d/%m/%Y',infer_datetime_format=True)

df_h_h=df_h_h.set_index('Date')

future_days_test["highest"] = df_h_h.競拍最高價


plot_prediction(future_days_test, ["Price","Stacking_Model_PREDICTIONS"])


#print("Current-Method error: ", np.sqrt(mean_squared_error(df_validation.實際起拍價,df_validation.預(yù)測起拍價)))

print("XGB_PREDICTIONS 誤差: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.XGB_PREDICTIONS)))

print("GBR_PREDICTIONS 誤差: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.GBR_PREDICTIONS)))

print("RF_PREDICTIONS 誤差: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.RF_PREDICTIONS)))

print("BaggingR_PREDICTIONS 誤差: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.BaggingR_PREDICTIONS)))

print("融合模型誤差: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.Stacking_Model_PREDICTIONS)))

print("Trival error: ", np.sqrt(mean_squared_error(future_days_test.Price[1:],future_days_test.Price[:-1])))



# In[ ]:






# In[66]:



future_days_test=X_train.copy() #createFeatures(future_days)

? ? ? ? ? ? ? ? ? ? ??

future_days_test['XGB_PREDICTIONS'] = grid_search.predict(X_train)

future_days_test['GBR_PREDICTIONS'] = grid_search_GBR.predict(X_train)? ??

future_days_test['RF_PREDICTIONS'] = grid_search_RF.predict(X_train)?

future_days_test['BaggingR_PREDICTIONS'] = grid_search_BaggingR.predict(X_train)

future_days_test['Stacking_Model_PREDICTIONS']=future_days_test['RF_PREDICTIONS'] *0.25 + future_days_test['GBR_PREDICTIONS']*0.35 + future_days_test['BaggingR_PREDICTIONS']*0.25 + future_days_test['XGB_PREDICTIONS']*0.15

#future_days_test['Stacking_Model_PREDICTIONS']=future_days_test['XGB_PREDICTIONS']



future_days_test["Price"] = y_train


future_days_test = future_days_test[-100:]

plot_prediction(future_days_test, ["Price","Stacking_Model_PREDICTIONS"])


#print("Current-Method error: ", np.sqrt(mean_squared_error(df_validation.實際起拍價,df_validation.預(yù)測起拍價)))

print("XGB_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.XGB_PREDICTIONS)))

print("GBR_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.GBR_PREDICTIONS)))

print("RF_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.RF_PREDICTIONS)))

print("BaggingR_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.BaggingR_PREDICTIONS)))

print("Stacking_Model_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.Stacking_Model_PREDICTIONS)))

print("Trival error: ", np.sqrt(mean_squared_error(future_days_test.Price[1:],future_days_test.Price[:-1])))



future_days_test=X_test.copy() #createFeatures(future_days)


future_days_test['XGB_PREDICTIONS'] = grid_search.predict(X_test)

future_days_test['GBR_PREDICTIONS'] = grid_search_GBR.predict(X_test)? ??

future_days_test['RF_PREDICTIONS'] = grid_search_RF.predict(X_test)?

future_days_test['BaggingR_PREDICTIONS'] = grid_search_BaggingR.predict(X_test)

future_days_test['Stacking_Model_PREDICTIONS']=future_days_test['RF_PREDICTIONS'] *0.25 + future_days_test['GBR_PREDICTIONS']*0.35 + future_days_test['BaggingR_PREDICTIONS']*0.25 + future_days_test['XGB_PREDICTIONS']*0.15

#future_days_test['Stacking_Model_PREDICTIONS']=future_days_test['XGB_PREDICTIONS']


future_days_test["Price"] = y_test

df_h_h = pd.read_csv('液化氣歷史預(yù)測數(shù)據(jù)_競拍最高價_20210917.csv')

df_h_h['Date']=pd.to_datetime(df_h_h['Date'],? format='%d/%m/%Y',infer_datetime_format=True)

df_h_h=df_h_h.set_index('Date')

future_days_test["highest"] = df_h_h.競拍最高價


plot_prediction(future_days_test, ["Price","Stacking_Model_PREDICTIONS"])


#print("Current-Method error: ", np.sqrt(mean_squared_error(df_validation.實際起拍價,df_validation.預(yù)測起拍價)))

print("XGB_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.XGB_PREDICTIONS)))

print("GBR_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.GBR_PREDICTIONS)))

print("RF_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.RF_PREDICTIONS)))

print("BaggingR_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.BaggingR_PREDICTIONS)))

print("Stacking_Model_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.Stacking_Model_PREDICTIONS)))

print("Trival error: ", np.sqrt(mean_squared_error(future_days_test.Price[1:],future_days_test.Price[:-1])))



# In[23]:



X_val=df_product.iloc[-10:,1:]

y_val=df_product.iloc[-10:,0]??


future_days_test=X_val.copy() #createFeatures(future_days)


future_days_test['XGB_PREDICTIONS'] = grid_search.predict(X_val)

future_days_test['GBR_PREDICTIONS'] = grid_search_GBR.predict(X_val)? ??

future_days_test['RF_PREDICTIONS'] = grid_search_RF.predict(X_val)?

future_days_test['BaggingR_PREDICTIONS'] = grid_search_BaggingR.predict(X_val)

future_days_test['Stacking_Model_PREDICTIONS']=future_days_test['RF_PREDICTIONS'] *0.25 + future_days_test['GBR_PREDICTIONS']*0.35 + future_days_test['BaggingR_PREDICTIONS']*0.25 + future_days_test['XGB_PREDICTIONS']*0.15

#future_days_test['Stacking_Model_PREDICTIONS']=future_days_test['XGB_PREDICTIONS']



future_days_test["Price"] = y_val

df_h_h = pd.read_csv('液化氣歷史預(yù)測數(shù)據(jù)_競拍最高價_20210917.csv')

df_h_h['Date']=pd.to_datetime(df_h_h['Date'],? format='%d/%m/%Y',infer_datetime_format=True)

df_h_h=df_h_h.set_index('Date')

#future_days_test["highest"] = df_h_h.競拍最高價

future_days_test["prev_pred"] = df_h_h.歷史預(yù)測起拍價.diff()


plot_prediction(future_days_test, ["Price","Stacking_Model_PREDICTIONS","prev_pred"])


#print("Current-Method error: ", np.sqrt(mean_squared_error(df_validation.實際起拍價,df_validation.預(yù)測起拍價)))

print("XGB_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.XGB_PREDICTIONS)))

print("GBR_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.GBR_PREDICTIONS)))

print("RF_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.RF_PREDICTIONS)))

print("BaggingR_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.BaggingR_PREDICTIONS)))

print("Stacking_Model_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.Stacking_Model_PREDICTIONS)))

#print("LSTM error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.Stacking_Model_PREDICTIONS)))

print("Trival error: ", np.sqrt(mean_squared_error(future_days_test.Price[1:],future_days_test.Price[:-1])))


print("current error: ", np.sqrt(mean_squared_error(future_days_test.Price[-10:1],future_days_test.prev_pred[-10:1])))



# In[20]:



future_days_test.prev_pred[-10:]



# In[24]:



future_days_test



# In[ ]:






# In[ ]:






# In[56]:



#復(fù)盤算法,觀察預(yù)測穩(wěn)定性


def run_last_n_days(n):

? ? l = df_test_3.shape[0]

? ? for i in range(1,n+1):

? ? ? ? print("last n days: ",i)


? ? ? ? df_product=df_test_3.iloc[:,:].copy()

? ? ? ? #df_product.iloc[:,0] = df_product.iloc[:,0].diff()


? ? ? ? X_train=df_product.iloc[1:-n,1:]

? ? ? ? y_train=df_product.iloc[1:-n,0]


? ? ? ? X_test=df_product.iloc[-14-n:l-n+1,1:]

? ? ? ? y_test=df_product.iloc[-14-n:l-n+1,0]


? ? ? ? X_val=df_product.iloc[-30:,1:]

? ? ? ? y_val=df_product.iloc[-30:,0]



? ? ? ? estimator = XGBRegressor(random_state=0,

? ? ? ? ?#objective='reg:linear',

? ? ? ? nthread=4,

? ? ? ? seed=42

? ? ? ? )


? ? ? ? # Round 4 get best parameters?

? ? ? ? parameters =? {

? ? ? ? ? ? ? ? ? ? ? 'max_depth': [10],

? ? ? ? ? ? ? ? ? ? ? 'learning_rate': [ 0.4],

? ? ? ? ? ? ? ? ? ? ? 'min_split_loss':[0,1],

? ? ? ? ? ? ? ? ? ? ? 'n_estimators': [15],

? ? ? ? ? ? ? ? ? ? ? 'min_child_weight': [6,7,8],

? ? ? ? ? ? ? ? ? ? ? 'max_delta_step': [0],

? ? ? ? ? ? ? ? ? ? ? 'subsample': [0.6,0.7,0.8],

? ? ? ? ? ? ? ? ? ? ? 'colsample_bytree': [1.0],

? ? ? ? ? ? ? ? ? ? ? 'reg_alpha':[0,0.2],

? ? ? ? ? ? ? ? ? ? ? 'reg_lambda': [0,0.05],

? ? ? ? ? ? ? ? ? ? ? 'scale_pos_weight': [0.05,0.1,]


? ? ? ? }


? ? ? ? ? ? #################? ??


? ? ? ? grid_search = GridSearchCV(

? ? ? ? ? ? ? ? ? ? ? estimator=estimator,

? ? ? ? ? ? ? ? ? ? ? param_grid=parameters,

? ? ? ? ? ? #scoring = 'roc_auc',

? ? ? ? ? ? #n_jobs = 10,

? ? ? ? ? ? cv = 3,

? ? ? ? ? ? verbose=0

? ? ? ? ? ? )


? ? ? ? warnings.filterwarnings("ignore")


? ? ? ? grid_search.fit(X_train, y_train)



? ? ? ? ###############################################################################


? ? ? ? estimator_GBR = GradientBoostingRegressor(criterion='mse',random_state=0,)


? ? ? ? parameters_GBR = {

? ? ? ? ? ? ? ? ? ? ?'n_estimators':range (99, 102,1),?

? ? ? ? ? ? ? ? ? ? 'learning_rate': [0.1,0.2],?

? ? ? ? ? ? ? ? ? ? 'max_depth':[6,7,8,],?

? ? ? ? ? ? ? ? ? ? 'min_samples_leaf':[1,2,3,4],?

? ? ? ? ? ? ? ? ? ? 'max_features':[5,6,7]

? ? ? ? }


? ? ? ? grid_search_GBR = GridSearchCV(

? ? ? ? ? ? ? ? estimator=estimator_GBR,

? ? ? ? ? ? ? ? param_grid=parameters_GBR,

? ? ? ? ? ? ? ? #scoring = 'roc_auc',

? ? ? ? ? ? ? ? #n_jobs = 10,

? ? ? ? ? ? ? ? cv = 3,

? ? ? ? ? ? ? ? verbose=0

? ? ? ? ? ? )


? ? ? ? grid_search_GBR.fit(X_train, y_train)



? ? ? ? ###############################################################################

? ? ? ? estimator_RF = RandomForestRegressor(criterion='mse',random_state=0)


? ? ? ? parameters_RF = {

? ? ? ? ? ? ? ? ? ? 'bootstrap': [False],

? ? ? ? ? ? ? ? ? ? ?'max_depth': [10,None],

? ? ? ? ? ? ? ? ? ? ?'max_features': ['sqrt'],

? ? ? ? ? ? ? ? ? ? ?'min_samples_leaf': [1],

? ? ? ? ? ? ? ? ? ? ?'min_samples_split': [2],

? ? ? ? ? ? ? ? ? ? ?'n_estimators':[94,100] #range(5,110,1)#[9,10,11],

? ? ? ? }



? ? ? ? grid_search_RF = GridSearchCV(

? ? ? ? ? ? ? ? estimator=estimator_RF,

? ? ? ? ? ? ? ? param_grid=parameters_RF,

? ? ? ? ? ? ? ? #scoring = 'roc_auc',

? ? ? ? ? ? ? ? #n_jobs = 10,

? ? ? ? ? ? ? ? cv = 15,

? ? ? ? ? ? ? ? verbose=0

? ? ? ? ? ? )


? ? ? ? grid_search_RF.fit(X_train, y_train)


? ? ? ? ###############################################################################

? ? ? ? estimator_BaggingR = BaggingRegressor(random_state=0,)


? ? ? ? n_samples = X_train.shape[0]

? ? ? ? n_features = X_train.shape[1]


? ? ? ? parameters_BaggingR = {


? ? ? ? ? ? ? ? ? 'n_estimators': [ 101,102,103],

? ? ? ? ? ? ? ? ? 'max_samples': [1.0,],

? ? ? ? ? ? ? ? ? 'max_features': [0.4,1.0],

? ? ? ? ? ? ? ? ? 'bootstrap': [ False],

? ? ? ? ? ? ? ? ? 'bootstrap_features': [True]


? ? ? ? }



? ? ? ? grid_search_BaggingR = GridSearchCV(

? ? ? ? ? ? ? ? estimator=estimator_BaggingR,

? ? ? ? ? ? ? ? param_grid=parameters_BaggingR,

? ? ? ? ? ? ? ? #scoring = 'roc_auc',

? ? ? ? ? ? ? ?# n_jobs = 10,

? ? ? ? ? ? ? ? cv = 22,

? ? ? ? ? ? ? ? verbose=0

? ? ? ? ? ? )

? ? ? ? grid_search_BaggingR.fit(X_train, y_train)


? ? ? ??

? ? ? ??

? ? ? ? print("params used:")

? ? ? ? print("XGB")

? ? ? ? print("Best score: %.3f" % grid_search.best_score_)

? ? ? ? print("Best parameters set:")

? ? ? ? best_parameters = grid_search.best_estimator_.get_params()

? ? ? ? for param_name in parameters.keys():

? ? ? ? ? ? print("\t%s: %r" % (param_name, best_parameters[param_name]))

? ? ? ? #plot_feature_importance(grid_search.best_estimator_.feature_importances_, X_train.columns,'XGB')


? ? ? ? print("GBR")

? ? ? ? print("Best score: %.3f" % grid_search_GBR.best_score_)

? ? ? ? print("Best parameters set:")

? ? ? ? best_parameters = grid_search_GBR.best_estimator_.get_params()

? ? ? ? for param_name in parameters_GBR.keys():

? ? ? ? ? ? print("\t%s: %r" % (param_name, best_parameters[param_name]))

? ? ? ? #plot_feature_importance(grid_search_GBR.best_estimator_.feature_importances_, X_train.columns,'GBR')


? ? ? ? print("RF")

? ? ? ? print("Best score: %.3f" % grid_search_RF.best_score_)

? ? ? ? print("Best parameters set:")

? ? ? ? best_parameters = grid_search_RF.best_estimator_.get_params()

? ? ? ? for param_name in parameters_RF.keys():

? ? ? ? ? ? print("\t%s: %r" % (param_name, best_parameters[param_name]))

? ? ? ? #plot_feature_importance(grid_search_RF.best_estimator_.feature_importances_, X_train.columns,'RF')


? ? ? ? print("BAGG")

? ? ? ? print("Best score: %.3f" % grid_search_BaggingR.best_score_)

? ? ? ? print("Best parameters set:")

? ? ? ? best_parameters = grid_search_BaggingR.best_estimator_.get_params()

? ? ? ? for param_name in sorted(parameters_BaggingR.keys()):

? ? ? ? ? ? print("\t%s: %r" % (param_name, best_parameters[param_name]))


? ? ? ??



? ? ? ? print("show traing err")

? ? ? ? future_days_test=X_train.copy() #createFeatures(future_days)


? ? ? ? future_days_test['XGB_PREDICTIONS'] = grid_search.predict(X_train)

? ? ? ? future_days_test['GBR_PREDICTIONS'] = grid_search_GBR.predict(X_train)? ??

? ? ? ? future_days_test['RF_PREDICTIONS'] = grid_search_RF.predict(X_train)?

? ? ? ? future_days_test['BaggingR_PREDICTIONS'] = grid_search_BaggingR.predict(X_train)

? ? ? ? future_days_test['Stacking_Model_PREDICTIONS']=future_days_test['RF_PREDICTIONS'] *0.25 + future_days_test['GBR_PREDICTIONS']*0.35 + future_days_test['BaggingR_PREDICTIONS']*0.25 + future_days_test['XGB_PREDICTIONS']*0.15


? ? ? ? future_days_test["Price"] = y_train


? ? ? ? future_days_test = future_days_test[-100:]

? ? ? ? plot_prediction(future_days_test, ["Price","Stacking_Model_PREDICTIONS"])


? ? ? ? print("XGB_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.XGB_PREDICTIONS)))

? ? ? ? print("GBR_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.GBR_PREDICTIONS)))

? ? ? ? print("RF_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.RF_PREDICTIONS)))

? ? ? ? print("BaggingR_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.BaggingR_PREDICTIONS)))

? ? ? ? print("Stacking_Model_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.Stacking_Model_PREDICTIONS)))

? ? ? ? print("Trival error: ", np.sqrt(mean_squared_error(future_days_test.Price[1:],future_days_test.Price[:-1])))

? ? ? ? print("Trival error2: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.Price*0)))




? ? ? ? print("show testing err")

? ? ? ? future_days_test=X_test.copy() #createFeatures(future_days)


? ? ? ? future_days_test['XGB_PREDICTIONS'] = grid_search.predict(X_test)

? ? ? ? future_days_test['GBR_PREDICTIONS'] = grid_search_GBR.predict(X_test)? ??

? ? ? ? future_days_test['RF_PREDICTIONS'] = grid_search_RF.predict(X_test)?

? ? ? ? future_days_test['BaggingR_PREDICTIONS'] = grid_search_BaggingR.predict(X_test)

? ? ? ? future_days_test['Stacking_Model_PREDICTIONS']=future_days_test['RF_PREDICTIONS'] *0.25 + future_days_test['GBR_PREDICTIONS']*0.35 + future_days_test['BaggingR_PREDICTIONS']*0.25 + future_days_test['XGB_PREDICTIONS']*0.15

? ? ? ? #future_days_test['Stacking_Model_PREDICTIONS']=future_days_test['XGB_PREDICTIONS']


? ? ? ? future_days_test["Price"] = y_test

? ? ? ? df_h_h = pd.read_csv('液化氣歷史預(yù)測數(shù)據(jù)_競拍最高價_20210917.csv')

? ? ? ? df_h_h['Date']=pd.to_datetime(df_h_h['Date'],? format='%d/%m/%Y',infer_datetime_format=True)

? ? ? ? df_h_h=df_h_h.set_index('Date')

? ? ? ? future_days_test["highest"] = df_h_h.競拍最高價


? ? ? ? plot_prediction(future_days_test, ["Price","Stacking_Model_PREDICTIONS"])


? ? ? ? print("XGB_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.XGB_PREDICTIONS)))

? ? ? ? print("GBR_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.GBR_PREDICTIONS)))

? ? ? ? print("RF_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.RF_PREDICTIONS)))

? ? ? ? print("BaggingR_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.BaggingR_PREDICTIONS)))

? ? ? ? print("Stacking_Model_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.Stacking_Model_PREDICTIONS)))

? ? ? ? print("Trival error: ", np.sqrt(mean_squared_error(future_days_test.Price[1:],future_days_test.Price[:-1])))

? ? ? ? print("Trival error2: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.Price*0)))




? ? ? ? print("show validation err")

? ? ? ? future_days_test=X_val.copy() #createFeatures(future_days)


? ? ? ? future_days_test['XGB_PREDICTIONS'] = grid_search.predict(X_val)

? ? ? ? future_days_test['GBR_PREDICTIONS'] = grid_search_GBR.predict(X_val)? ??

? ? ? ? future_days_test['RF_PREDICTIONS'] = grid_search_RF.predict(X_val)?

? ? ? ? future_days_test['BaggingR_PREDICTIONS'] = grid_search_BaggingR.predict(X_val)

? ? ? ? future_days_test['Stacking_Model_PREDICTIONS']=future_days_test['RF_PREDICTIONS'] *0.25 + future_days_test['GBR_PREDICTIONS']*0.35 + future_days_test['BaggingR_PREDICTIONS']*0.25 + future_days_test['XGB_PREDICTIONS']*0.15


? ? ? ? future_days_test["Price"] = y_val


? ? ? ? #future_days_test = future_days_test[-100:]

? ? ? ? plot_prediction(future_days_test, ["Price","Stacking_Model_PREDICTIONS"])


? ? ? ? print("XGB_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.XGB_PREDICTIONS)))

? ? ? ? print("GBR_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.GBR_PREDICTIONS)))

? ? ? ? print("RF_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.RF_PREDICTIONS)))

? ? ? ? print("BaggingR_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.BaggingR_PREDICTIONS)))

? ? ? ? print("Stacking_Model_PREDICTIONS error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.Stacking_Model_PREDICTIONS)))

? ? ? ? print("Trival error: ", np.sqrt(mean_squared_error(future_days_test.Price[1:],future_days_test.Price[:-1])))

? ? ? ? print("Trival error2: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.Price*0)))


? ? ? ? print("last 14 days:")

? ? ? ? print("XGB_PREDICTIONS: ", future_days_test.XGB_PREDICTIONS.values[-14:])

? ? ? ? print("GBR_PREDICTIONS: ", future_days_test.GBR_PREDICTIONS.values[-14:])

? ? ? ? print("RF_PREDICTIONS: ", future_days_test.RF_PREDICTIONS.values[-14:])

? ? ? ? print("BaggingR_PREDICTIONS: ", future_days_test.BaggingR_PREDICTIONS.values[-14:])

? ? ? ? print("Stacking_Model_PREDICTIONS: ", future_days_test.Stacking_Model_PREDICTIONS.values[-14:])

? ? ? ??

? ? ? ? print("")

? ? ? ? print("")

? ? ? ? print("")

? ? ? ? print("")



# In[57]:



run_last_n_days(14)



# In[ ]:






# In[ ]:






# In[ ]:






# In[ ]:






# In[ ]:






# In[ ]:






# In[ ]:






# In[ ]:






# In[15]:



df_h_h = pd.read_csv('液化氣歷史預(yù)測數(shù)據(jù)_競拍最高價_20210917.csv')

df_h_h['Date']=pd.to_datetime(df_h_h['Date'],? format='%d/%m/%Y',infer_datetime_format=True)

df_h_h=df_h_h.set_index('Date')



# In[18]:



future_days_test["highest"] = df_h_h.競拍最高價



# In[ ]:



df_h_h



# In[80]:



future_days_test=X_train.copy() #createFeatures(future_days)

? ? ? ? ? ? ? ? ? ? ??

future_days_test['XGB_PREDICTIONS'] = grid_search.predict(X_train)

future_days_test['GBR_PREDICTIONS'] = grid_search_GBR.predict(X_train)? ??

future_days_test['RF_PREDICTIONS'] = grid_search_RF.predict(X_train)?

future_days_test['BaggingR_PREDICTIONS'] = grid_search_BaggingR.predict(X_train)

future_days_test['Stacking_Model_PREDICTIONS']=future_days_test['RF_PREDICTIONS'] *0.25 + future_days_test['GBR_PREDICTIONS']*0.35 + \

future_days_test['BaggingR_PREDICTIONS']*0.25 + future_days_test['XGB_PREDICTIONS']*0.15


future_days_test["Price"] = y_train


future_days_test = future_days_test[-100:]

plot_prediction(future_days_test, ["Price","Stacking_Model_PREDICTIONS"])


#print("Current-Method error: ", np.sqrt(mean_squared_error(df_validation.實際起拍價,df_validation.預(yù)測起拍價)))

print("LSTM error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.Stacking_Model_PREDICTIONS)))

print("Trival error: ", np.sqrt(mean_squared_error(future_days_test.Price[1:],future_days_test.Price[:-1])))




future_days_test=X_test.copy() #createFeatures(future_days)


future_days_test['XGB_PREDICTIONS'] = grid_search.predict(X_test)

future_days_test['GBR_PREDICTIONS'] = grid_search_GBR.predict(X_test)? ??

future_days_test['RF_PREDICTIONS'] = grid_search_RF.predict(X_test)?

future_days_test['BaggingR_PREDICTIONS'] = grid_search_BaggingR.predict(X_test)

future_days_test['Stacking_Model_PREDICTIONS']=future_days_test['RF_PREDICTIONS'] *0.25 + future_days_test['GBR_PREDICTIONS']*0.35 + \

future_days_test['BaggingR_PREDICTIONS']*0.25 + future_days_test['XGB_PREDICTIONS']*0.15


future_days_test["Price"] = y_test


plot_prediction(future_days_test, ["Price","Stacking_Model_PREDICTIONS"])


#print("Current-Method error: ", np.sqrt(mean_squared_error(df_validation.實際起拍價,df_validation.預(yù)測起拍價)))

print("LSTM error: ", np.sqrt(mean_squared_error(future_days_test.Price,future_days_test.Stacking_Model_PREDICTIONS)))

print("Trival error: ", np.sqrt(mean_squared_error(future_days_test.Price[1:],future_days_test.Price[:-1])))



# In[59]:



#np.sqrt(mean_squared_error(future_days_test.Stacking_Model_PREDICTIONS[:-1], y_test[:-1]))



# In[ ]:






# In[ ]:






# In[41]:



#grid_search.predict(X_train)



# # 導(dǎo)入歷史預(yù)測數(shù)據(jù)和最高價


# In[13]:



#Import the data and parse dates.

df_h_h = pd.read_csv('液化氣歷史預(yù)測數(shù)據(jù)_競拍最高價_20210917.csv')

df_h_h['Date']=pd.to_datetime(df_h_h['Date'],? format='%d/%m/%Y',infer_datetime_format=True)

df_h_h=df_h_h.set_index('Date')

#df_h_h.tail(5)

A=df_h_h.iloc[-14:,0]

B=df_h_h.iloc[-14:,1]



# In[20]:



df_h_h



# # 日度價格預(yù)測結(jié)果展示


# In[14]:



#顯示日度價格預(yù)測

import plotly.offline as pyo

import plotly.graph_objs as go

import numpy as np


np.random.seed(56)

final_results_C=future_days_test

final_results_C=round(final_results_C,2)


df_product.iloc[-1,0] = np.nan

df_product


# create traces

trace0 = go.Scatter(

? ? x = final_results_C.index,

? ? y = final_results_C['Stacking_Model_PREDICTIONS'],

? ? text=final_results_C['Stacking_Model_PREDICTIONS'],

? ? textposition='top center',

? ? #animation_frame=final_results_C.index,

? ? #fmt='.1f',

? ? #marker=dict(size=0.1*final_results_A['絕對誤差'],color="#9400D3"),

? ? mode = 'lines+markers+text',

? ? #hoverformat ="%{2}f",

? ? name = '融合模型預(yù)測值'

)

? ??


trace1 = go.Scatter(

? ? x = final_results_C.index,

? ? y = final_results_C['BaggingR_PREDICTIONS'],

? ? text=final_results_C['BaggingR_PREDICTIONS'],

? ? textposition='top center',

? ? #animation_frame=final_results_C.index,

? ? #fmt='.1f',

? ? #marker=dict(size=0.1*final_results_A['絕對誤差'],color="#9400D3"),

? ? mode = 'lines+markers+text',

? ? #hoverformat ="%{2}f",

? ? name = 'Bagging模型預(yù)測值'

)


trace2 = go.Scatter(

? ? x = final_results_C.index,

? ? y = final_results_C['RF_PREDICTIONS'],

? ? text=final_results_C['RF_PREDICTIONS'],

? ? textposition='top center',

? ? #animation_frame=final_results_C.index,

? ? #fmt='.1f',

? ? #marker=dict(size=0.1*final_results_A['絕對誤差'],color="#9400D3"),

? ? mode = 'lines+markers+text',

? ? #hoverformat ="%{2}f",

? ? name = 'RF模型預(yù)測值'

)


trace3 = go.Scatter(

? ? x = final_results_C.index,

? ? y = round(final_results_C['XGB_PREDICTIONS'],2),

? ? text=round(final_results_C['XGB_PREDICTIONS'],2),

? ? textposition='top center',

? ? #animation_frame=final_results_C.index,

? ? #fmt='.1f',

? ? #marker=dict(size=0.1*final_results_A['絕對誤差'],color="#9400D3"),

? ? mode = 'lines+markers+text',

? ? #hoverformat ="%{2}f",

? ? name = 'XGB模型預(yù)測值'

)


trace4 = go.Scatter(

? ? x = final_results_C.index,

? ? y = final_results_C['GBR_PREDICTIONS'],

? ? text=final_results_C['GBR_PREDICTIONS'],

? ? textposition='top center',

? ? #animation_frame=final_results_C.index,

? ? #fmt='.1f',

? ? #marker=dict(size=0.1*final_results_A['絕對誤差'],color="#9400D3"),

? ? mode = 'lines+markers+text',

? ? #hoverformat ="%{2}f",

? ? name = 'GBR模型預(yù)測值'

)


trace5 = go.Scatter(

? ? x = df_product.iloc[-14:,1:].index,

? ? y = df_product.iloc[-14:,0],

? ? text=df_product.iloc[-14:,0],

? ? textposition='top center',

? ? mode = 'lines+markers+text',

? ? name = '價格真實值'

)



trace6 = go.Scatter(

? ? x = df_h_h.iloc[-14:,0].index,

? ? y = df_h_h.iloc[-14:,0],

? ? text=df_h_h.iloc[-14:,0],

? ? textposition='top center',

? ? mode = 'lines+markers+text',

? ? name = '歷史預(yù)測起拍價'

)


trace7 = go.Scatter(

? ? x = df_h_h.iloc[-14:,0].index,

? ? y = df_h_h.iloc[-14:,1],

? ? text=df_h_h.iloc[-14:,1],

? ? textposition='top center',

? ? mode = 'lines+markers+text',

? ? name = '競拍最高價'

)


# trace1, trace2,trace3


data = [trace0, trace1,trace2,trace3, trace4,trace5,trace6,trace7]? # assign traces to data

layout = go.Layout(

? ? title = '日度價格預(yù)測值',

? ? hovermode='closest',

? ? #hoverformat ="%{2}f",

)

fig = go.Figure(data=data,layout=layout)

fig.update_traces(textposition='top center')

fig.show()


pyo.plot(fig, filename='疊加模型_最優(yōu)模型日度價格預(yù)測值.html')



# In[ ]:






# In[ ]:






# In[21]:



df_test.Price[1368:].values




preds.Stacking_Model_PREDICTIONS-df_test.Price[1368:].values




preds = future_days_test.copy()


preds


人工智能學(xué)習(xí)文件qoiqwetoiu的評論 (共 條)

分享到微博請遵守國家法律
徐闻县| 临湘市| 沐川县| 满洲里市| 新化县| 平山县| 巩义市| 嘉善县| 承德县| 曲松县| 普洱| 江永县| 咸阳市| 湘乡市| 城步| 龙山县| 那曲县| 龙陵县| 崇左市| 米易县| 富阳市| 镇雄县| 泰宁县| 博野县| 兴仁县| 建昌县| 绵阳市| 昭苏县| 宁安市| 桑日县| 临猗县| 西平县| 曲靖市| 观塘区| 沾益县| 包头市| 崇礼县| 廊坊市| 双江| 遵义县| 凭祥市|