維特比演算法實現 李航《統計學習方法》

2021-09-26 07:16:44 字數 1128 閱讀 7550

% 維特比演算法實現

% 參考:李航《統計學習方法》 p208

% author: xueqing, 2019-08-19

%% 輸入

% a: 盒子狀態轉移矩陣

% b: 觀測概率矩陣;

% pi:初始概率分布

% ou: 觀測序列

a = [0.5, 0.2, 0.3; 0.3, 0.5, 0.2; 0.2, 0.3, 0.5];

b = [0.5, 0.5; 0.4, 0.6; 0.7, 0.3];

pi = [0.2; 0.4; 0.4];

ou = [1, 2, 1]; % 1表示紅,2表示白

%% 演算法過程

delta = zeros(length(a), length(ou)); % 狀態記錄矩陣

phi = zeros(size(delta)); % 狀態回溯矩陣

% 初始化

delta(:,1) = pi .* b(:,ou(1));

% 迭代

for t = 2:length(ou) % 對每個時刻

for h = 1:length(a) % 對每個盒子/狀態

[delta(h,t), idx] = max( delta(:,t-1).* a(:,h) * b(h,ou(t)) );

phi(h,t) = idx; % 相對於書上的公式多了bi(o);對結果無影響

endend% 確定最優路徑

[px, ix] = max(delta(:,length(ou))); % px:最優路徑概率;ix:最優路徑終點

% 回溯

i = zeros(size(ou)); % 記錄最優路徑的矩陣/向量

i(length(ou)) = ix;

for t = length(ou)-1:-1:1

ixt = phi(i(t+1),t+1);

i(t) = ixt;

end%% 輸出

% i: 最優路徑

i

統計學習方法概論 《統計學習方法》李航著

統計學習由 監督學習,非監督學習,半監督學習和強化學習組成。監督學習方法主要包括 分類 標註 與 回歸問題 回歸問題 輸入變數 和 輸出變數 均為連續變數的 問題 分類問題 輸出變數為有限個離散變數的 問題 標註問題 輸入與輸出變數均為變數序列的 問題 統計學習三要素 模型,策略,演算法 損失函式度...

(李航統計學習方法)提公升方法

本文主要包括adaboost和提公升樹,後期會擴充套件到xgboost和lightgbm。boosting通過改變樣本訓練權重,學習多個弱分類器,最後進行線性組合,提高分類效能。兩個著重點 如何改變資料的樣本權重或概率分布 如何將弱分類器整合成強分類器 初始化樣本資料權重,假設樣本權重均勻分布,得到...

《統計學習方法》 李航 學習大綱

最近在學習李航寫的統計學習方法概論,每一章都用xmind理清了思路,括號裡是書裡的公式,第一次寫博文,敬請指教 第一章 統計學習方 第二章 感知機 每個方法其實只需要著重掌握三要素和輸入輸出就可以了,主要看模型 策略和演算法。感知機主要是二類分類的線性分類模型。看到後面會注意感知機和支援向量機的區別...