中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python機器學習Logistic回歸原理是什么

發布時間:2022-06-09 13:51:57 來源:億速云 閱讀:170 作者:iii 欄目:開發技術

這篇“python機器學習Logistic回歸原理是什么”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“python機器學習Logistic回歸原理是什么”文章吧。

Logistic回歸原理與推導

Logistic回歸中雖然有回歸的字樣,但該算法是一個分類算法,如圖所示,有兩類數據(紅點和綠點)分布如下,如果需要對兩類數據進行分類,我們可以通過一條直線進行劃分(w0 * x0 + w1 * x1+w2 * x2)。當新的樣本(x1,x2)需要預測時,帶入直線函數中,函數值大于0,則為綠色樣本(正樣本),否則為紅樣本(負樣本)。

推廣到高維空間中,我們需要得到一個超平面(在二維是直線,在三維是平面,在n維是n-1的超平面)切分我們的樣本數據,實際上也就是求該超平面的W參數,這很類似于回歸,所以取名為Logistic回歸。

python機器學習Logistic回歸原理是什么

sigmoid函數

當然,我們不直接使用z函數,我們需要把z值轉換到區間[0-1]之間,轉換的z值就是判斷新樣本屬于正樣本的概率大小。 我們使用sigmoid函數完成這個轉換過程,公式如下。通過觀察sigmoid函數圖,如圖所示,當z值大于0時,σ值大于0.5,當z值小于0時,σ值小于于0.5。利用sigmoid函數,使得Logistic回歸本質上是一個基于條件概率的判別模型。

python機器學習Logistic回歸原理是什么

目標函數

其實,我們現在就是求W,如何求W呢,我們先看下圖,我們都能看出第二個圖的直線切分的最好,換句話說,能讓這些樣本點離直線越遠越好,這樣對于新樣本的到來,也具有很好的劃分,那如何用公式表示并計算這個目標函數呢?

python機器學習Logistic回歸原理是什么

這時就需要這個目標函數的值最大,以此求出θ。

梯度上升法

在介紹梯度上升法之前,我們看一個中學知識:求下面函數在x等于多少時,取最大值。

解:求f(x)的導數:2x,令其為0,求得x=0時,取最大值為0。但在函數復雜時,求出導數也很難計算函數的極值,這時就需要使用梯度上升法,通過迭代,一步步逼近極值,公式如下,我們順著導數的方向(梯度)一步步逼近。

利用梯度算法計算該函數的x值:

def f(x_old):
         return -2*x_old
def cal():
     x_old  = 0
     x_new = -6
     eps = 0.01
     presision = 0.00001
     while abs(x_new-x_old)>presision:
        x_old=x_new
        x_new=x_old+eps*f(x_old)
     return x_new
-0.0004892181072978443

Logistic回歸實踐

數據情況

讀入數據,并繪圖顯示:

def loadDataSet():
    dataMat = [];labelMat = []
    fr = open('數據/Logistic/TestSet.txt')
    for line in fr.readlines():
        lineArr = line.strip().split()
        dataMat.append([1.0, float(lineArr[0]), float(lineArr[1])])
        labelMat.append(int(lineArr[2]))
    return dataMat, labelMat

訓練算法

利用梯度迭代公式,計算W:

def sigmoid(inX):
    return 1.0/(1 + np.exp(-inX))
def gradAscent(dataMatIn, labelMatIn):
    dataMatrix = np.mat(dataMatIn)
    labelMat = np.mat(labelMatIn).transpose()
    m,n = np.shape(dataMatrix)
    alpha = 0.001
    maxCycles = 500
    weights = np.ones((n,1))
    for k in range(maxCycles):
        h = sigmoid(dataMatrix * weights)
        error = labelMat - h
        weights = weights + alpha * dataMatrix.transpose() * error
    return weights

通過計算的weights繪圖,查看分類結果

算法優缺點

  • 優點:易于理解和計算

  • 缺點:精度不高

以上就是關于“python機器學習Logistic回歸原理是什么”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

滨州市| 张家港市| 大庆市| 石楼县| 东乌珠穆沁旗| 定兴县| 巩义市| 洪湖市| 余庆县| 永城市| 通渭县| 恩平市| 三明市| 都兰县| 囊谦县| 郧西县| 隆子县| 许昌市| 彭水| 高唐县| 南丹县| 浮山县| 西和县| 大同县| 汤阴县| 阳西县| 江门市| 闽清县| 黑河市| 金山区| 乾安县| 历史| 丰宁| 定安县| 香格里拉县| 西贡区| 且末县| 麻城市| 宁国市| 礼泉县| 叙永县|