【機器學習1】線性回歸與邏輯回歸

?邏輯回歸與線性回歸的主要區別在于理論基礎、應用場景和數學模型。

1 線性回歸

1.1 理論基礎

線性回歸主要用于建模自變量與連續性因變量之間關系的統計方法,試圖利用一條線來擬合自變量與因變量之間的線性關系。

1.2 應用場景

從應用場景來說,適用于連續數值的預測,如房價預測股票價格預測等。線性回歸模型假設因變量與自變量之間存在線性關系,適用于那些關系可以近似為直線的情況?

1.3 數學建模

1.3.1 模型的建立
以房價預測為例,建立一個線性模型:
y = b + ∑ w i x i y=b+ \sum_ {} w_ix_i y=b+?wi?xi?
其中 w i w_i wi?是參數, x i x_i xi?是因變量,一些影響房價的因素(面積,交通是否便利等), y y y是最終預測房價值。
1.3.2 參數的評估(損失函數)
如何評估一組參數 w i w_i wi?的好壞呢?將這組參數代入模型,計算得到預測房價 y p r e y_{pre} ypre?與真實房價之間的差距 y t r u e y_{true} ytrue?,將其定義為 l o s s loss loss l o s s loss loss越小,說明預測值與真實值之間的差距越小,則說明這組參數越好,反之亦然。
L ( f ) = L ( w , b ) L(f)=L(w,b) L(f)=L(w,b)
L ( f ) = ∑ ( y t r u e ? ( b + w i x i ) ) 2 L(f)= \sum_{} (y_{true}-(b+w_ix_i))^2 L(f)=?(ytrue??(b+wi?xi?))2
**1.3.3 參數優化 **
如何挑選最好的function,使得 l o s s loss loss最小?
f ? = a r g m i n ∑ ( y t r u e ? ( b + w i x i ) ) 2 f^*=arg min \sum_{} (y_{true}-(b+w_ix_i))^2 f?=argmin?(ytrue??(b+wi?xi?))2,其中矩陣 w w w,矩陣 b b b是待優化的參數
只要 f ? f^* f?是可微分的,我們可以使用梯度下降(Gradient sescent)來優化 f ? f^* f?的參數 w w w, b b b.

  • 首先考慮 f ? f^* f?只有一個參數 w w w的情況下。
  1. 隨機初始化參數 w 0 w^0 w0;
    2.計算參數 w 0 w^0 w0對loss的微分 d L d w ∣ w = w 0 \frac{dL}{dw} |_{w=w^0} dwdL?w=w0?的結果
    3.如果如果斜率是負數,說明左邊的loss值更高,應該增大 w w w的值,找尋更小的loss值如果斜率是正數,應該減 w w w的值。在這里插入圖片描述
    減少或者增加的w的大小應該如何選擇呢:
    取決于兩個因素:
    斜率計算出來的數值,第二個是 η η η學習率(learning_rate)
    w 1 ← w 0 ? η ? d L d w ∣ w = w 0 w^1 \leftarrow w^0 - \eta * \frac{dL}{dw} |_{w=w^0} w1w0?η?dwdL?w=w0?
    多次更新 w w w的數值,直到 l o s s loss loss到達一個局部最優值(local optimal)
  • 考慮 f ? f^* f?存在兩個參數 w w w b b b的情況下:
    1)隨機初始兩個參數值
    2)對其 l o s s loss loss分別計算偏微分
    在這里插入圖片描述
    gradient:所有偏導的向量矩陣
    在Linear regression中, the loss is convex,不存在local optimal

以上過程,模型在已知數據(訓練數據)上調整參數,可以作為回歸模型的訓練過程。模型在未知數據(測試集)上的表現,稱為模型的泛化程度(generalization)。模型越復雜,在訓練數據上就越擬合,但是可能會在測試數據上出現過擬合的情況。
在這里插入圖片描述
loss的主要來源:bias 和variance
在這里插入圖片描述
Simpler model is less influenced by the sampled data
一個較大的bias 導致每次預測結果在一個相近范圍,但與目標值較遠 模擬欠擬合,過于簡單

當model不能fit訓練集是是bias大
如果在訓練集上過擬合,測試集上無法fit說明variance大、

如果bias,
需要重新設計一個更為精細的模型,
添加更多的輸入特征

如果variance大的話:
增加data(數據增強)
Regularization 讓參數越少越好,曲線越平滑越好

There is usually a trade-off between bias and variance
選擇一個模型在這兩種error中總error最小的model

將training set 劃分為兩組:training set 和validation set
N-flod cross validation 幾折交叉驗證 算平均精度

2 邏輯回歸

2.1理論基礎

邏輯回歸用于建模自變量與離散型因變量之關系的統計方法,常使用邏輯函數建立自變量與因變量之間的非線性關系。

2.2 應用場景

適用于二分類問題的預測,如垃圾郵件分類腫瘤診斷金融欺詐檢測等。邏輯回歸通過sigmoid函數將輸出限制在0和1之間,適用于處理只有兩種可能結果的情況?

2.3 數學建模

2.3.1 邏輯函數

與線性回歸loss計算預測值與真實值之間的差距不同,邏輯回歸中,loss是計算模型在訓練數據上預測錯誤的次數。即:
L ( f ) = ∑ δ ( f ( x n ) ≠ y t r u e ) L(f)=\sum_{} \delta(f(x^n) \neq y^{true}) L(f)=?δ(f(xn)=ytrue)
這種情況下,無法微分,如果進行參數優化的步驟呢?

引入Sigmoid函數
Sigmoid函數的公式為 1 1 + e ? Z \frac{1}{1+e^{-Z}} 1+e?Z1?,其中 Z Z Z是線性組合的結果,Sigmoid函數的輸出范圍是(0, 1),非常適合表示概率。這意味著無論輸入值為何,通過Sigmoid函數處理后,輸出都在0到1之間,我們可以將這個值解釋為屬于某一類的概率?。

δ ( w , b ) = 1 1 + e ? ( w T x + b ) \delta(w,b)=\frac{1}{1+e^{-(w^Tx+b)}} δ(w,b)=1+e?(wTx+b)1?
此外,Sigmoid函數是可微的,這意味著我們可以計算它的導數,從而在使用梯度下降法優化邏輯回歸模型參數時,能夠直接根據Sigmoid函數的導數計算梯度,更新模型的權重和偏置?。

對數損失(Log Loss) 邏輯回歸采用極大似然估計推導損失函數,等價于最小化交叉熵損失(Cross-Entropy Loss)
對于單個樣本損失為:
L ( y i p r e , y i t r u e ) = ? y i p r e l o g ( y i t r u e ) ? ( 1 ? y i p r e ) l o g ( 1 ? y i t r u e ) ) L(y^{pre}_{i}, y_{i}^{true})=-y^{pre}_{i}log(y_{i}^{true})-(1-y^{pre}_{i})log(1-y_{i}^{true})) L(yipre?,yitrue?)=?yipre?log(yitrue?)?(1?yipre?)log(1?yitrue?))

以下內容摘抄 https://zhuanlan.zhihu.com/p/659617924
在信息論中,將一個事情的不確定性。稱為熵,如果一件事情發生的概率為 p i p_i pi?,其賭贏的熵則為 I ( p i ) = ? l o g ( p i ) I(p_i)=-log(p_i) I(pi?)=?log(pi?)。 其寓意在于,一個事情會發生的可能性越低,其包含的信息量(不確定性)就越大,
在這里插入圖片描述
從上圖很容易看到,當概率為1時,它表示時間發生的概率為100%,不存在不確定性,此時自信息為0,反之,概率越小,不確定性就越大,自信息也就越大。

如果訓練集有多個觀察樣本,我們希望所有樣本的熵之和最小(相當于混雜程度最小),在取得均值的情況下,可以描述為: ∑ i = 1 N I ( p i ) = ? 1 N ∑ i = 1 N l o g ( p i ) \sum_{i=1}^{N} I(p_i)= -\frac{1}{N} \sum_{i=1}^{N} log(p_i) i=1N?I(pi?)=?N1?i=1N?log(pi?)

期望值(Expectation,簡稱E)是對隨機變量可能取值的加權平均。每個取值的權重是它發生的概率。通過計算加權平均,我們可以得到隨機變量的期望值。

信息熵是一種數學方式來度量信息的平均不確定性,它也可以表述為,事件在所有可能情況下的自信息期望值,其計算公式如下:
H ( X ) = E x P [ I ( x ) ] = ∑ i p ( x i ) l o g 2 ( 1 p ( x i ) ) = ? ∑ i p ( x i ) l o g 2 ( p ( x i ) ) ) H(X)=E_{x~P}[I(x)]=\sum_{i} p(x_i)log_2(\frac{1}{p(x_i)})=-\sum_{i} p(x_i)log_2(p(x_i))) H(X)=Ex?P?[I(x)]=i?p(xi?)log2?(p(xi?)1?)=?i?p(xi?)log2?(p(xi?)))

其中, H ( X ) H(X) H(X)表示隨機變量 X X X的信息熵, p ( x i ) p(x_i) p(xi?)是隨機變量 X X X取值為 x i x_i xi?的概率, l o g 2 ( 1 p ( x i ) ) log_2(\frac{1}{p(x_i)}) log2?(p(xi?)1?)就是 p ( x i ) p(x_i) p(xi?)概率下的編碼長度, E x P E_{x~P} Ex?P? 表示編碼長度的數學期望.

在本質上,對數損失其實求的也是一種熵,即也是一種編碼長度的期望,不過這個期望有點不同。不同之處在于:用于求編碼長度的概率,來自于模型的實際輸出 y i p r e y^{pre}_{i} yipre?,取值介于0~1之間,它對應的編碼長度記做 l o g ( 1 y i t r u e ) log(\frac{1}{y^{true}_{i}}) log(yitrue?1?) ,但評價這個編碼長度的權值,卻來自于真實概率 y i t r u e {y^{true}_{i}} yitrue?.即 ? y i p r e l o g ( y i t r u e ) -y^{pre}_{i}log(y_{i}^{true}) ?yipre?log(yitrue?)

同理,二分類問題中,另一個對立面,可以計算其熵為: ( 1 ? y i p r e ) ? ( 1 ? l o g ( y i t r u e ) ) (1-y^{pre}_{i})-(1-log(y_{i}^{true})) 1?yipre??1?log(yitrue?))

又因為,對于特定實例,前面兩項情況只有一個成立,因此可以巧妙地把上述這兩種情況統一在一起,便于統一操作,即可得到: ? y i p r e l o g ( y i t r u e ) ? ( 1 ? y i p r e ) l o g ( 1 ? y i t r u e ) ) -y^{pre}_{i}log(y_{i}^{true})-(1-y^{pre}_{i})log(1-y_{i}^{true})) ?yipre?log(yitrue?)?(1?yipre?)log(1?yitrue?))

Sigmoid 函數:

σ ( z ) = 1 1 + e ? z \sigma(z) = \frac{1}{1 + e^{-z}} σ(z)=1+e?z1?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/86027.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/86027.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/86027.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

小程序 頂部欄標題欄 下拉滾動 漸顯白色背景

![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/3164fd0e6d6848efaa1e87e02c35179e.png 下拉 100px 后 變成漸變成白色 顯示原理 <wd-navbar fixed safeAreaInsetTop :bordered"false":custom-style"background-color: rgba(255, 255, 255, op…

Java底層原理:深入理解類加載機制與反射

一、Java類加載機制 Java類加載機制是Java運行時環境的重要組成部分&#xff0c;它負責將字節碼文件加載到JVM內存中&#xff0c;并將其轉換為可執行的類。類加載機制的實現涉及類加載器&#xff08;ClassLoader&#xff09;、類加載過程和類加載器的層次結構。 &#xff08;…

Android 中查看數據庫內容方式

一、背景 創建的db數據庫&#xff0c;有時候需要查看數據庫中的數據內容,或者查看數據是否有更新到數據等等。這時候就需要查看數據庫的內容。 二、數據庫路徑 博主用的是第三方的greendao數據庫框架,生成的.db文件路徑如下:(路徑僅供參考) /data/data/app_package/database…

unity實現浮動組件

目錄 前言方法后言組件代碼 前言 在unity中&#xff0c;要讓一個物體變得讓人感到輕飄飄的&#xff0c;就可以給一個物體添加上浮動組件。今天我們就來實現它。 方法 我們先來看一下 sin ? \sin sin函數的曲線。 在這條曲線上&#xff0c;隨著 x x x向右移動&#xff0c; y…

Cisco Nexus93240接口帶寬顯示異常高故障- bug

hardware: cisco N93240 software: 9.3(10) 1個萬兆接口&#xff0c;顯示的rate超出幾萬倍 開case查詢&#xff0c;告知是bug&#xff0c;需要版本升級解決。

pyhton基礎【15】函數進階一

目錄 一. 函數進階 1. 默認參數&#xff1a; 2. 關鍵字參數&#xff1a; 3. 可變參數&#xff1a; 4. 裝飾器&#xff1a; 5. 匿名函數lambda&#xff1a; 6. 高階函數&#xff1a; 7. 遞歸函數&#xff1a; 8. 類型注解&#xff1a; 二.函數參數的高級使用 缺…

【軟考高級系統架構論文】論企業應用系統的數據持久層架構設計

論文真題 數據持久層 (Data Persistence Layer) 通常位于企業應用系統的業務邏輯層和數據源層之間,為整個項目提供一個高層、統一、安全、并發的數據持久機制,完成對各種數據進行持久化的編程工作,并為系統業務邏輯層提供服務。它能夠使程序員避免手工編寫訪問數據源的方法…

ubuntu使用 Conda 安裝 pyseer詳細教程

pyseer 是一個用于 微生物全基因組關聯分析(GWAS) 的生物信息學工具。它可以幫助研究者識別微生物(如細菌)中與表型(如耐藥性、毒力、致病性)相關的遺傳變異。 一、安裝mamba conda install -n base -c conda-forge mamba二、創建虛擬環境 conda create -n pyseer-env …

Redis04

redis 一、redis的作用和使用場景 redis是一個內存級的高速緩存數據庫。&#xff08;對比磁盤IO&#xff09; 使用場景&#xff1a;1、并發訪問量大的 2、數據量小 3、修改不頻繁 項目中&#xff1a;1、驗證碼 2、登錄成功用戶信息 3、首頁&#xff08;模塊數據 輪播圖&…

計算機網絡學習筆記:TCP可靠傳輸實現、超時重傳時間選擇

文章目錄 一、TCP可靠傳輸實現二、TCP超時重傳時間選擇 一、TCP可靠傳輸實現 TCP可靠傳輸的實現&#xff0c;主要基于發送方和接收方的滑動窗口&#xff0c;以及確認機制&#xff1a; 發送方在未收到確認&#xff08;ACK&#xff09;前&#xff0c;可以將序號落在發送窗口內的…

Perl 正則表達式

Perl 正則表達式 引言 Perl 正則表達式&#xff08;Regular Expressions&#xff09;是Perl編程語言中一個強大且靈活的工具&#xff0c;用于字符串處理和模式匹配。正則表達式在文本處理、數據驗證、搜索和替換等任務中發揮著至關重要的作用。本文將深入探討Perl正則表達式的…

Security: RSA: 1024 bit 長度已經變得不安全了

文章目錄 參考推薦限制RHEL相關配置man crypto-policies包含的應用使用方法是配置文件include參考 https://csrc.nist.gov/pubs/sp/800/57/pt1/r2/final https://www.linuxquestions.org/questions/linux-security-4/1024-bit-dsa-vs-2048-bit-rsa-4175439131/ https://csrc.n…

第一課:大白話中的機器學習

各位看官好啊!今天咱們來聊一個聽起來高大上但實際上特別接地氣的玩意兒——機器學習。別被這名字嚇到,它其實就是教電腦像人類一樣學習知識的一套方法。想象一下你教你家狗子坐下、握手的過程,機器學習差不多就是這么回事,只不過"學生"換成了電腦。 一、啥是機…

實現 el-table 中鍵盤方向鍵導航功能vue2+vue3(類似 Excel)

實現 el-table 中鍵盤方向鍵導航功能vue2vue3&#xff08;類似 Excel&#xff09; 功能需求 在 Element UI 的 el-table 表格中實現以下功能&#xff1a; 使用鍵盤上下左右鍵在可編輯的 el-input/el-select 之間移動焦點焦點移動時自動定位到對應單元格支持光標位置自動調整…

MyBatis:從入門到進階

&#x1f4cc; 摘要 在 Java 后端開發中&#xff0c;MyBatis 是一個非常流行且靈活的持久層框架。它不像 Hibernate 那樣完全封裝 SQL&#xff0c;而是提供了對 SQL 的精細控制能力&#xff0c;同時又具備 ORM&#xff08;對象關系映射&#xff09;的功能。 本文將帶你從 MyB…

leetcode51.N皇后:回溯算法與沖突檢測的核心邏輯

一、題目深度解析與N皇后問題本質 題目描述 n皇后問題研究的是如何將n個皇后放置在nn的棋盤上&#xff0c;并且使皇后彼此之間不能相互攻擊。給定一個整數n&#xff0c;返回所有不同的n皇后問題的解決方案。每一種解法包含一個明確的n皇后問題的棋子放置方案&#xff0c;該方…

算法-每日一題(DAY9)楊輝三角

1.題目鏈接&#xff1a; 118. 楊輝三角 - 力扣&#xff08;LeetCode&#xff09; 2.題目描述&#xff1a; 給定一個非負整數 numRows&#xff0c;生成「楊輝三角」的前 numRows 行。 在「楊輝三角」中&#xff0c;每個數是它左上方和右上方的數的和。 示例 1: 輸入: numRo…

【MATLAB代碼】制導方法介紹與例程——追蹤法,適用于二維平面,目標是移動的|附完整源代碼

追蹤法(追蹤導引法)是一種常見的導彈導引方式,其基本原理是保持導彈的速度矢量始終指向目標。在追蹤法中,導彈的加速度可以表示為指向目標的加速度。 本文給出二維平面下,移動目標的追蹤法導引的介紹、公式與matlab例程 訂閱專欄后,可以直接查看完整源代碼 文章目錄 運行…

小白的進階之路系列之十八----人工智能從初步到精通pytorch綜合運用的講解第十一部分

從零開始的NLP:使用序列到序列網絡和注意力機制進行翻譯 我們將編寫自己的類和函數來預處理數據以完成我們的 NLP 建模任務。 在這個項目中,我們將訓練一個神經網絡將法語翻譯成英語。 [KEY: > input, = target, < output]> il est en train de peindre un table…

SSL安全證書:數字時代的網絡安全基石

SSL安全證書&#xff1a;數字時代的網絡安全基石 在當今數字化浪潮中&#xff0c;網絡通信安全已成為個人、企業和組織不可忽視的核心議題。SSL&#xff08;Secure Sockets Layer&#xff0c;安全套接層&#xff09;安全證書作為保障數據傳輸安全的關鍵技術&#xff0c;通過加…