日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习——逻辑回归算法

發布時間:2025/4/5 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习——逻辑回归算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 邏輯回歸算法
    • 邏輯回歸概念
    • Sigmoid函數
    • 邏輯回歸模型
    • 代價函數
    • 最終運用梯度下降求解
    • 實驗
    • 總結

邏輯回歸算法

首先明確一個概念,邏輯回歸并不是解決回歸問題,而是解決分類問題,它是通過訓練數據中的正負例,學習樣本特征得到標簽之間的假設函數,是一種典型的線性分類器。

邏輯回歸概念

面對一個回歸或者分類問題,建立代價函數,然后通過優化方法迭代求解出最優的模型參數,然后測試驗證求解模型的好壞。

邏輯回歸實際是一種分類方法,主要用于兩分類問題,即輸出只有兩種,分別代表兩個類別。用Sigmoid函數就可以讓邏輯回歸只能輸出兩種值。

Sigmoid函數

Logistic函數(或Sigmoid函數),函數形式為:

對應圖形如下:


可以看出,Sigmoid函數是一個S型的曲線,它的取值在[0,1]之間,在遠離0的地方函數值會很快接近0或1。可以思考,一個事件發生的概率是在0到1之間的,每一個概率都可以映射到函數的某一個值上,就可以歸類為超過50%的概率更容易實現歸一為1,低于50%的概率更不容易實現歸一為0,這樣就存在了只有0/1的二分類問題。

邏輯回歸模型

邏輯回歸模型所做的假設是:


可以發現,這里離將Sigmoid函數中的變量x換成了一個線性回歸公式,組成了新的邏輯回歸公式。

代價函數

邏輯回歸算法也是用最大似然估計來學習的,所以單個樣本的后驗概率為:

這是一個二項分布的整合式,相當于當y取1時,式子取h(x),而當y取0時,式子取1-h(x)。那么整個樣本的后驗概率為:

轉換成矩陣式,取對數可以得到對數似然度:

最終運用梯度下降求解

對數似然是越大越好的,求梯度下降需要在式子前邊加負號,轉變為求解最小值。所以求偏導的式子可以表示為:

最終可以化簡為:

可以說,沿梯度負方向選擇一個較小的步長可以保證代價函數是減小的,另一方面代價函數是凸函數,可以保證找到的局部最優值是全局最優。

實驗

利用梯度下降實現邏輯回歸模型,下述代碼用于求解y=2x1+x2+3,即使用梯度下降法求解y=ax1+bx2+c中參數a、b、c的最優值:

import numpy as np import matplotlib.pyplot as pltrate = 0.001 x_train = np.array([[1,2], [2,1], [2,3], [3,5], [1,3], [4,2], [7,3], [4,5], [11,3], [8,7]]) y_train = np.array([7,8,10,14,8,13,20,16,28,26]) x_test = np.array([[1,4], [2,2], [2,5], [5,3], [1,5], [4,1]])a = np.random.normal() b = np.random.normal() c = np.random.normal()def h(x):return a * x[0] + b * x[1] + cfor i in range(100):sum_a = 0sum_b = 0sum_c = 0for x, y in zip(x_train, y_train):for xi in x:sum_a = sum_a + rate * (y - h(x)) * xisum_b = sum_b + rate * (y - h(x)) * xia = a + sum_ab = b + sum_bc = c + sum_cplt.plot([h(xi) for xi in x_test])print(a) print(b) print(c)result = [h(xi) for xi in x_train] print(result)result = [h(xi) for xi in x_test] print(result)plt.show()

算法求得的a、b、c的最優值和效果圖如圖所示:

總結

邏輯回歸具有一些優點:形式簡單,模型的可解釋性非常好。從特征的權重可以看到不同的特征對最后結果的影響,某個特征的權重值比較高,那么這個特征最后對結果的影響會比較大。訓練速度較快。分類的時候,計算量僅僅只和特征的數目相關,訓練的速度可以通過堆機器進一步提高,這樣我們可以在短時間內迭代好幾個版本的模型。

但是邏輯回歸本身也有許多的缺點:準確率并不是很高。因為形式非常的簡單(非常類似線性模型),很難去擬合數據的真實分布。很難處理數據不平衡的問題。舉個例子:如果我們對于一個正負樣本非常不平衡的問題,比如正負樣本比 10000:1,我們把所有樣本都預測為正也能使損失函數的值比較小。但是作為一個分類器,它對正負樣本的區分能力不會很好。處理非線性數據較麻煩。邏輯回歸在不引入其他方法的情況下,只能處理線性可分的數據,或者進一步說,處理二分類的問題 。

總結

以上是生活随笔為你收集整理的机器学习——逻辑回归算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。