天天看點

監督學習:邏輯回歸1 邏輯回歸理論知識2 代碼複現

目錄

1 邏輯回歸理論知識

邏輯回歸算法是幹什麼的?

邏輯回歸模型的假設函數:

決策邊界(decision boundary)

損失函數

為什麼用這損失函數?

損失函數的求導:

2 代碼複現

1 邏輯回歸理論知識

邏輯回歸算法是幹什麼的?

答:(單變量)線性回歸算法是試圖找到一條直線去拟合資料,而邏輯回歸算法是試圖找到一根線,去分隔資料,是一種分類算法,如下圖:

監督學習:邏輯回歸1 邏輯回歸理論知識2 代碼複現
監督學習:邏輯回歸1 邏輯回歸理論知識2 代碼複現

邏輯回歸模型的假設函數:

  1. 監督學習:邏輯回歸1 邏輯回歸理論知識2 代碼複現
    1. 其中,X代表特征向量,g代表邏輯函數,一個常用的邏輯函數是sigmoid函數。
  2. 為什麼要用個sigmoid函數?答:對于給定的輸入變量,函數要輸出一個分類的機率值,取值在0~1之間。

決策邊界(decision boundary)

監督學習:邏輯回歸1 邏輯回歸理論知識2 代碼複現

損失函數

線上性回歸中,我們用誤差平方和作為損失函數,但是如果将下面這種假設函數帶入誤差平方和損失函數中,它會是一個非凸函數,即有很多局部最小值,會影響梯度下降尋找全局最小值。

監督學習:邏輯回歸1 邏輯回歸理論知識2 代碼複現
監督學習:邏輯回歸1 邏輯回歸理論知識2 代碼複現

線性回歸的損失函數是:

監督學習:邏輯回歸1 邏輯回歸理論知識2 代碼複現

我們重新定義邏輯回歸損失函數為如下:

監督學習:邏輯回歸1 邏輯回歸理論知識2 代碼複現

為什麼用這損失函數?

  • 要知道,y即分類标簽,其值要麼是1要麼是0,這就有:
監督學習:邏輯回歸1 邏輯回歸理論知識2 代碼複現
  • 公式中log就是ln()函數:
監督學習:邏輯回歸1 邏輯回歸理論知識2 代碼複現
  • h取值在0~1之間(因為是sigmoid的輸出),是以 h 和 Cost 關系圖如下:
監督學習:邏輯回歸1 邏輯回歸理論知識2 代碼複現

損失函數的求導:

監督學習:邏輯回歸1 邏輯回歸理論知識2 代碼複現

2 代碼複現

用numpy複現了文章開頭兩個案例圖的邏輯回歸,具體代碼在:

https://github.com/YM2025/machine_learning/tree/master/2_logistic_regression

繼續閱讀