1. 程式人生 > >高斯判別分析演算法及其python實現

高斯判別分析演算法及其python實現

高斯判別分析演算法(Gaussian discriminat analysis)

高斯判別演算法是一個典型的生成學習演算法(關於生成學習演算法可以參考我的另外一篇部落格)。在這個演算法中,我們假設p(x|y)服從多元正態分佈。

注:在判別學習演算法中,我們假設p(y|x)服從一維正態分佈,這個很好類比,因為在模型中輸入資料X通常是擁有很多維度的,所以對於X的條件概率建模時要取多維正態分佈。

多元正態分佈

多元正態分佈也叫多元高斯分佈,這個分佈的兩個引數分別是平均向量μn和一個協方差矩陣n×n

關於協方差矩陣的定義;假設X是由n個標量隨機變數組成的列向量,並且μk

是第k個元素的期望值,即μk=E(Xk),那麼協方差矩陣被定義為

=E{(XE(X))(XE(X)T)}=E[(X1μ1)(X1μ1)]E[(X2μ2)(X1μ1)]E[(Xnμn)(X1μ1)]E[(X1μ1)(X2μ2)]E[(X2μ2)(X2μ2)]E[(Xnμn)(X2μ2)]E[(X1μ1)(Xnμn)]E[(X2μ2)(Xnμn)]E[(Xnμn)(Xnμn)]

矩陣第(i,j)個元素表示XiXj的協方差。協方差矩陣是對稱而且是半正定的。

多元高斯分佈可以記為N(u⃗ ,),其概率密度的具體表達式為(比較複雜,但知道形式就好,具體推導中用處較少)

p(x,μ,Σ)=1(2π)n/2|Σ|12exp(12(xμ)TΣ1(xμ))

在上面的公式中,|Σ|表示的是協方差矩陣的行列式,對一個隨機變數X服從N(

相關推薦

判別分析演算法及其python實現

高斯判別分析演算法(Gaussian discriminat analysis) 高斯判別演算法是一個典型的生成學習演算法(關於生成學習演算法可以參考我的另外一篇部落格)。在這個演算法中,我們假設p(x|y)服從多元正態分佈。 注:在判別學習演算法中,

斯坦福機器學習筆記1:GDA判別分析演算法的原理及matlab程式實現

ps:我本身沒有系統的學過matlab程式設計,所以有的方法,比如求均值用mean()函式之類的方法都是用很笨的方法實現的,所以有很多需要改進的地方,另外是自學實現的程式,可能有的地方我理解錯誤,如果有錯誤請提出來,大家一起學習,本人qq553566286 首先,本文用到的

影象模糊演算法及其 C 實現

高斯模糊的基本思路是根據二維 正太分佈 正態分佈 (感謝 xhr 大牛指正錯別字) 公式生成一個高斯矩陣, 求新影象中的每一點時, 將高斯矩陣的中心對準舊影象的這一點, 並將所有點根據高斯矩陣上對應的點加權平均. 二維正態分佈公式如下: u, v 分別為水平、豎直距離. 觀察可得, 當 r>3σ

生成學習演算法_判別分析_樸素貝葉_斯坦福CS229_學習筆記

Part IV Generative Learning Algorithms 回顧上一部分的內容,我們解決問題的出發點在於直接對p(y|x;)建模:如線性迴歸中y建模為高斯分佈,邏輯迴歸y建模為伯努利分佈。這樣建模的好處在於可以直接得到x到y的對映關係,理解起來也比較直接。這樣建模

EM(期望最大演算法)在混合模型中的python實現

以下程式碼僅實現了兩個高斯混合模型在均勻分佈條件下的引數估計,想要實現完全隨機的非均勻分佈的多高斯混合模型,可在上面加以修改。具體參考書中的9.3.2節 ##python實現## import math #import copy import numpy

生成學習演算法判別分析模型

第四部分  生成學習演算法 到目前為止,我們主要討論了建模——給定下的的條件分佈——的學習演算法。例如,邏輯迴歸把建模成,這裡是sigmoid函式。在這些講義中,我們將討論一種不同形式的學習演算法。 考慮一個分類問題,在這個分類問題中,我們想基於一個動物的一些特徵,來學習

判別分析 Gaussian Discriminant Analysis

方差 targe clas blog log 通過 post 高斯 gist 之前我們分析Logistic Regression,通過求p(y|x)來判定數據屬於哪一個輸出分類,這種直接判定的方法稱為Discriminative Learning Algorithms,但還

順序消元法(Python實現

main python實現 ber seq rev div 順序 inf break # coding: utf8 import numpy as np # 設置矩陣 def getInput(): matrix_a = np.mat([[2, 3, 11,

統計概率模型-判別分析

統計概率模型 1、高斯判別分析 2、樸素貝葉斯 3、隱馬爾可夫模型 4、最大熵馬爾科夫模型 5,條件隨機場 6,馬爾科夫決策過程 一、高斯判別分析 一、生成模型 ​ 機器學習模型有一種分類方式:判別模型和生成

經典查詢演算法及其Python實現

寫在前面上一篇介紹了幾大排序演算法,從基本原理解釋到Python程式碼實現,平時有空的話還需要經常翻出來複習複習。今天就主要來看看另外一大類演算法:經典查詢演算法。本篇相關python程式碼已上傳至Github:使勁兒點!1.基本概念查詢就是根據給定的某個值,在查詢表中確定一

機器學習之樸素貝葉(NB)分類演算法Python實現

樸素貝葉斯(Naive Bayesian)是最為廣泛使用的分類方法,它以概率論為基礎,是基於貝葉斯定理和特徵條件獨立假設的分類方法。 一、 概述 1.1 簡介 樸素貝葉斯(Naive Bayesian)是基於貝葉斯定理和特徵條件獨立假

判別分析模型The Gaussian Discriminant Analysis model

高斯判別模型,內容其實非常簡單 對於大多數模型,無非就是做這麼幾件事情 1.假設模型 2.設定引數,表示概率 3.用最大似然,通過樣本算出引數 4.用得到的引數,再去測試資料裡計算概率 高斯模型判別是是這樣,因為是判別嗎,所以我們就把判別結果用0,1兩種結果來表

分類-3-生成學習-2-判別分析、協方差

多元高斯分佈 多變數高斯分佈描述的是 n維隨機變數的分佈情況,這裡的μ變成了向量, σ也變成了矩陣Σ。寫作N(μ,Σ)。其中Σ(協方差矩陣)是一個半正定的矩陣,μ是高斯分佈的均值,下面給出它的概率密度函式: begin-補充-協方差和協方差矩

資料結構與演算法:常見排序演算法及其python實現

0、 綜合分析 0.1 排序演算法的種類及時間限制 常見排序演算法一般分為非線性時間比較類排序和線性時間非比較類排序。 比較類排序演算法時間複雜度的下限為O(nlog⁡n)O(n\log n)O(nlogn),非比較類排序演算法不受比較式排序演算法的時間下

斯坦福機器學習: 網易公開課系列筆記(五)——判別分析、樸素貝葉

高斯判別分析(Gaussian discriminant analysis) 判別模型和生成模型       前面我們介紹了Logistic迴歸,通過學習hΘ(x)來對資料的分類進行預測:給定一個特徵向量x→輸出分類y∈{0,1}。這類通過直接

頻繁項集挖掘Apriori演算法及其Python實現

Apriori演算法是通過限制候選產生髮現頻繁項集。 Apriori演算法使用一種稱為逐層搜尋的迭代方法,其中k項集用於探索(k+1)項集。首先,通過掃描資料庫,累計每個項的計數,並收集滿足最小支援度的項,找出頻繁1項集的集合,記為L1。然後,使用L1找出頻繁

狄克特拉演算法Python實現(個人獨創)易於理解和擴充套件。

狄克斯特拉演算法的基礎關係模型如下: 它解決的是從起點到終點的最佳路線問題。 如果把上圖的數字代表耗時,那就是要找到耗時最短的路徑。 由於本人較懶,先將原始碼給出來,之後有時間再解釋程式碼的意思。 下面程式碼針對的關係模型如下: # 資料關係模型用字典巢狀字

SMOTE演算法及其python實現

SMOTE(Synthetic Minority Oversampling Technique),合成少數類過取樣技術.它是基於隨機過取樣演算法的一種改進方案,由於隨機過取樣採取簡單複製樣本的策略來增加少數類樣本,這樣容易產生模型過擬合的問題,即使得模型學習到的

機器學習之深入理解神經網路理論基礎、BP演算法及其Python實現

  人工神經網路(Artificial Neural Networks,ANN)系統是 20 世紀 40 年代後出現的。它是由眾多的神經元可調的連線權值連線而成,具有大規模並行處理、分散式信 息儲存、良

線性判別分析(LDA)和python實現(多分類問題)

上一篇寫過線性判別分析處理二分類問題https://blog.csdn.net/z962013489/article/details/79871789,當使用LDA處理多分類問題時,通常是作為一個降維工具來使用的。若我們有一個D維的樣本集,該樣本集包含C個類別共