日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

HMM算例 python 有代码

發布時間:2024/9/30 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HMM算例 python 有代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原理

原理文字來源于 https://www.cnblogs.com/lcj1105/p/4936103.html

隱馬爾可夫(HMM)。
還是用最經典的例子,擲骰子。假設我手里有三個不同的骰子。第一個骰子是我們平常見的骰子(稱這個骰子為D6),6個面,每個面(1,2,3,4,5,6)出現的概率是1/6。第二個骰子是個四面體(稱這個骰子為D4),每個面(1,2,3,4)出現的概率是1/4。第三個骰子有八個面(稱這個骰子為D8),每個面(1,2,3,4,5,6,7,8)出現的概率是1/8。
假設我們開始擲骰子,我們先從三個骰子里挑一個,挑到每一個骰子的概率都是1/3。然后我們擲骰子,得到一個數字,1,2,3,4,5,6,7,8中的一個。不停的重復上述過程,我們會得到一串數字,每個數字都是1,2,3,4,5,6,7,8中的一個。例如我們可能得到這么一串數字(擲骰子10次):1 6 3 5 2 7 3 5 2 4
這串數字叫做可見狀態鏈。但是在隱馬爾可夫模型中,我們不僅僅有這么一串可見狀態鏈,還有一串隱含狀態鏈。在這個例子里,這串隱含狀態鏈就是你用的骰子的序列。比如,隱含狀態鏈有可能是:D6 D8 D8 D6 D4 D8 D6 D6 D4 D8
一般來說,HMM中說到的馬爾可夫鏈其實是指隱含狀態鏈,因為隱含狀態(骰子)之間存在轉換概率(transition probability)。在我們這個例子里,D6的下一個狀態是D4,D6,D8的概率都是1/3。D4,D8的下一個狀態是D4,D6,D8的轉換概率也都一樣是1/3。這樣設定是為了最開始容易說清楚,但是我們其實是可以隨意設定轉換概率的。比如,我們可以這樣定義,D6后面不能接D4,D6后面是D6的概率是0.9,是D8的概率是0.1。這樣就是一個新的HMM。

同樣的,盡管可見狀態之間沒有轉換概率,但是隱含狀態和可見狀態之間有一個概率叫做輸出概率(emission probability)。就我們的例子來說,六面骰(D6)產生1的輸出概率是1/6。產生2,3,4,5,6的概率也都是1/6。我們同樣可以對輸出概率進行其他定義。比如,我有一個被賭場動過手腳的六面骰子,擲出來是1的概率更大,是1/2,擲出來是2,3,4,5,6的概率是1/10。
其實對于HMM來說,如果提前知道所有隱含狀態之間的轉換概率和所有隱含狀態到所有可見狀態之間的輸出概率,做模擬是相當容易的。但是應用HMM模型時候呢,往往是缺失了一部分信息的,有時候你知道骰子有幾種,每種骰子是什么,但是不知道擲出來的骰子序列;有時候你只是看到了很多次擲骰子的結果,剩下的什么都不知道。如果應用算法去估計這些缺失的信息,就成了一個很重要的問題。這些算法我會在下面詳細講。

算例實現
代碼是自己的啦
拿股票數據進行演示

讀取數據

#!/usr/bin/env python3 # -*- coding: utf-8 -*- # @Author: yudengwu # @Date : 2020/5/31import datetime import numpy as np import pandas as pdfrom hmmlearn.hmm import GaussianHMMimport matplotlib.pyplot as plt import warnings warnings.filterwarnings('ignore') Stocks=pd.read_csv('data/TSLA_data.csv') print(Stocks.head())


輸入因素有 日期,最高價,最低價,開盤價,收盤價,成交量,資金凈額

刪除我們不想要的因素

Stocks.reset_index(inplace=True,drop=False) Stocks.drop(['Open','High','Low','Adj Close'],axis=1,inplace=True) #剩下Date Close收盤價23.889999 Volume成交量8218800 Stocks['Date'] =pd.to_datetime(Stocks['Date']) Stocks['Date'] = Stocks['Date'].apply(datetime.datetime.toordinal) Stocks = list(Stocks.itertuples(index=False, name=None)) print(Stocks)


得到 序列ID,時間,收盤價,成交量

dates = np.array([q[0] for q in Stocks], dtype=int) end_val = np.array([q[1] for q in Stocks])#(2079,)#收盤價 volume = np.array([q[2] for q in Stocks])[1:]#(2078,)#成交量diff = np.diff(end_val)#前后收盤價 價格差值 dates = dates[1:] end_val = end_val[1:]X = np.column_stack([diff, end_val,volume])#收盤價差值,收盤價 ,成交量 print(X)


X輸入為收盤價差值, 收盤價 ,成交量

建模

model = GaussianHMM(n_components=4, covariance_type="full", n_iter=1000,random_state=1) model.fit(X)logprob, hidden_states = model.decode(X, algorithm="viterbi")

#random_state 是每次輸出結果一樣,
對新的數據進行預測,可以采用hidden_states = model.predict(X),或者hidden_states = model.predict(X)
#其中 model.predict(X) 返回只有標簽,而 model.decode(X, algorithm=“viterbi”),返回有:所生成狀態序列的對數概率logprob,和依據algorithm加密器獲得的X中每個樣本的標簽hidden_states

結果可視化
對成交量進行結果可視化

hidden_states=pd.DataFrame(hidden_states)#輸出狀態 end_val=pd.DataFrame(end_val)#收盤價 volume=pd.DataFrame(volume)#成交量 c=pd.concat([hidden_states,volume],axis=1)for i in range(len(c)):if c.iloc[i,0]==0:plt.scatter(i,c.iloc[i,1], c='b')elif c.iloc[i,0]==1:plt.scatter(i,c.iloc[i,1], c='r')elif c.iloc[i, 0] == 2:plt.scatter(i,c.iloc[i, 1], c='c')else:plt.scatter(i,c.iloc[i,1]) plt.show()


HMM模型只是能分離出不同的狀態,具體每個狀態對應現實的市場意義,需要人為觀察。

GaussianHMM是針對連續性輸入有作用的。
離散值的用MultinomialHMM

#本文的算例是非監督學習,后續有時間研究監督學習的hmm。
在HMM中,如果已知觀察序列和產生觀察序列的狀態序列,那么可用以下哪種方法直接進行參數估計()
A.EM算法
B.維特比算法
C.前向后向算法
D.極大似然估計

EM算法: 只有觀測序列,無狀態序列時來學習模型參數,即Baum-Welch算法
維特比算法: 用動態規劃解決HMM的預測問題,不是參數估計
前向后向:用來算概率
極大似然估計:即觀測序列和相應的狀態序列都存在時的監督學習算法,用來估計參數

總結

以上是生活随笔為你收集整理的HMM算例 python 有代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线免费av观看 | 成人在线观看免费 | 18av视频| 亚洲1234区| 性xxxx | 欧美日韩在线观看一区二区 | 18禁网站免费无遮挡无码中文 | 成人黄色激情 | 国产黄色免费 | 爱爱网视频 | 精品一区电影国产 | 久久久影视 | 国产毛片18 | 狠狠91| 99视频在线 | 美日毛片| 久草在在线| 久久精品女人毛片国产 | 欧美日韩aa | 国产精品免费看片 | 国产污污网站 | 欧美一二三区视频 | 午夜视频网址 | 天天干天天操天天射 | 丁香六月啪啪 | 天天视频污 | 日本孕妇孕交 | 国产成人精品亚洲男人的天堂 | 亚洲激情久久久 | 精品视频在线播放 | 精品一区视频 | 色屁屁草草影院ccyycom | 日本黄色小视频 | 天天舔天天操天天干 | 91欧美激情一区二区三区成人 | 国产 日韩 欧美 综合 | 日批免费在线观看 | 国产精品va | www.国产.com | 最新欧美日韩 | 亚洲欧美一区二区三 | 无码人妻丰满熟妇奶水区码 | 尤物视频免费在线观看 | 伊人天天操 | 蜜桃av噜噜一区二区三区麻豆 | 涩涩视频在线免费看 | 亚洲一区二区三区高清视频 | 97超碰在线免费 | 白丝女仆被免费网站 | 男生和女生一起搞鸡 | 高h喷水荡肉少妇爽多p视频 | 一级真人毛片 | 日韩女优一区二区 | 特级做a爰片毛片免费69 | 成人福利一区二区三区 | 91免费看片 | 欧美精品色视频 | 亚洲图片三区 | 奇米四色7777| 中文字幕av网站 | 免费一级片网站 | 日韩毛片高清在线播放 | 91色九色 | 免费古装一级淫片潘金莲 | 日韩欧美国产高清 | 黄色在线免费观看视频 | 屁屁影院一区二区三区 | 91精品国产自产精品男人的天堂 | 青青草免费在线观看 | 台湾男男gay做爽爽的视频 | 国产aⅴ一区二区三区 | 国产xxxx孕妇 | 亚洲永久无码7777kkk | 在线免费观看麻豆 | 欧美高清性xxxxhd | 中文字幕第页 | 黄色美女一级片 | 在线亚洲一区 | www.av.cn| 亚洲成人福利在线 | 日本人妻熟妇久久久久久 | 一区二区三区精品在线观看 | 亚洲一区二区三区电影在线观看 | 亚洲国产免费视频 | 521a人成v香蕉网站 | 午夜污污 | 久久亚洲欧美 | 久久久www成人免费无遮挡大片 | 在线免费亚洲 | 久久久久国产综合av天堂 | 亚洲黄色在线播放 | 北岛玲av在线 | 久久久久久久综合 | 中文 欧美 日韩 | 有码一区二区三区 | 免费看黄色三级三级 | 青青草伊人久久 | 日韩成人一区二区三区 | 欧美xxxxx精品|