1. python 時間序列模型中forecast和predict的區別
舉例說明,2017.01.01-.017.12.31的周期為12的月度數據中,用ARIMA擬合得到模型model。
model.get_prediction(start='2017.09.01')則得到用擬合模型計算出來的樣本內2017.09.01-2017.12.31的預測值;
model.get_forcast(step=5)則得到樣本外推5期即2018.01.01-2018.05.31五個月的預測值;
註:
model.get_prediction也可做外推值的預測,設定好具體終止周期即可。
2. 用Python和Keras做LSTM神經網路普通電腦可以嗎
你好,如果數據量不大的話,普通電腦可以的。如果數據量很大,建議使用雲計算資源。
望採納。
3. 現在tensorflow和mxnet很火,是否還有必要學習scikit-learn等框架
很有必要,但不用太深入,在Kaggle上認真搞2,3個比賽能進10%的程度就夠了
4. 如何在python中用lstm網路進行時間序列預測
時間序列建模器 圖表那個選項卡 左下勾選 擬合值 就可以了。我的為什麼不出現預測值啊啊啊啊~~
5. 學習python的話大概要學習哪些內容
想要學習Python,需要掌握的內容還是比較多的,對於自學的同學來說會有一些難度,不推薦自學能力差的人。我們將學習的過程劃分為4個階段,每個階段學習對應的內容,具體的學習順序如下:
Python學習順序:
①Python軟體開發基礎
掌握計算機的構成和工作原理
會使用Linux常用工具
熟練使用Docker的基本命令
建立Python開發環境,並使用print輸出
使用Python完成字元串的各種操作
使用Python re模塊進行程序設計
使用Python創建文件、訪問、刪除文件
掌握import 語句、From…import 語句、From…import* 語句、方法的引用、Python中的包
②Python軟體開發進階
能夠使用Python面向對象方法開發軟體
能夠自己建立資料庫,表,並進行基本資料庫操作
掌握非關系資料庫MongoDB的使用,掌握Redis開發
能夠獨立完成TCP/UDP服務端客戶端軟體開發,能夠實現ftp、http伺服器,開發郵件軟體
能開發多進程、多線程軟體
③Python全棧式WEB工程師
能夠獨立完成後端軟體開發,深入理解Python開發後端的精髓
能夠獨立完成前端軟體開發,並和後端結合,熟練掌握使用Python進行全站Web開發的技巧
④Python多領域開發
能夠使用Python熟練編寫爬蟲軟體
能夠熟練使用Python庫進行數據分析
招聘網站Python招聘職位數據爬取分析
掌握使用Python開源人工智慧框架進行人工智慧軟體開發、語音識別、人臉識別
掌握基本設計模式、常用演算法
掌握軟體工程、項目管理、項目文檔、軟體測試調優的基本方法
想要系統學習,你可以考察對比一下開設有IT專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能,南京北大青鳥、中博軟體學院、南京課工場等都是不錯的選擇,建議實地考察對比一下。
祝你學有所成,望採納。
6. Python的深度學習框架有哪些
中公教育聯合中科院專家打造的深度學習分八個階段進行學習:
第一階段AI概述及前沿應用成果介紹
深度學習的最新應用成果
單層/深度學習與機器學習
人工智慧的關系及發展簡
第二階段神經網路原理及TensorFlow實戰
梯度下降優化方法
前饋神經網路的基本結構和訓練過程
反向傳播演算法
TensorFlow開發環境安裝
「計算圖」編程模型
深度學習中圖像識別的操作原理
第三階段循環神經網路原理及項目實戰
語言模型及詞嵌入
詞嵌入的學習過程
循環神經網路的基本結構
時間序列反向傳播演算法
長短時記憶網路(LSTM)的基本結構
LSTM實現語言模型
第四階段生成式對抗網路原理及項目實戰
生成式對抗網路(GAN)的基本結構和原理
GAN的訓練過程
GAN用於圖片生成的實現
第五階段深度學習的分布式處理及項目實戰
多GPU並行實現
分布式並行的環境搭建
分布式並行實現
第六階段深度強化學習及項目實戰
強化學習介紹
智能體Agent的深度決策機制(上)
智能體Agent的深度決策機制(中)
智能體Agent的深度決策機制(下)
第七階段車牌識別項目實戰
數據集介紹及項目需求分析
OpenCV庫介紹及車牌定位
車牌定位
車牌識別
學員項目案例評講
第八階段深度學習前沿技術簡介
深度學習前沿技術簡介
元學習
遷移學習等
詳情查看深度學習。
7. LSTM模型預測cos函數
python3.6.7、tensorflow1.4.0
這里用numpy對cos函數進行間隔采樣,取10000個點作為訓練數據,再接著取1000個點作為測試數據。對於取出的數據,放入一個數組中,即一個離散的cos函數的序列,對於這個序列,取對應的點作為輸出y,再對應地取點前面的10個點作為此點對應的輸入X,即在此時刻根據這10個點X來預測對應的一個點y,自定義一個函數generate_data來完成從序列中生成輸入數據X和輸出數據y的功能。
這里的模型採用了一個兩層LSTM模型,隱藏結點設為30個,最後在LSTM模型後設定了一個全連接層,輸出預測結果。訓練次數設定為5000次,訓練開始前根據初始的參數觀察模型在測試集上的預測結果,經過5000次訓練後再觀察模型在測試集上的預測結果,進行對比。
從輸出的圖像上可以看到,沒有訓練之前,測試集的數據經過模型輸出的結果均在初始值0.0附近,和正確的cos函數圖像絲毫不吻合。在經過5000次訓練之後,可以看到測試集經過模型輸出的預測結果和正確結果之間的均方差大有下降,在圖上可視化的結果也可以看到預測值和正確值的圖像高度吻合。
8. python如何預測下一年的數據
顧名思義,時間序列數據是一種隨時間變化的數據類型。例如,24小時內的溫度,一個月內各種產品的價格,一年中特定公司的股票價格。諸如長期短期記憶網路(LSTM)之類的高級深度學習模型能夠捕獲時間序列數據中的模式,因此可用於對數據的未來趨勢進行預測。在本文中,您將看到如何使用LSTM演算法使用時間序列數據進行將來的預測。
9. python lstm怎麼加入特徵
LSTM是啥,Long Short Term Memory?弄神經網路除非你有絕對自信還是用Python吧。
10. 如何在Python中用LSTM網路進行時間序列預測
時間序列模型
時間序列預測分析就是利用過去一段時間內某事件時間的特徵來預測未來一段時間內該事件的特徵。這是一類相對比較復雜的預測建模問題,和回歸分析模型的預測不同,時間序列模型是依賴於事件發生的先後順序的,同樣大小的值改變順序後輸入模型產生的結果是不同的。
舉個栗子:根據過去兩年某股票的每天的股價數據推測之後一周的股價變化;根據過去2年某店鋪每周想消費人數預測下周來店消費的人數等等
RNN 和 LSTM 模型
時間序列模型最常用最強大的的工具就是遞歸神經網路(recurrent neural network, RNN)。相比與普通神經網路的各計算結果之間相互獨立的特點,RNN的每一次隱含層的計算結果都與當前輸入以及上一次的隱含層結果相關。通過這種方法,RNN的計算結果便具備了記憶之前幾次結果的特點。
典型的RNN網路結構如下:
4. 模型訓練和結果預測
將上述數據集按4:1的比例隨機拆分為訓練集和驗證集,這是為了防止過度擬合。訓練模型。然後將數據的X列作為參數導入模型便可得到預測值,與實際的Y值相比便可得到該模型的優劣。
實現代碼
時間間隔序列格式化成所需的訓練集格式
import pandas as pdimport numpy as npdef create_interval_dataset(dataset, look_back): """ :param dataset: input array of time intervals :param look_back: each training set feature length :return: convert an array of values into a dataset matrix. """ dataX, dataY = [], [] for i in range(len(dataset) - look_back): dataX.append(dataset[i:i+look_back]) dataY.append(dataset[i+look_back]) return np.asarray(dataX), np.asarray(dataY)df = pd.read_csv("path-to-your-time-interval-file") dataset_init = np.asarray(df) # if only 1 columndataX, dataY = create_interval_dataset(dataset, lookback=3) # look back if the training set sequence length這里的輸入數據來源是csv文件,如果輸入數據是來自資料庫的話可以參考這里
LSTM網路結構搭建
import pandas as pdimport numpy as npimport randomfrom keras.models import Sequential, model_from_jsonfrom keras.layers import Dense, LSTM, Dropoutclass NeuralNetwork(): def __init__(self, **kwargs): """ :param **kwargs: output_dim=4: output dimension of LSTM layer; activation_lstm='tanh': activation function for LSTM layers; activation_dense='relu': activation function for Dense layer; activation_last='sigmoid': activation function for last layer; drop_out=0.2: fraction of input units to drop; np_epoch=10, the number of epoches to train the model. epoch is one forward pass and one backward pass of all the training examples; batch_size=32: number of samples per gradient update. The higher the batch size, the more memory space you'll need; loss='mean_square_error': loss function; optimizer='rmsprop' """ self.output_dim = kwargs.get('output_dim', 8) self.activation_lstm = kwargs.get('activation_lstm', 'relu') self.activation_dense = kwargs.get('activation_dense', 'relu') self.activation_last = kwargs.get('activation_last', 'softmax') # softmax for multiple output self.dense_layer = kwargs.get('dense_layer', 2) # at least 2 layers self.lstm_layer = kwargs.get('lstm_layer', 2) self.drop_out = kwargs.get('drop_out', 0.2) self.nb_epoch = kwargs.get('nb_epoch', 10) self.batch_size = kwargs.get('batch_size', 100) self.loss = kwargs.get('loss', 'categorical_crossentropy') self.optimizer = kwargs.get('optimizer', 'rmsprop') def NN_model(self, trainX, trainY, testX, testY): """ :param trainX: training data set :param trainY: expect value of training data :param testX: test data set :param testY: epect value of test data :return: model after training """ print "Training model is LSTM network!" input_dim = trainX[1].shape[1] output_dim = trainY.shape[1] # one-hot label # print predefined parameters of current model: model = Sequential() # applying a LSTM layer with x dim output and y dim input. Use dropout parameter to avoid overfitting model.add(LSTM(output_dim=self.output_dim, input_dim=input_dim, activation=self.activation_lstm, dropout_U=self.drop_out, return_sequences=True)) for i in range(self.lstm_layer-2): model.add(LSTM(output_dim=self.output_dim, input_dim=self.output_dim, activation=self.activation_lstm, dropout_U=self.drop_out, return_sequences=True)) # argument return_sequences should be false in last lstm layer to avoid input dimension incompatibility with dense layer model.add(LSTM(output_dim=self.output_dim, input_dim=self.output_dim, activation=self.activation_lstm, dropout_U=self.drop_out)) for i in range(self.dense_layer-1): model.add(Dense(output_dim=self.output_dim, activation=self.activation_last)) model.add(Dense(output_dim=output_dim, input_dim=self.output_dim, activation=self.activation_last)) # configure the learning process model.compile(loss=self.loss, optimizer=self.optimizer, metrics=['accuracy']) # train the model with fixed number of epoches model.fit(x=trainX, y=trainY, nb_epoch=self.nb_epoch, batch_size=self.batch_size, validation_data=(testX, testY)) # store model to json file model_json = model.to_json() with open(model_path, "w") as json_file: json_file.write(model_json) # store model weights to hdf5 file if model_weight_path: if os.path.exists(model_weight_path): os.remove(model_weight_path) model.save_weights(model_weight_path) # eg: model_weight.h5 return model這里寫的只涉及LSTM網路的結構搭建,至於如何把數據處理規范化成網路所需的結構以及把模型預測結果與實際值比較統計的可視化,就需要根據實際情況做調整了。