拓端tecdat|python深度學(xué)習(xí)實現(xiàn)自編碼器Autoencoder神經(jīng)網(wǎng)絡(luò)異常檢測心電圖ECG時間序
原文鏈接:http://tecdat.cn/?p=25410
原文出處:拓端數(shù)據(jù)部落公眾號
通過訓(xùn)練具有小中心層的多層神經(jīng)網(wǎng)絡(luò)重構(gòu)高維輸入向量,可以將高維數(shù)據(jù)轉(zhuǎn)換為低維代碼。這種神經(jīng)網(wǎng)絡(luò)被命名為自編碼器Autoencoder。
自編碼器是非線性降維?技術(shù)用于特征的無監(jiān)督學(xué)習(xí),它們可以學(xué)習(xí)比主成分分析效果更好的低維代碼,作為降低數(shù)據(jù)維數(shù)的工具。
異常心跳檢測
如果提供了足夠的類似于某種底層模式的訓(xùn)練數(shù)據(jù),我們可以訓(xùn)練網(wǎng)絡(luò)來學(xué)習(xí)數(shù)據(jù)中的模式。異常測試點是與典型數(shù)據(jù)模式不匹配的點。自編碼器在重建這些數(shù)據(jù)時可能會有很高的錯誤率,這表明存在異常。
該框架用于使用深度自編碼器開發(fā)異常檢測演示。該數(shù)據(jù)集是心跳的 ECG 時間序列,目標是確定哪些心跳是異常值。訓(xùn)練數(shù)據(jù)(20 個“好”心跳)和測試數(shù)據(jù)(為簡單起見附加了 3 個“壞”心跳的訓(xùn)練數(shù)據(jù)),如下所示。每行代表一個心跳。
init()
PATH = os.path.expanduser("~/")
import_file(PATH + "train.csv")
import_file(PATH + "test.csv")

探索數(shù)據(jù)集。
tra.shape
# 將框架轉(zhuǎn)置,將時間序列作為一個單獨的列來繪制。
plot(legend=False); # 不顯示圖例

在訓(xùn)練數(shù)據(jù)中,我們有 20 個時間序列,每個序列有 210 個數(shù)據(jù)點。請注意,所有線條都很緊湊并且形狀相似。重要的是要記住,在使用自編碼器進行訓(xùn)練時,您只想使用 VALID 數(shù)據(jù)。應(yīng)刪除所有異常。
現(xiàn)在讓我們訓(xùn)練我們的神經(jīng)網(wǎng)絡(luò)
Estimator(
activation="Tanh",
hidden=[50],
)
model.train
model


我們的神經(jīng)網(wǎng)絡(luò)現(xiàn)在能夠?qū)?時間序列進行?編碼。
現(xiàn)在我們嘗試使用異常檢測功能計算重建誤差。這是輸出層和輸入層之間的均方誤差。低誤差意味著神經(jīng)網(wǎng)絡(luò)能夠很好地對輸入進行編碼,這意味著是“已知”情況。高誤差意味著神經(jīng)網(wǎng)絡(luò)以前沒有見過該示例,因此是異常情況。
anomaly(test )
現(xiàn)在的問題是:哪個 test 時間序列最有可能是異常?
我們可以選擇錯誤率最高的前 N 個
df['Rank'] = df['MSE'].rank
sorted

?

dfsorted[MSE'] > 1.0

datT.plot

daT[anindex].plot(color='red');

帶監(jiān)督微調(diào)的無監(jiān)督預(yù)訓(xùn)練
有時,未標記的數(shù)據(jù)比標記的數(shù)據(jù)多得多。在這種情況下,在未標記數(shù)據(jù)上訓(xùn)練自編碼器模型,然后使用可用標簽微調(diào)學(xué)習(xí)模型是有意義的。
結(jié)論
在本教程中,您學(xué)習(xí)了如何使用自編碼器快速檢測時間序列異常。

最受歡迎的見解
1.r語言用神經(jīng)網(wǎng)絡(luò)改進nelson-siegel模型擬合收益率曲線分析
2.r語言實現(xiàn)擬合神經(jīng)網(wǎng)絡(luò)預(yù)測和結(jié)果可視化
3.python用遺傳算法-神經(jīng)網(wǎng)絡(luò)-模糊邏輯控制算法對樂透分析
4.用于nlp的python:使用keras的多標簽文本lstm神經(jīng)網(wǎng)絡(luò)分類
5.用r語言實現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測股票實例
6.R語言基于Keras的小數(shù)據(jù)集深度學(xué)習(xí)圖像分類
7.用于NLP的seq2seq模型實例用Keras實現(xiàn)神經(jīng)機器翻譯
8.python中基于網(wǎng)格搜索算法優(yōu)化的深度學(xué)習(xí)模型分析糖
9.matlab使用貝葉斯優(yōu)化的深度學(xué)習(xí)