% 維特比演算法實現
% 參考:李航《統計學習方法》 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理清了思路,括號裡是書裡的公式,第一次寫博文,敬請指教 第一章 統計學習方 第二章 感知機 每個方法其實只需要著重掌握三要素和輸入輸出就可以了,主要看模型 策略和演算法。感知機主要是二類分類的線性分類模型。看到後面會注意感知機和支援向量機的區別...