天天看點

Task04:機率分類模型

一、分類概念

Task04:機率分類模型

分類要找一個function函數,輸入對象x的特征,輸出為該對象在n個類别中的哪一個類别裡。

  1. 例子1:信用評分【二分類問題】
    • 輸入:收入,儲蓄,行業,年齡,信用指數……
    • 輸出:是否給予貸款
  2. 例子2:醫療診斷【多分類問題】
    • 輸入:目前症狀,年齡,性别,既往病史……
    • 輸出:患了哪種疾病

二、回歸模型 VS 機率模型

1、回歸模型

在解決分類問題時,假設還不了解怎麼做,但之前已經學過了 regression。就把分類當作回歸硬解。 舉一個二分類的例子,假設所分類對象的特征 x,判斷屬于類别1或者類别2,把這個當作回歸問題。

  • 類别1:相當于target是1。
  • 類别2:相當于target是-1。

然後訓練模型:因為是個數值,如果數值比較接近 1,就當作類别1,如果數值接近 -1,就當做類别2。

Task04:機率分類模型
  • 左圖:綠色是分界線,紅色叉叉就是 Class2 的類别,藍色圈圈就是 Class1 的類别。
  • 右圖:紫色是分界線,紅色叉叉就是Class2 的類别,藍色圈圈就是 Class1 的類别。訓練集添加有很多的距離遠大于1的資料後,分界線從綠色偏移到紫色。

這樣用回歸的方式硬訓練可能會得到紫色的這條。直覺上就是将綠色的線偏移一點到紫色的時候,就能讓右下角的那部分的值不是那麼大了。但實際是綠色的才是比較好的,用回歸硬訓練并不會得到好結果。此時可以得出用回歸的方式定義,對于分類問題來說是不适用的。

2、機率模型

(1)機率與分類的關系

Task04:機率分類模型

如上圖所示,假設已知紅色方框的值,當我們給出一個x,就可以計算出它是屬于那個類型的, P ( C 1 ∣ x ) \mathrm{P}\left(\mathrm{C}_{1} \mid \mathrm{x}\right) P(C1​∣x)和 P ( C 2 ∣ x ) \mathrm{P}\left(\mathrm{C}_{2} \mid \mathrm{x}\right) P(C2​∣x),哪個類别的機率大就屬于哪個類别。接下來就需要從訓練集中估測紅色方框中的值。因為有了這個模型,就可以生成一個 x,可以計算某個 x 出現的機率,知道了x 的分布,就可以自己産生 x 。

(2)高斯分布

高斯分布可被當作一個 function,輸入就是一個向量 x,輸出就是選中x的機率(實際上高斯分布不等于機率,隻是和機率成正比,這裡簡單說成機率)。 function由期望 μ \mu μ和協方差矩陣 ∑ \sum ∑決定。

Task04:機率分類模型

下圖第一張的例子是說同樣的 ∑ \sum ∑,不同的 μ \mu μ,機率分布的最高點的位置是不同的。下圖第二張的例子是同樣的 μ \mu μ,不同的 ∑ \sum ∑,機率分布的最高點是一樣的,但是離散度是不一樣的。

Task04:機率分類模型
Task04:機率分類模型

假設通過79個點估測出了期望 μ \mu μ和協方差矩陣 ∑ \sum ∑。期望是圖中的黃色點,協方差矩陣是紅色的範圍。現在給一個不在79個點之内的新點,用剛才估測出的期望和協方差矩陣寫出高斯分布的 f u n c t i o n   f μ , Σ ( x ) function \ f_{μ,Σ}(x) function fμ,Σ​(x),然後把 xx 帶進去,計算出被挑選出來的機率。

Task04:機率分類模型

(3)最大似然估計

首先對于這79個點,任意期望和協方差矩陣構成的高斯分布,都可以生成這些點。當然,像圖中左邊的高斯分布生成這些點,比右邊高斯分布生成這些點的幾率要大。那給一個 μ \mu μ和 ∑ \sum ∑,它生成這79個點的機率為圖中的 L ( μ , ∑ ) L(\mu,\sum) L(μ,∑), L ( μ , ∑ ) L(\mu,\sum) L(μ,∑) 也稱為樣本的似然函數。

Task04:機率分類模型

将使得 L ( μ , ∑ ) L(\mu,\sum) L(μ,∑)最大的 L ( μ , ∑ ) L(\mu,\sum) L(μ,∑) 記做 ( μ ∗ , ∑ ∗ ) (\mu^∗,\sum^∗) (μ∗,∑∗), ( μ ∗ , ∑ ∗ ) (\mu^∗,\sum^∗) (μ∗,∑∗) 就是所有 L ( μ , ∑ ) L(\mu,\sum) L(μ,∑) 的 Maximum Likelihood(最大似然估計)。

Task04:機率分類模型

直接對 L ( μ , ∑ ) L(\mu,\sum) L(μ,∑)求兩個偏微分,求偏微分是0的點。

(4)分類模型

Task04:機率分類模型

根據上圖,可看出我們已經得到需要計算的值了,接下來就可以進行分類了。

Task04:機率分類模型

左上角的圖中藍色點是類别1,紅色點是類别2,圖中的顔色:越偏向紅色代表是類别1 的可能性越高,越偏向藍色代表是類别2的可能性越低。

右上角在訓練集上進行分類的結果,紅色就是 P(C1|x)P(C1|x) 大于0.5的部分,是屬于類别1,相對藍色屬于類别2。右下角是放在測試集上進行分類的結果。

(5)模型優化

通常來說,不會給每個高斯分布都計算出一套不同的最大似然估計,協方差矩陣是和輸入feature大小的平方成正比,是以當feature很大的時候,協方差矩陣是可以增長很快的。此時考慮到model參數過多,容易Overfitting,為了有效減少參數,給描述這兩個類别的高斯分布相同的協方差矩陣。如下圖所示。

Task04:機率分類模型
Task04:機率分類模型

根據模型優化得到右圖新的結果,分類的boundary是線性的,是以也将這種分類叫做 linear model。如果考慮所有的屬性,發現正确率提高到了73%。

三、機率模型-模組化三部曲

實際做的就是要找一個機率分布模型,可以最大化産生data的likelihood。

Task04:機率分類模型

後驗機率

将 P(C1|x)整理,得到一個 σ(z),這叫做Sigmoid function。

Task04:機率分類模型

數學推導:

Task04:機率分類模型

根據 ∑ 1 \sum_1 ∑1​等于 ∑ 2 \sum_2 ∑2​等于 ∑ \sum ∑,化簡得到:

Task04:機率分類模型

最終得到:

P ( C 1 ∣ x ) = σ ( w ⋅ x + b ) P ( C 1 ∣ x ) = σ ( w ⋅ x + b ) P(C 1 \mid x)=\sigma(w \cdot x+b) P(C 1 \mid x)=\sigma(w \cdot x+b) P(C1∣x)=σ(w⋅x+b)P(C1∣x)=σ(w⋅x+b)

從這個式子也可以看出上述當共用協方差矩陣的時候,為什麼分界線是線性的。

繼續閱讀