自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

干貨!機(jī)器學(xué)習(xí)中 5 種必知必會(huì)的回歸算法!

人工智能 機(jī)器學(xué)習(xí) 算法
神經(jīng)網(wǎng)絡(luò)的強(qiáng)大令人難以置信的,但它們通常用于分類。信號(hào)通過(guò)神經(jīng)元層,并被概括為幾個(gè)類。但是,通過(guò)更改最后的激活功能,它們可以非??焖俚剡m應(yīng)回歸模型。

 提到回歸算法,我想很多人都會(huì)想起線性回歸,因?yàn)樗ㄋ滓锥曳浅:?jiǎn)單。但是,線性回歸由于其基本功能和有限的移動(dòng)自由度,通常不適用于現(xiàn)實(shí)世界的數(shù)據(jù)。

實(shí)際上,它只是經(jīng)常用作評(píng)估和研究新方法時(shí)進(jìn)行比較的基準(zhǔn)模型。在現(xiàn)實(shí)場(chǎng)景中我們經(jīng)常遇到回歸預(yù)測(cè)問(wèn)題,今天我就給大家總結(jié)分享 5 種回歸算法。

1、神經(jīng)網(wǎng)絡(luò)回歸

理論

神經(jīng)網(wǎng)絡(luò)的強(qiáng)大令人難以置信的,但它們通常用于分類。信號(hào)通過(guò)神經(jīng)元層,并被概括為幾個(gè)類。但是,通過(guò)更改最后的激活功能,它們可以非??焖俚剡m應(yīng)回歸模型。

每個(gè)神經(jīng)元通過(guò)激活功能傳遞以前連接的值,達(dá)到泛化和非線性的目的。常用的激活函數(shù):Sigmoid 或 ReLU 函數(shù)。

 

 

通過(guò)將最后一個(gè)激活函數(shù)(輸出神經(jīng)元)替換為線性激活函數(shù),可以將輸出映射到固定類別之外的各種值。這樣,輸出不是將輸入分類到任何一個(gè)類別中的可能性,而是神經(jīng)網(wǎng)絡(luò)將觀測(cè)值置于其上的連續(xù)值。從這個(gè)意義上講,它就像是線性回歸的神經(jīng)網(wǎng)絡(luò)的補(bǔ)充。

 

 

神經(jīng)網(wǎng)絡(luò)回歸具有非線性(除了復(fù)雜性)的優(yōu)點(diǎn),可以在神經(jīng)網(wǎng)絡(luò)中較早地通過(guò)S型和其他非線性激活函數(shù)引入神經(jīng)網(wǎng)絡(luò)。但是,由于 ReLU 忽略了負(fù)值之間的相對(duì)差異,因此過(guò)度使用 ReLU 作為激活函數(shù)可能意味著該模型傾向于避免輸出負(fù)值。這可以通過(guò)限制 ReLU 的使用并添加更多的負(fù)值適當(dāng)?shù)募せ詈瘮?shù)來(lái)解決,也可以通過(guò)在訓(xùn)練之前將數(shù)據(jù)標(biāo)準(zhǔn)化為嚴(yán)格的正范圍來(lái)解決。

實(shí)現(xiàn)

使用Keras,我們構(gòu)建了以下人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),只要最后一層是具有線性激活層的密集層或簡(jiǎn)單地是線性激活層即可。

 

  1. model = Sequential() 
  2. model.add(Dense(100, input_dim=3, activation='sigmoid')) 
  3. model.add(ReLU(alpha=1.0)) 
  4. model.add(Dense(50, activation='sigmoid')) 
  5. model.add(ReLU(alpha=1.0)) 
  6. model.add(Dense(25, activation='softmax')) 
  7. #IMPORTANT PART 
  8. model.add(Dense(1, activation='linear')) 

神經(jīng)網(wǎng)絡(luò)的問(wèn)題一直是其高方差和過(guò)度擬合的趨勢(shì)。在上面的代碼示例中,有許多非線性源,例如SoftMax或Sigmoid。如果你的神經(jīng)網(wǎng)絡(luò)在純線性結(jié)構(gòu)的訓(xùn)練數(shù)據(jù)上表現(xiàn)良好,則最好使用修剪后的決策樹(shù)回歸法,該方法可以模擬神經(jīng)網(wǎng)絡(luò)的線性和高變異性,但可以讓數(shù)據(jù)科學(xué)家更好地控制深度、寬度和其他屬性以控制過(guò)度擬合。

2、決策樹(shù)回歸

理論

在決策樹(shù)中分類和回歸非常相似,因?yàn)閮烧叨纪ㄟ^(guò)構(gòu)造是/否節(jié)點(diǎn)的樹(shù)來(lái)工作。雖然分類結(jié)束節(jié)點(diǎn)導(dǎo)致單個(gè)類值(例如,對(duì)于二進(jìn)制分類問(wèn)題為1或0),但是回歸樹(shù)以連續(xù)值(例如4593.49或10.98)結(jié)尾。

 

 

 

由于回歸作為機(jī)器學(xué)習(xí)任務(wù)的特殊性和高差異性,因此需要仔細(xì)修剪決策樹(shù)回歸器。但是,它進(jìn)行回歸的方式是不規(guī)則的,而不是連續(xù)地計(jì)算值。因此,應(yīng)該修剪決策樹(shù),使其具有最大的自由度。

實(shí)現(xiàn)

決策樹(shù)回歸可以很容易地在 sklearn 創(chuàng)建:

 

  1. from sklearn.tree import DecisionTreeRegressor 
  2. model = DecisionTreeRegressor() 
  3. model.fit(X_train, y_train) 

由于決策樹(shù)回歸參數(shù)非常重要,因此建議使用sklearn的GridCV參數(shù)搜索優(yōu)化工具來(lái)找到模型的正確準(zhǔn)則。在正式評(píng)估性能時(shí),請(qǐng)使用K折檢驗(yàn)而不是標(biāo)準(zhǔn)的訓(xùn)練分割,以避免后者的隨機(jī)性干擾高方差模型的精細(xì)結(jié)果。

3、LASSO 回歸

理論

LASSO回歸是線性回歸的一種變體,特別適合于多重共線性(要素彼此之間具有很強(qiáng)的相關(guān)性)的數(shù)據(jù)。它可以自動(dòng)執(zhí)行部分模型選擇,例如變量選擇或參數(shù)消除。

 

 

 

縮小的過(guò)程為回歸模型增加了許多好處:

  • 對(duì)真實(shí)參數(shù)的估計(jì)更加準(zhǔn)確和穩(wěn)定。
  • 減少采樣和非采樣錯(cuò)誤。
  • 空間波動(dòng)更平滑。

LASSO并沒(méi)有像神經(jīng)網(wǎng)絡(luò)的高方差方法和決策樹(shù)回歸那樣通過(guò)調(diào)整模型的復(fù)雜性來(lái)補(bǔ)償數(shù)據(jù)的復(fù)雜性,而是試圖通過(guò)變形空間來(lái)降低數(shù)據(jù)的復(fù)雜性,從而能夠通過(guò)簡(jiǎn)單的回歸技術(shù)來(lái)處理。在此過(guò)程中,LASSO自動(dòng)以低方差方法幫助消除或扭曲高度相關(guān)和冗余的特征。

LASSO回歸使用L1正則化,這意味著它按絕對(duì)值加權(quán)誤差。這種正則化通常會(huì)導(dǎo)致具有較少系數(shù)的稀疏模型,這使得它具有可解釋性。

實(shí)現(xiàn)

在sklearn中,LASSO回歸附帶了一個(gè)交叉驗(yàn)證模型,該模型可以選擇許多具有不同基本參數(shù)和訓(xùn)練路徑的訓(xùn)練模型中表現(xiàn)最佳的模型,從而使需要手動(dòng)完成的任務(wù)實(shí)現(xiàn)自動(dòng)化。

 

  1. from sklearn.linear_model import LassoCV 
  2. model = LassoCV() 
  3. model.fit(X_train, y_train) 

4、Ridge回歸

理論

Ridge回歸與LASSO回歸非常相似,因?yàn)樗m用于收縮。Ridge和LASSO回歸都非常適用于具有大量彼此不獨(dú)立(共線性)的特征的數(shù)據(jù)集,但是兩者之間最大的區(qū)別是Ridge利用L2正則化,由于L2正則化的性質(zhì),系數(shù)越來(lái)越接近零,但是無(wú)法達(dá)到零。

 

正因?yàn)槿绱?,如果你希望?duì)每個(gè)變量的優(yōu)先級(jí)產(chǎn)生小的影響進(jìn)行優(yōu)先級(jí)排序,則 Ridge 是更好的選擇。如果希望在模型中考慮幾個(gè)變量,每個(gè)變量具有中等到較大的影響,則 LASSO 是更好的選擇。

 

 

實(shí)現(xiàn)

Ridge回歸可以在sklearn中實(shí)現(xiàn),如下所示。像 LASSO 回歸一樣,sklearn可以實(shí)現(xiàn)交叉驗(yàn)證選擇許多受過(guò)訓(xùn)練的模型中最好的模型的實(shí)現(xiàn)。

 

  1. from sklearn.linear_model import RidgeCV 
  2. model = Ridge() 
  3. model.fit(X_train, y_train) 

5、ElasticNet 回歸

理論

ElasticNet 試圖通過(guò)結(jié)合L1和L2正則化來(lái)利用 Ridge 回歸和 LASSOb回歸中的最佳方法。

LASSO和Ridge提出了兩種不同的正則化方法。λ是控制懲罰強(qiáng)度的轉(zhuǎn)折因子。

  • 如果λ= 0,則目標(biāo)變得類似于簡(jiǎn)單線性回歸,從而獲得與簡(jiǎn)單線性回歸相同的系數(shù)。
  • 如果λ=∞,則由于系數(shù)平方的權(quán)重?zé)o限大,系數(shù)將為零。小于零的值會(huì)使目標(biāo)無(wú)限。
  • 如果0 <λ<∞,則λ的大小決定賦予物鏡不同部分的權(quán)重。

除了λ參數(shù)之外,ElasticNet還添加了一個(gè)附加參數(shù)α,用于衡量L1和L2正則化應(yīng)該如何"混合":

  • 當(dāng)α等于0時(shí),該模型是純粹的嶺回歸模型,
  • 而當(dāng)α等于1時(shí),它是純粹的LASSO回歸模型。

“混合因子”α只是確定在損失函數(shù)中應(yīng)考慮多少L1和L2正則化。

實(shí)現(xiàn)

可以使用 sklearn 的交叉驗(yàn)證模型來(lái)實(shí)現(xiàn)ElasticNet:

 

  1. from sklearn.linear_model import ElasticNetCV 
  2. model = ElasticNetCV() 
  3. model.fit(X_train, y_train) 

 

責(zé)任編輯:華軒 來(lái)源: 機(jī)器學(xué)習(xí)社區(qū)
相關(guān)推薦

2022-08-26 14:46:31

機(jī)器學(xué)習(xí)算法線性回歸

2021-01-20 15:43:01

機(jī)器學(xué)習(xí)深度學(xué)習(xí)科學(xué)

2018-05-04 08:20:39

機(jī)器學(xué)習(xí)深度學(xué)習(xí)人工智能

2021-08-02 18:04:25

機(jī)器學(xué)習(xí)數(shù)據(jù)集工具

2021-04-12 10:00:47

Sqlite數(shù)據(jù)庫(kù)CMD

2023-12-26 12:10:13

2020-07-10 07:58:14

Linux

2023-10-13 00:00:00

設(shè)計(jì)模式GO語(yǔ)言

2024-11-15 11:11:48

2024-01-03 07:56:50

2022-05-18 09:01:19

JSONJavaScript

2017-04-18 09:46:31

機(jī)器學(xué)習(xí)工程師算法

2018-10-26 14:10:21

2023-05-08 15:25:19

Python編程語(yǔ)言編碼技巧

2023-04-20 14:31:20

Python開(kāi)發(fā)教程

2023-10-09 18:52:14

SOLIDJava

2022-08-19 10:31:32

Kafka大數(shù)據(jù)

2020-11-25 10:40:58

程序員技能開(kāi)發(fā)者

2019-08-02 15:42:09

機(jī)器學(xué)習(xí)開(kāi)源工具

2024-07-26 08:32:44

panic?Go語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)