欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python機(jī)器學(xué)習(xí)Logistic回歸原理推導(dǎo)

 更新時(shí)間:2022年06月09日 10:35:18   作者:是日秋和  
這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)Logistic回歸原理推導(dǎo),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

Logistic回歸涉及到高等數(shù)學(xué),線性代數(shù),概率論,優(yōu)化問(wèn)題。本文盡量以最簡(jiǎn)單易懂的敘述方式,以少講公式原理,多講形象化案例為原則,給讀者講懂Logistic回歸。如對(duì)數(shù)學(xué)公式過(guò)敏,引發(fā)不適,后果自負(fù)。

Logistic回歸原理與推導(dǎo)

Logistic回歸中雖然有回歸的字樣,但該算法是一個(gè)分類(lèi)算法,如圖所示,有兩類(lèi)數(shù)據(jù)(紅點(diǎn)和綠點(diǎn))分布如下,如果需要對(duì)兩類(lèi)數(shù)據(jù)進(jìn)行分類(lèi),我們可以通過(guò)一條直線進(jìn)行劃分(w0 * x0 + w1 * x1+w2 * x2)。當(dāng)新的樣本(x1,x2)需要預(yù)測(cè)時(shí),帶入直線函數(shù)中,函數(shù)值大于0,則為綠色樣本(正樣本),否則為紅樣本(負(fù)樣本)。

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

sigmoid函數(shù)

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

目標(biāo)函數(shù)

其實(shí),我們現(xiàn)在就是求W,如何求W呢,我們先看下圖,我們都能看出第二個(gè)圖的直線切分的最好,換句話說(shuō),能讓這些樣本點(diǎn)離直線越遠(yuǎn)越好,這樣對(duì)于新樣本的到來(lái),也具有很好的劃分,那如何用公式表示并計(jì)算這個(gè)目標(biāo)函數(shù)呢?

這時(shí)就需要這個(gè)目標(biāo)函數(shù)的值最大,以此求出θ。

梯度上升法

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

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

利用梯度算法計(jì)算該函數(shù)的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回歸實(shí)踐

數(shù)據(jù)情況

讀入數(shù)據(jù),并繪圖顯示:

def loadDataSet():
    dataMat = [];labelMat = []
    fr = open('數(shù)據(jù)/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

訓(xùn)練算法

利用梯度迭代公式,計(jì)算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

通過(guò)計(jì)算的weights繪圖,查看分類(lèi)結(jié)果

算法優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):易于理解和計(jì)算
  • 缺點(diǎn):精度不高

以上就是python機(jī)器學(xué)習(xí)Logistic回歸原理推導(dǎo)的詳細(xì)內(nèi)容,更多關(guān)于python機(jī)器學(xué)習(xí)Logistic回歸的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • keras分類(lèi)模型中的輸入數(shù)據(jù)與標(biāo)簽的維度實(shí)例

    keras分類(lèi)模型中的輸入數(shù)據(jù)與標(biāo)簽的維度實(shí)例

    這篇文章主要介紹了keras分類(lèi)模型中的輸入數(shù)據(jù)與標(biāo)簽的維度實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • Python 操作 MongoDB 講解詳細(xì)

    Python 操作 MongoDB 講解詳細(xì)

    MongoDB是一款開(kāi)源的、基于分布式的、面向文檔存儲(chǔ)的非關(guān)系型數(shù)據(jù)庫(kù)。擁有高性能、高可用,易擴(kuò)展的優(yōu)點(diǎn),并且支持豐富的查詢(xún)語(yǔ)言來(lái)支持讀寫(xiě)操作以及更復(fù)雜的查詢(xún)等。接下來(lái)我們來(lái)看一下如何使用Python操作MongoDB數(shù)據(jù)庫(kù)
    2021-09-09
  • Python實(shí)現(xiàn)PS圖像明亮度調(diào)整效果示例

    Python實(shí)現(xiàn)PS圖像明亮度調(diào)整效果示例

    這篇文章主要介紹了Python實(shí)現(xiàn)PS圖像明亮度調(diào)整效果,結(jié)合實(shí)例形式分析了Python基于skimage模塊調(diào)整圖片明亮度的原理與具體操作技巧,需要的朋友可以參考下
    2018-01-01
  • python模塊之re正則表達(dá)式詳解

    python模塊之re正則表達(dá)式詳解

    正則表達(dá)式是一種小型的、高度專(zhuān)業(yè)化的編程語(yǔ)言,并不是python中特有的,是許多編程語(yǔ)言中基礎(chǔ)而又重要的一部分。在python中,主要通過(guò)re模塊來(lái)實(shí)現(xiàn)。這篇文章主要介紹了python模塊之re正則表達(dá)式詳解,需要的朋友可以參考下
    2017-02-02
  • python 計(jì)算概率密度、累計(jì)分布、逆函數(shù)的例子

    python 計(jì)算概率密度、累計(jì)分布、逆函數(shù)的例子

    這篇文章主要介紹了python 計(jì)算概率密度、累計(jì)分布、逆函數(shù)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • python中序列的逆序方式

    python中序列的逆序方式

    這篇文章主要介紹了python中序列的逆序方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 如何通過(guò)Python實(shí)現(xiàn)標(biāo)簽云算法

    如何通過(guò)Python實(shí)現(xiàn)標(biāo)簽云算法

    這篇文章主要介紹了如何通過(guò)Python實(shí)現(xiàn)標(biāo)簽云算法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python神經(jīng)網(wǎng)絡(luò)MobileNetV2模型的復(fù)現(xiàn)詳解

    python神經(jīng)網(wǎng)絡(luò)MobileNetV2模型的復(fù)現(xiàn)詳解

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)MobileNetV2模型的復(fù)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • IPython?8.0?Python?命令行交互工具

    IPython?8.0?Python?命令行交互工具

    這篇文章主要介紹了IPython?8.0?Python?命令行交互工具,IPython?是?Python?的原生交互式?shell?的增強(qiáng)版,可以完成許多不同尋常的任務(wù),下面我們就拉看看文章具體的介紹內(nèi)容吧
    2022-01-01
  • Python函數(shù)遞歸調(diào)用實(shí)現(xiàn)原理實(shí)例解析

    Python函數(shù)遞歸調(diào)用實(shí)現(xiàn)原理實(shí)例解析

    這篇文章主要介紹了Python函數(shù)遞歸調(diào)用實(shí)現(xiàn)原理過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08

最新評(píng)論