機器學習之經典演算法之(二十六) 最大似然估計

2021-08-21 00:18:07 字數 1491 閱讀 7332

(一)、最大似然估計簡介:

最大似然法(maximumlikelihood,ml)也稱為最大概似估計,也叫極大似然估計,是一種具有理論性的點估計法,此方法的基本思想是:當從模型總體隨機抽取n組樣本觀測值後,最合理的引數估計量應該使得從模型中抽取該n組樣本觀測值的概率最大,而不是像最小二乘估計法旨在得到使得模型能最好地擬合樣本資料的引數估計量。

最大似然估計是一種統計方法,它用來求乙個樣本集的相關概率密度函式的引數。這個方法最早是遺傳學家以及統計學家羅納德·費雪爵士在 1912 年至1922 年間開始使用的。

最大似然法明確地使用概率模型, 其目標是尋找能夠以較高概率產生觀察資料的系統發生樹。 

(二)、最大似然估計一般步驟:

最大似然估計的一般過程為:

1. 寫出似然函式;

2. 如果無法直接求導的話,對似然函式取對數;

3. 求導數 ;

4. 求解模型中引數的最優值。

最大似然估計的特點:

1.比其他估計方法更加簡單;

2.收斂性:無偏或者漸近無偏,當樣本數目增加時,收斂性質會更好;

3.如果假設的類條件概率模型正確,則通常能獲得較好的結果。但如果假設模型出現偏差,將導致非常差的估計結果。

(三)、

scipy

使用舉例:

from scipy importoptimize

#假設f模型為正態分佈,引數分為單參和雙參。

def log_likelihood1(theta, f, e):
return-.5*np.sum(np.log(2*np.pi*e**2)+(f-theta[0])**2/(e**2))
def log_likelihood2(theta, f, e):
return -

.5*np.sum(np.log(2*np.pi*(theta[1]**2+e**2))+(f-theta[0])**2/(theta[1]**2+e**2))

def neg_log_likelihood(theta, f, e):

return-log_likelihood(theta, f, e)

theta_gauss = [900, 5]

theta_est = optimize.fmin(func=neg_log_likelihood,x0=theta_gauss, args=(f, e))

**參考:

演算法系列之二十六 字串匹配之KMP演算法

一 簡介 kmp演算法是一種改進的字串匹配演算法,由d.e.knuth與v.r.pratt和j.h.morris同時發現,因此人們稱它為克努特 莫里斯 普拉特操作 簡稱kmp演算法 kmp演算法的關鍵是利用匹配失敗後的資訊,儘量減少模式串與主串的匹配次數以達到快速匹配的目的。二 基於部分匹配表的km...

演算法導論 第二十六章最大流

一,概念 1 流網路 簡單有向圖,且有兩個特別的頂點 源點s,匯點t 2 流的邊標識為f u,v c u,v 流量 容量 3 流的三個性質 1 容量限制 對於所有邊 流量 容量 2 反對稱性 f u,v f v,u 3 流守恆性 正向流與反響流之和為零 4 割 流網路g v,e 的割 s,t 將頂點...

機器學習經典演算法之(二十一) 嶺回歸

一 嶺回歸簡介 線性回歸最主要問題是對異常值敏感。在真實世界的資料收集過程中,經過會遇到錯誤的度量結果。而線性回歸使用的普通最小二乘法,其目標是使平方誤差最小化。這時,由於異常值誤差的絕對值很大,因此破壞整個模型。如何解決呢?我們引入正則化項的係數作為閾值來消除異常的影響。這個方法稱為嶺回歸。具體原...