日韩性视频-久久久蜜桃-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 有代码的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 成人三区| 欧美一区二区三区婷婷月色 | 国产偷亚洲偷欧美偷精品 | 国产一区二区三区高清视频 | 欧美日韩在线视频一区二区三区 | 九九精品在线播放 | 动漫3d精品一区二区三区乱码 | 狠狠91 | jjzz国产| 四虎网站最新网址 | 一级黄色片免费观看 | 午夜免费片 | 精品一区二区视频 | 精品66| 91一区二区视频 | 在线h片 | 欧美一级做a爰片久久高潮 久热国产精品视频 | 中文字幕av一区二区三区人妻少妇 | 七仙女欲春2一级裸体片 | 国产第一页在线 | 91蝌蚪网 | 日本a√在线观看 | 亚洲精品一 | 日日天天干 | 亚洲网站免费看 | 超碰人人人人 | 亚洲黄色网页 | 日本一区二区久久 | 国产精品一级二级三级 | 制服.丝袜.亚洲.中文.综合 | 日韩一级中文字幕 | 日本人做受免费视频 | 久操国产在线 | 韩国视频一区二区三区 | 成人国产精品免费观看视频 | 色葡萄影院 | 台湾佬美性中文网 | 久久狠 | 中文字幕人妻熟女在线 | 日韩欧美专区 | 亚洲熟妇丰满大屁股熟妇 | 九九爱国产 | 逼逼爱插插网站 | 国产在线不卡一区 | 九九在线视频 | 能免费看av的网站 | 国产综合区 | 乱妇乱女熟妇熟女网站 | 国产精品成人一区二区 | 色噜噜狠狠一区二区三区牛牛影视 | 美女免费黄视频 | 中文字幕自拍偷拍 | 午夜爱爱毛片xxxx视频免费看 | 日不卡 | 黄页在线播放 | a v视频在线观看 | 日韩影视在线 | 在线一区二区三区四区五区 | 黄色第一网站 | 亚洲一区二区国产精品 | 伦一理一级一a一片 | 国产最新自拍 | 成 年人 黄 色 片 | 少妇在线视频 | 久久国产影视 | 午夜激情综合 | xiuxiuavnet | 4438成人网 | 亚洲第一色在线 | 国产精品国产三级国产在线观看 | 少妇一区二区视频 | 亚洲美女自拍偷拍 | 亚洲大片免费看 | 神马午夜av | 在线免费中文字幕 | 亚洲欧美日韩偷拍 | 清冷男神被c的合不拢腿男男 | 四虎国产成人精品免费一女五男 | 少妇高潮av | 一本大道综合伊人精品热热 | 高清毛片aaaaaaaaa郊外 | 久久久久久影院 | 久久久精品亚洲 | 中文字幕亚洲高清 | 99re6在线精品视频免费播放 | 中文字幕www | 国产美女明星三级做爰 | 男人的天堂99 | 黄色大片儿. | 欧美性受xxxxx | 成人手机在线播放 | 欧美猛操 | 色成人综合 | 我要看一级黄色片 | 黄色av大全 | 亚洲第一黄 | 亚洲巨乳 | 超碰中文字幕在线 | 我们2018在线观看免费版高清 |