1. 程式人生 > >線性判別分析

線性判別分析

線性判別分析(Linear Discriminant Analysis)

 

在分類器的理論中,貝葉斯分類器是最優的分類器,而為了得到最優的分類器,我們就需要知道類別的後驗概率P(Ck|x)。

這裡假設fk(x)是類別Ck的類條件概率密度函式,πk 是類別Ck的先驗概率,毫無疑問有∑kπk=1。根據貝葉斯理論有:

 

 

由於πk幾乎是已知的,所以對於貝葉斯公式而言,最重要的就是這個類條件概率密度函式fk(x),很多演算法之所以不同,主要的就是對這個類條件概率密度函式的引數形式的假設不同,比如:

線性判別分析(LDA)假設fk(x)是均值不同,方差相同的高斯分佈

二次判別分析(QDA)假設fk(x)是均值不同,方差也不同的高斯分佈

高斯混合模型(GMM)假設fk(x)是不同的高斯分佈的組合

很多非引數方法假設fk(x)是引數的密度函式,比如直方圖

樸素貝葉斯假設fk(x)是Ck邊緣密度函式,即類別之間是獨立同分布的

 

各種演算法的不同,基本上都是來至於對類條件概率密度函式的不同,這一點在研究分類演算法的時候,一定要銘記在心。

 

前面已經說過了LDA假設fk(x)是均值不同,方差相同的高斯分佈,所以其類條件概率密度函式可以寫為:

 

 

這裡,特徵xx的維度為pp維,類別CkCk的均值為μkμk,所有類別的方差為ΣΣ。

 

在前面提到過,一個線性分類器,在判別式函式δk(x)或者後驗概率函式P(Ck|x)上加上一個單調函式f(⋅)後,可以得變換後的函式是x的線性函式,而得到的線性函式就是決策面。LDA所採用的單調變換函式f(⋅)和前面提到的Logistics Regression採用的單調變換函式一樣,都是logit 函式:log[p/(1−p)],對於二分類問題有:

 

 

可以看出,其決策面是一個平面。

 

根據上面的式子,也可以很容易得到LDA的決策函式是:

 

 

 

 

二次判別分析QDA

二次判別函式假設fk(x)是均值不同,方差也不同的高斯分佈,和LDA相比,由於Σk是不一樣 ,所以其二次項存在,故其決策面為:

 

 

其對應的判別函式為:

 

 

使用

# 線性判別式分析

    lda = LinearDiscriminantAnalysis(solver='svd', store_covariance=True)

    y_pred = lda.fit(X, y).predict(X)

 

# 二次判別分析

    qda = QuadraticDiscriminantAnalysis(store_covariances=True)

    y_pred = qda.fit(X, y).predict(X)