生成學習演算法:對p(x
,y)p(x,y)
p(x,y)
進行建模,具體是p(y
)p(y)
p(y)
和p (x
∣y)p(x|y)
p(x∣y)
**的時候,利用貝葉斯公式:
可以看到,兩個多變數高斯分布的均值向量不同,但是協方差矩陣是一樣的。
然後對資料進行對數極大似然估計:
得到極大似然引數估計:
擴充套件:
高斯判別分析和logistic regression
高斯判別分析可以寫成下面的形式,和logistic regression形式一樣。
gda做了更強的假設,p(x
∣y)p(x|y)
p(x∣y)
服從多變數高斯分布,均值向量不同,協方差矩陣相同。而logistic regression沒有做任何假設。因此,當高斯分布的假設正確的時候,使用gda更好,否則使用logistic regression.
極大似然估計:
得到:
上面是二值特徵,即每個特徵非0即1。
當特徵的取值可以取多個的時候,p(x
i∣y)
p(x_i|y)
p(xi∣
y)是多項式分布。
當特徵是連續值的時候,可以將連續特徵離散化。
拉普拉斯平滑:
未引入拉普拉斯平滑會出現的問題:p(x
i=a∣
y)p(x_i=a|y)
p(xi=
a∣y)
為0,如果在訓練集中xi=
ax_i=a
xi=
a未出現過。
擴充套件:
樸素貝葉斯模型在很多問題上都表現得不錯。前面用於文字分類中,每個特徵取值為0或1,為1表示出現在文件中,為0表示不出現在文件中。每個特徵是伯努利分布。
還可以多項式分布,每次生成乙個詞的時候,扔骰子決定(骰子的面數是詞彙個數)
演算法學習 子集生成
子集生成 include include include include include include using namespace std 快速冪運算 巧算 m 1010 利用二進位制 intmypow 4 int n,int m return result 逐步生成 迭代 setint ge...
演算法學習之最小生成樹prim演算法
首先描述一下prim演算法的步驟,首先將所有的點分為兩類,第一類是在生成樹中的節點,第二類是不在生成樹中的節點,我們首先任取乙個節點放入生成樹中,然後找到距離這棵樹 當前狀態就是這個點 最近的點,然後將其放入到生成樹中,之後再進行尋找距離這棵樹最近的點,直到將所有的節點都加入到生成樹中。我們發現其實...
演算法 括號生成
給出 n 代表生成括號的對數,請你寫出乙個函式,使其能夠生成所有可能的並且有效的括號組合。例如,給出 n 3,生成結果為 class solution private void generate int left,int right,string str,listresult if right le...