筆記:線性模型:線性迴歸簡介和線性迴歸中的損失函數

線性迴歸簡介

- 迴歸任務
- 線性迴歸模型
- 迴歸模型中的預測殘差

1迴歸任務的定義

訓練:特點:y是連續值 屬於R

 

學習/目標:

預測:

 2迴歸任務舉例  (預測的都是數值型)

根據全球經濟形勢和石油
產量預測石油價格

根據廣告投入預測產品銷量

根據房屋屬性預測房屋價格

根據降雨量預測水果收成

根據僱員的工作年限和其他
屬性預測其薪水
根據學生學習時長預測其成績
3線性迴歸

線性迴歸就是假設輸出y和輸入x之間存在線性關係  即爲樣本x的每一個特徵與對應權重相乘就和就是y的值

W0 代表線性模型中的截距項 在矩陣乘法中其對應的權重是1。

4預測殘差

殘差就是預測值和真實值之間的差值。

在線性迴歸圖像中可以理解爲數據到擬合直線之間的距離。

 殘差平方 殘差計算之後有正負號 可以看殘差的平方 而忽略掉正負號的影響

殘差平方和: 在訓練集上 所有的殘差的平方的總和

線性迴歸中的損失函數

- 掌握迴歸模型中的損失函數:L2損失、L1損失
和Huber 損失
- 理解上述損失的適用場景

1最佳模型

2 L2損失:殘差平方 

L2損失對噪聲敏感 

噪聲:就是直線預測不準的一個數據點 可以理解爲在圖上 距離直線比較遠的一個點

L2損失是根據 殘差來計算的  由於本身擬合直線和噪聲之間的殘差比較大 而L2損失是在此基礎上再平方考慮的

所以L2損失會更更大。

這樣影響的結果就是 我們使用的擬合直線會更加“看重”噪聲點  使擬合直線整體偏向噪聲點的方向

L2損失的優點 :L2損失是根據殘差平方計算的是二次項的函數 二次項的函數處處可導 方便優化計算 

3 L1損失:殘差絕對值

直觀的在圖像上面看就是點到線的距離大小(沒有正負)。

優點L1損失是根據殘差的絕對值計算的 是根據殘差本身數值上的大小即不考慮正負號。

不會像L2損失那樣對噪聲敏感。L1損失對噪聲點不敏感

但是L1損失函數也有自身的缺點 因爲是絕對值函數在原點是娶不到值的。這就不是處處可導,在之後的優化計算上面不是很方便。

4Huber損失

有一個損失函數結合了L1損失和L2損失的優點。是一個分段函數。

Scikit-Learn中迴歸模型的使用

Huber損失:

from sklearn.linear_model import HuberRegressor
huber = HuberRegressor()
huber.fit(X_train, y_train)
y_train_pred_huber = huber.predict(X_train)

L2損失:
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(X_train, y_train)
y_train_pred_lr = lr.predict(X_train)
Huber損失:
L2損

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章