国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

邏輯回歸(Logistic Regression)

這篇具有很好參考價值的文章主要介紹了邏輯回歸(Logistic Regression)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

入門小菜鳥,希望像做筆記記錄自己學(xué)的東西,也希望能幫助到同樣入門的人,更希望大佬們幫忙糾錯啦~侵權(quán)立刪。?

目錄

一、邏輯回歸簡介與用途

二、邏輯回歸的理論推導(dǎo)

1、問題描述和轉(zhuǎn)化

2、初步思路:找一個線性模型來由X預(yù)測Y

3、Sigmoid函數(shù)(邏輯函數(shù))

4、剛剛的線性模型與Sigmoid函數(shù)合體

5、條件概率

6、極大似然估計

7、求最小值時的w的兩種方法——補充說明

三、多類邏輯回歸

四、正則化

1、L1正則化

2、L2正則化

五、邏輯回歸python實現(xiàn)

1、庫函數(shù)LogisticRegression中的常用參數(shù)的介紹

2、實際應(yīng)用

?六、邏輯回歸的優(yōu)缺點

1、優(yōu)點

2、缺點


一、邏輯回歸簡介與用途

邏輯回歸是線性分類器(線性模型)—— 主要用于二分類問題

【拓:如何判別一個模型是否為線性模型

理論上分辨:線性模型是可以用曲線來擬合樣本的,但是分類的決策邊界一定是直線的

數(shù)學(xué)表達(dá)上分辨:表達(dá)式中的系數(shù)w乘上自變量x(一個w系數(shù)影響一個自變量維度x)】


二、邏輯回歸的理論推導(dǎo)

前方n多公式預(yù)警(如果推錯了麻煩跟我說一下,謝謝啦~)

1、問題描述和轉(zhuǎn)化

??一個二分類問題給的條件:

分類標(biāo)簽Y {0,1},特征自變量X{x1,x2,……,xn}

如何根據(jù)我們現(xiàn)在手頭上有的特征X來判別它應(yīng)該是屬于哪個類別(0還是1)

??問題的求解轉(zhuǎn)化為:

我們?nèi)绾握乙粋€模型,即一個關(guān)于X的函數(shù)來得出分類結(jié)果(0或1)

2、初步思路:找一個線性模型來由X預(yù)測Y

邏輯回歸(Logistic Regression)

但是很明顯,這樣的函數(shù)圖像是類似一條斜線,難以達(dá)到我們想要的(0或1)的取值

所以我們引入了一個特殊的函數(shù):

3、Sigmoid函數(shù)(邏輯函數(shù))

??公式

邏輯回歸(Logistic Regression)

??圖像

邏輯回歸(Logistic Regression)

?由圖像可見,這樣我們就能很好的分類(0或1)

4、剛剛的線性模型與Sigmoid函數(shù)合體

??第一步:

邏輯回歸(Logistic Regression)

??第二步:

邏輯回歸(Logistic Regression)

這樣我們就把取值控制在了0或1上,初步達(dá)成了我們的目標(biāo)。

5、條件概率

我們令??邏輯回歸(Logistic Regression),則可得??邏輯回歸(Logistic Regression)

若我們將y視為樣本x作為正例的概率,那么1-y則為樣本x作為反例的概率,二者的比值為,

因此??被稱為對數(shù)幾率。

因此有:邏輯回歸(Logistic Regression)

所以推出了:

邏輯回歸(Logistic Regression)

邏輯回歸(Logistic Regression)

6、極大似然估計

思想:如果一個事件發(fā)生了,那么發(fā)生這個事件的概率就是最大的。對于樣本i,其類別為。對于樣本i,可以把h(Xi)看成是一種概率。yi對應(yīng)是1時,概率是h(Xi)(即Xi屬于1的概率,即上面的p(Y=1|X));yi對應(yīng)是0時,概率是1-h(Xi)(Xi屬于0的概率,即上面的p(Y=0|X))。

即有:

max[?邏輯回歸(Logistic Regression)?]

其中i是從0到k(k:屬于類別1的個數(shù)),i從k+1到n(屬于類別0的個數(shù)為n-k)。由于y是標(biāo)簽0或1,所以上面的式子也可以寫成:

max [??]

對它取對數(shù),并且除以樣本總數(shù)n(減少梯度爆炸出現(xiàn)的概率),再乘以負(fù)1(將求最大值問題轉(zhuǎn)化為求最小值問題,即轉(zhuǎn)化為求下式的最小值):

化簡得:

邏輯回歸(Logistic Regression)

接下來的任務(wù)就是求解當(dāng)上式最小時的w啦~

7、求最小值時的w的兩種方法——補充說明

??方法一:梯度下降法(一階收斂)

通過 J(w) 對 w 的一階導(dǎo)數(shù)來找下降方向,并以迭代的方式來更新參數(shù)

邏輯回歸(Logistic Regression)

(這里的k代表的是第k次迭代;是我們設(shè)定的學(xué)習(xí)率;就是我們上面所說的?)

停止迭代的條件可以是:

(1)到達(dá)最大迭代次數(shù)

(2)到達(dá)規(guī)定的誤差精度,即邏輯回歸(Logistic Regression)小于等于我們設(shè)定的閾值

??方法二:牛頓法(二階收斂)

思想:在現(xiàn)有極小值點的估計值的附近對 f(x) 做二階泰勒展開,進(jìn)而找到極小值點的下一個估計值。

假設(shè)??為當(dāng)前的極小值點的估計值,則該點的J(w)二階泰勒展開為:

邏輯回歸(Logistic Regression)

(注意:這里不是絕對等于,而是近似等于)

當(dāng)?Δw?無線趨近于0時上式絕對相等,此時上式等價于(相當(dāng)于上式可以對求導(dǎo)):

(但是這里我有點不太明白:為什么上式中的邏輯回歸(Logistic Regression)可以當(dāng)?Δw?無線趨近于0時近似抵消掉,為什么后面的就可以留下來,而不是當(dāng)成0處理掉,腦袋瓜亂亂的,希望有朋友能跟我說一下,謝謝~)

, 即邏輯回歸(Logistic Regression)

感謝@weixin_56957451博友的提醒,以上塊的第二種思路是:

假設(shè)??為當(dāng)前的極小值點的估計值,則該點的J(w)一階泰勒展開為:

邏輯回歸(Logistic Regression)

然后再進(jìn)行求導(dǎo),令導(dǎo)函數(shù)為0:

邏輯回歸(Logistic Regression)

同樣可以推出?邏輯回歸(Logistic Regression),而且更好理解

因此又可以寫為:

邏輯回歸(Logistic Regression)

其中為海森矩陣,即:

??拓展:梯度下降法Vs牛頓法

牛頓法因為是二階收斂,所以收斂速度很快,但是逆計算很復(fù)雜,代價比較大,計算量恐怖

梯度下降法:越接近最優(yōu)值時,步長應(yīng)該不斷減小,否則會在最優(yōu)值附近來回震蕩,計算相對來說會簡單一些。


三、多類邏輯回歸

假設(shè)一共分為K類,那么公式換為以下兩個:

邏輯回歸(Logistic Regression)

邏輯回歸(Logistic Regression)


四、正則化

正則化的意義:避免過擬合。

模型如果很復(fù)雜,變量值稍微變動一下,就會引起預(yù)測精度的問題。正則化可以避免過擬合的原因就是它降低了特征的權(quán)重,使得模型更簡單。

主要思想:保留所有的特征變量,因為我們不太清楚要舍掉哪個特征變量,并且又想盡可能保留信息。所以我們只能是懲罰所有變量,讓每個特征變量對結(jié)果的影響值變小,這樣的話你擬合出來的模型才會更光滑更簡單,從而減少過擬合的可能性。

1、L1正則化

邏輯回歸(Logistic Regression)

即損失函數(shù)再加一項正則化系數(shù)乘上L1正則化表達(dá)式

(?決定懲罰力度,過高可能會欠擬合,過小無法解決過擬合)?

作用:L1正則化有特征篩選的作用,對所有參數(shù)的懲罰力度都一樣,可以讓一部分權(quán)重變?yōu)榱悖ń稻S),因此產(chǎn)生稀疏模型,能夠去除某些特征(權(quán)重為0則等效于去除)

2、L2正則化

邏輯回歸(Logistic Regression)

即損失函數(shù)再加一項正則化系數(shù)乘上L2正則化表達(dá)式

作用:使各個維度權(quán)重普遍變小,減少了權(quán)重的固定比例,使權(quán)重平滑


五、邏輯回歸python實現(xiàn)

1、庫函數(shù)LogisticRegression中的常用參數(shù)的介紹

from sklearn.linear_model import LogisticRegression

(1)penalty:表示懲罰項(正則化類型)。字符串類型,取值為’l1’ 或者?‘l2’,默認(rèn)為’l2’。

l1:向量中各元素絕對值的和,作用是產(chǎn)生少量的特征,而其他特征都是0,常用于特征選擇;

l2:向量中各個元素平方之和,作用是選擇較多的特征,使他們都趨近于0。

注意:如果模型的特征非常多,我們想要讓一些不重要的特征系數(shù)歸零,從而讓模型系數(shù)稀疏化的話,可以使用l1正則化。

(2)tol:浮點型,默認(rèn)為1e-4;表示迭代終止判斷的誤差范圍

(3)C:浮點型(為正的浮點數(shù)),默認(rèn)為1.0;表示正則化強度的倒數(shù)(目標(biāo)函數(shù)約束條件)。數(shù)值越小表示正則化越強。

(4)solver:用于優(yōu)化問題的算法。取值有{'newton-cg', 'lbfgs', 'liblinear', 'sag', 'saga'},默認(rèn)為'liblinear';

對于小數(shù)據(jù)集來說,“l(fā)iblinear”就夠了,而“sag”和'saga'對于大型數(shù)據(jù)集會更快。

對于多類問題,只有'newton-cg', 'sag', 'saga'和'lbfgs'可以處理多項損失;“l(fā)iblinear”僅限于一對一分類。

注意:上面的penalty參數(shù)的選擇會影響參數(shù)solver的選擇。如果是l2正則化,那么4種算法{‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’}都可以選擇。但如果penalty是l1正則化的話,就只能選擇‘liblinear’了。這是因為L1正則化的損失函數(shù)不是連續(xù)可導(dǎo)的,而{‘newton-cg’, ‘lbfgs’,‘sag’}這三種優(yōu)化算法時都需要損失函數(shù)的一階或者二階連續(xù)導(dǎo)數(shù)。而‘liblinear’并沒有這個依賴。

(5)multi_class:字符串類型,取值有{ovr', 'multinomial'},默認(rèn)為'ovr';

如果選擇的選項是“ovr”,那么則為“one-versus-rest(OvR)”分類。multinomial則為“many-vs-many(MvM)”分類。

“one-versus-rest(OvR)”分類:無論你是多少元的邏輯回歸,都可以看做多個二元邏輯回歸的組合。具體做法是:對于第K類的分類決策,我們把所有第K類的樣本作為正例,除了第K類樣本以外的所有樣本都作為負(fù)例,然后在上面做二元邏輯回歸,得到第K類的分類模型。其他類的分類模型獲得以此類推。

“many-vs-many(MvM)”分類:如果模型有T類,我們每次在所有的T類樣本里面選擇兩類樣本出來,不妨記為T1類和T2類,把所有的輸出為T1和T2的樣本放在一起,把T1作為正例,T2作為負(fù)例,進(jìn)行二元邏輯回歸,得到模型參數(shù)。我們一共需要T(T-1)/2次分類(即組合數(shù))。

(6)n_jobs:整數(shù)類型,默認(rèn)是1;

如果multi_class='ovr' ,則為在類上并行時使用的CPU核數(shù)。無論是否指定了multi_class,當(dāng)將

' solver ’設(shè)置為'liblinear'時,將忽略此參數(shù)。如果給定值為-1,則使用所有核。

2、實際應(yīng)用

來個簡單的小栗子

我們使用sklearn里的乳腺癌數(shù)據(jù)集

from sklearn.datasets import load_breast_cancer 
cancer = load_breast_cancer()

然后對數(shù)據(jù)進(jìn)行一個處理,讓我們看起來舒服點,計算機處理也舒服點

data=cancer["data"]
col = cancer['feature_names']
x = pd.DataFrame(data,columns=col)#就是那些個特征
target = cancer.target.astype(int)
y = pd.DataFrame(target,columns=['target'])#對應(yīng)特征組合下的類別標(biāo)簽

訓(xùn)練集測試集分分類

from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,random_state=1)

直接進(jìn)入訓(xùn)練

model = LogisticRegression()#默認(rèn)參數(shù)
model.fit(x_train, y_train)

訓(xùn)練出來的模型對test集進(jìn)行一個預(yù)測

y_pred = model.predict(x_test)
print(classification_report(y_test, y_pred))

完整代碼如下:

from sklearn.datasets import load_breast_cancer 
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
import warnings
warnings.filterwarnings('ignore')

cancer = load_breast_cancer()
data=cancer["data"]
col = cancer['feature_names']
x = pd.DataFrame(data,columns=col)
target = cancer.target.astype(int)
y = pd.DataFrame(target,columns=['target'])
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,random_state=1)
model = LogisticRegression()
model.fit(x_train, y_train)
y_pred = model.predict(x_test)
print(classification_report(y_test, y_pred))

我們訓(xùn)練出的模型的效果如下:

邏輯回歸(Logistic Regression)


?六、邏輯回歸的優(yōu)缺點

1、優(yōu)點

(1)適合分類場景

(2)計算代價不高,容易理解實現(xiàn)。

(3)不用事先假設(shè)數(shù)據(jù)分布,這樣避免了假設(shè)分布不準(zhǔn)確所帶來的問題。

(4)不僅預(yù)測出類別,還可以得到近似概率預(yù)測。

(5)目標(biāo)函數(shù)任意階可導(dǎo)。

2、缺點

(1)容易欠擬合,分類精度不高。

(2)數(shù)據(jù)特征有缺失或者特征空間很大時表現(xiàn)效果并不好。


歡迎大家在評論區(qū)批評指正,謝謝啦~文章來源地址http://www.zghlxwxcb.cn/news/detail-417719.html

到了這里,關(guān)于邏輯回歸(Logistic Regression)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • sklearn實現(xiàn)邏輯回歸(Logistic Regression)

    sklearn實現(xiàn)邏輯回歸(Logistic Regression)

    ?? 項目專欄:sklearn實現(xiàn)經(jīng)典機器學(xué)習(xí)算法(附代碼+原理介紹) ?? 哈嘍,親愛的小伙伴們,你們知道嗎?最近我們的粉絲群里有好多小可愛私信問我一些關(guān)于決策樹、邏輯回歸等機器學(xué)習(xí)的超級有趣的問題呢!?? 為了讓大家更輕松地理解,我決定開一個超可愛的專欄,叫做

    2024年02月21日
    瀏覽(20)
  • 邏輯回歸(Logistic Regression)原理(理論篇)

    邏輯回歸(Logistic Regression)原理(理論篇)

    目錄 一、邏輯回歸簡介及應(yīng)用 二、邏輯回歸的原理 (1)sigmoid函數(shù) (2)輸入和輸出形式 ?(3)基于目標(biāo)函數(shù)求解參數(shù)w 三、邏輯回歸代碼復(fù)現(xiàn) ? ? ? ? logistic回歸又稱logistic回歸分析,是一種廣義的線性回歸分析模型,常用于數(shù)據(jù)挖掘,疾病自動診斷,經(jīng)濟預(yù)測等領(lǐng)域。例

    2024年02月13日
    瀏覽(22)
  • 邏輯回歸(Logistic Regression)和正則化

    邏輯回歸(Logistic Regression)和正則化

    案例: 在分類問題中,我們嘗試預(yù)測的是結(jié)果是否屬于某一個類(例如正確或錯誤)。分類問題的例子有:判斷一封電子郵件是否是垃圾郵件;判斷一次金融交易是否是欺詐;之前我們也談到了腫瘤分類問題的例子,區(qū)別一個腫瘤是惡性的還是良性的。 二元分類問題: 將因

    2024年01月24日
    瀏覽(26)
  • 機器學(xué)習(xí)11:邏輯回歸-Logistic Regression

    目錄 1.計算概率 2.損失和正則化 2.1 邏輯回歸的損失函數(shù) 2.2 邏輯回歸中的正則化 3.參考文獻(xiàn)

    2024年02月11日
    瀏覽(29)
  • pytorch深度學(xué)習(xí)邏輯回歸 logistic regression
  • 機器學(xué)習(xí):基于邏輯回歸(Logistic Regression)對股票客戶流失預(yù)測分析

    機器學(xué)習(xí):基于邏輯回歸(Logistic Regression)對股票客戶流失預(yù)測分析

    作者:i阿極 作者簡介:Python領(lǐng)域新星作者、多項比賽獲獎?wù)撸翰┲鱾€人首頁 ??????如果覺得文章不錯或能幫助到你學(xué)習(xí),可以點贊??收藏??評論??+關(guān)注哦!?????? ??????如果有小伙伴需要數(shù)據(jù)集和學(xué)習(xí)交流,文章下方有交流學(xué)習(xí)區(qū)!一起學(xué)習(xí)進(jìn)步!?? 專欄案例:

    2023年04月26日
    瀏覽(28)
  • 多元回歸預(yù)測 | Matlab基于邏輯回歸(Logistic Regression)的數(shù)據(jù)回歸預(yù)測,多輸入單輸出模型

    多元回歸預(yù)測 | Matlab基于邏輯回歸(Logistic Regression)的數(shù)據(jù)回歸預(yù)測,多輸入單輸出模型

    效果一覽 文章概述 多元回歸預(yù)測 | Matlab基于邏輯回歸(Logistic Regression)的數(shù)據(jù)回歸預(yù)測,多輸入單輸出模型 評價指標(biāo)包括:MAE、RMSE和R2等,代碼質(zhì)量極高,方便學(xué)習(xí)和替換數(shù)據(jù)。要求2018版本及以上。 部分源碼

    2024年02月13日
    瀏覽(23)
  • 吳恩達(dá)老師《機器學(xué)習(xí)》課后習(xí)題2之邏輯回歸(logistic_regression)

    吳恩達(dá)老師《機器學(xué)習(xí)》課后習(xí)題2之邏輯回歸(logistic_regression)

    用于解決輸出標(biāo)簽y為0或1的二元分類問題 判斷郵件是否屬于垃圾郵件? 銀行卡交易是否屬于詐騙? 腫瘤是否為良性? 等等。 案例:根據(jù)學(xué)生的兩門學(xué)生成績,建立一個邏輯回歸模型,預(yù)測該學(xué)生是否會被大學(xué)錄取 數(shù)據(jù)集:ex2data1.txt python實現(xiàn)邏輯回歸, 目標(biāo):建立分類器(求

    2024年02月09日
    瀏覽(25)
  • 數(shù)據(jù)分析之Logistic回歸分析(二元邏輯回歸、多元有序邏輯回歸、多元無序邏輯回歸)

    數(shù)據(jù)分析之Logistic回歸分析(二元邏輯回歸、多元有序邏輯回歸、多元無序邏輯回歸)

    在研究X對于Y的影響時: 如果Y為定量數(shù)據(jù),那么使用多元線性回歸分析; 如果Y為定類數(shù)據(jù),那么使用Logistic回歸分析。 結(jié)合實際情況,可以將Logistic回歸分析分為3類: 二元Logistic回歸分析 多元有序Logistic回歸分析 多元無序Logistic回歸分析 Logistic回歸分析用于研究X對Y的影響

    2024年03月13日
    瀏覽(30)
  • Logistic回歸(邏輯回歸)實戰(zhàn)案例分析

    Logistic回歸(邏輯回歸)實戰(zhàn)案例分析

    Lgistic回歸也叫邏輯回歸,是廣義線性回歸的一種,通常用于解決二分類問題。 表達(dá)式如下: 經(jīng)過logit變換,則可以寫成廣義線性表達(dá)式 通常做回歸是用其廣義線性表達(dá)式,且logistic回歸的結(jié)果概率表現(xiàn)為S型曲線,一般以小于0.5的樣本都分類為0,大于0.5的樣本都分類為1。

    2024年04月25日
    瀏覽(41)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包