自己寫了邏輯回歸的**之後,對邏輯回歸的本質有了一點感覺,在我看來,邏輯回歸本質就是用來求乙個線性函式 f,這個f可以把一些資料點分成兩類,而h=1/(1+e^-z)實際就是乙個中間函式。下面描述演算法的框架
按理說有了f(x)=w0+w1*x,以及資料點,就可以根據平方損失函式sum(y-f(x))^2求解引數w=[w0,w1]了,但是因為這個損失函式是非凸函式,也就是有很多區域性最優解,所以不能用直接求導得0的方式得到最優解,所以有了下面的過程。
上面的損失函式不行,自然要找新的損失函式,這裡利用了對數似然損失函式,參考鏈結, 不再細說,直接得到損失函式:
j=-[(1-y)ln(1-h)+yln(h)](h是邏輯回歸函式)
有了損失函式,就要使損失函式取最小值,利用牛頓法或者梯度下降法,關於梯度下降法的思想,其實也就是梯度的改變引數的值,使得引數取得某個值的時候,函式取得區域性最小值。參考梯度下降
其中需要對損失函式j求導,求導過程參考損失函式求導
這裡直接提供結果是:
其實也就可以簡化為
w(n+1)=w(n)-step*(h-y)*x
梯度下降總不能是一直迭代,需要設定乙個迭代結束的條件,可以是設定迭代次數,設定差值的最小值等方式
迭代結束後得到最優解 w=[w0,w1,w2] 的結果,此時便應該帶回原來的線性函式了。
以上是整個演算法的框架
但是還有一些問題要解釋一下,
邏輯回歸函式h=1/(1+e^-z)和上述流程有什麼關係
在步驟2中的新損失函式是依賴了 h 函式才得到的。
線性函式f(x)=w0+w1*x怎麼和w相關的
f 函式可以寫作w0+w1*x+w2*y=0的形式,這種形式也就正好約定了資料點只能是二維的,也就是包含兩個所謂的自變數x1和x2,和乙個表示分類結果的因變數。在這裡x1和x2分別對應 f 的x 和y,所以最後得到w後的直線方程應該是y=-(w0+w1*x)/w2
學機器學習當真要靜心凝神
機器學習演算法 邏輯回歸
二.代價函式求解 三.sklearn 引數說明 四.常見問題 參考lr 是一種簡單 高效的常用分類模型,能處理二分類或者多分類。sigmoid 函式 對線性回歸的結果做乙個在函式g上的轉換,可以變化為邏輯回歸,這個函式g在邏輯回歸中我們一般取為sigmoid函式,形式如下 g z 11 e z g ...
機器學習相關演算法理解
以id3演算法為代表 特徵為幹,類別為葉 以乾為據,劃樣入葉 以kmeans演算法為代表 隨機選聚類中心 計算所有樣本點到每個聚類中心的距離,進行組別初步劃分 計算組內各樣本點到本組聚類中心距離均值,得出聚類中心在本組的最佳位置 再次計算所有樣本點到各聚類中心距離,判斷是否需要重新劃分組別,如果需要...
機器學習演算法之邏輯回歸
本部分將講解機器學習演算法中最為常用的邏輯回歸演算法,該演算法的講解主要來自於andrewng deeplearning.ai中部分課程的知識結合書籍中部分數學理論知識,將以較為易懂並部分深入的講解,講解中存在大量手寫體的公式及推導。邏輯回歸演算法中有幾個基本點需要知道 首先了解下二分類演算法需要解...