0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深入探討線性回歸與柏松回歸

可靠性雜壇 ? 來源:機器學習實戰(zhàn) ? 2024-03-18 14:06 ? 次閱讀

機器學習與線性回歸

或許我們所有人都會學習的第一個機器學習算法就是線性回歸算法,它無疑是最基本且被廣泛使用的技術之一——尤其是在預測分析方面。

線性回歸的主要優(yōu)勢在于其簡單性,可以相當容易地實施。而簡單意味著該算法也具有很高的可解釋性。

本質上,線性回歸試圖通過將線性方程擬合到觀測數(shù)據(jù)點來對給定數(shù)據(jù)集進行建模。

因此,這里的關鍵概念是線性。假設我們的特征(可以是一個或多個)與某個目標對象之間存在線性關系。

這種線性可以通過以下形式的方程表示:

y = β0 + β1x1 + β2x2 + ... + βn*xn + ε

其中:

y 是因變量(我們試圖預測的結果)。

x1, x2, ..., xn 是自變量(預測因子)。

β0, β1, ..., βn 是系數(shù),代表每個預測因子與因變量之間的量化關系。

ε 是誤差項,用于解釋 y 中未被 x 變量解釋的變異性。

線性回歸模型的目標是以這樣一種方式估計這些系數(shù),即最小化殘差(觀測值 (y) 與模型預測值之間的差異)。

線性回歸在建模計數(shù)的局限性

計數(shù)數(shù)據(jù)的本質

計數(shù)數(shù)據(jù)指的是代表事件發(fā)生次數(shù)或發(fā)生數(shù)量的數(shù)據(jù)——呼叫中心接收的電話數(shù)量或商店的銷售交易數(shù)量。

這類數(shù)據(jù)本質上是離散的且非負的。

線性回歸在處理計數(shù)數(shù)據(jù)時的不足

盡管線性回歸應用廣泛,但在應用于計數(shù)數(shù)據(jù)時面臨某些局限性:

負數(shù)預測問題

線性回歸有時可能會為計數(shù)數(shù)據(jù)預測出負數(shù)值,這在現(xiàn)實世界場景中是不合理的。

這是將線性回歸應用于非負計數(shù)數(shù)據(jù)時的一個根本性缺陷。

例如,預測“-2個電話接聽”是不合理的。

考慮下面的例子:

importnumpyasnp
importmatplotlib.pyplotasplt
fromsklearn.linear_modelimportLinearRegression

#Simulatingcountdata
np.random.seed(0)
x=np.random.poisson(5,100)#SimulatingcountdatawithaPoissondistribution
y=2*x+np.random.normal(0,2,100)#Addingsomenoise

#LinearRegressionModel
model=LinearRegression()
model.fit(x.reshape(-1,1),y)

#Predictionsincludingnegativevalues
x_test=np.array(range(-3,10))#Includingnegativevaluestoillustratetheissue
y_pred=model.predict(x_test.reshape(-1,1))

#Plotting
plt.scatter(x,y,color='blue',label='ActualData')
plt.plot(x_test,y_pred,color='red',label='LinearRegressionPredictions')
plt.axhline(0,color='green',linestyle='--',label='ZeroCount')
plt.xlabel('x(SimulatedCountData)')
plt.ylabel('y(PredictedValues)')
plt.title('LinearRegressionPredictingNegativeValues')
plt.legend()
plt.grid(True)
plt.show()

675be3fa-e4ed-11ee-a297-92fbcf53809c.png

正態(tài)分布殘差的問題

線性回歸的另一個局限性是其假設殘差(觀測值與預測值之間的差異)呈正態(tài)分布。這個假設在計數(shù)數(shù)據(jù)上往往不成立,尤其是當平均計數(shù)較低時,會導致分布偏斜。計數(shù)數(shù)據(jù)的分布通常是偏斜的,不像正態(tài)分布那樣對稱。

讓我們在Python中演示這一點。

#Calculatingresiduals
y_pred_actual=model.predict(x.reshape(-1,1))
residuals=y-y_pred_actual

#Plottingresiduals
plt.hist(residuals,bins=20,color='grey',edgecolor='black')
plt.axvline(0,color='red',linestyle='--')
plt.xlabel('Residuals')
plt.ylabel('Frequency')
plt.title('DistributionofResidualsinLinearRegression')
plt.grid(True)
plt.show()

677a5af6-e4ed-11ee-a297-92fbcf53809c.png

觀察上述直方圖,我們可以立即觀察到它的多峰(即存在多個峰值)特征。因此,這一特征使我們偏離了預期的鐘形分布(對于正態(tài)分布的殘差)。由此,我們可以清楚地看到這已經違反了線性回歸的假設。

另一個需要注意的關鍵點是殘差的擴散。觀察直方圖時,我們可以看到它相當寬——表明方差變化較大。對于一個擬合良好的模型,殘差的擴散應該盡可能窄(即預測值接近實際值)。

以上幾點表明,簡單線性模型并未充分捕捉到關系。此外,輕微的偏斜和潛在的異常值指出了模型在為所有觀測值做出準確預測方面的局限性。

深入探討泊松回歸

當我們處理計數(shù)數(shù)據(jù)時,泊松回歸確實能提供很大幫助。計數(shù)數(shù)據(jù)本質上包含非負整數(shù),而在對此類數(shù)據(jù)進行建模時,與線性回歸相比,泊松回歸提供了一個更合適的框架。

理解泊松回歸

泊松分布是一種離散概率分布,它表達了在已知的恒定平均率下,固定時間或空間間隔內發(fā)生特定數(shù)量事件的概率,并且這些事件的發(fā)生是相互獨立的,不受上一次事件發(fā)生以來時間的影響。

泊松分布的關鍵特性:

均值和方差相等——隨著平均發(fā)生次數(shù)的增加,計數(shù)的變異性也隨之增加。

它為固定時間或空間間隔內事件發(fā)生的次數(shù)分配概率,但前提是這些事件發(fā)生在恒定速率下且彼此獨立。

**泊松回歸應用場景

在泊松回歸中,我們將預期計數(shù)的對數(shù)作為自變量的線性函數(shù)來建模。

我們可以表示如下:

log(λ) = β0 + β1x1 + β2 * x2 + ... + βnxn

其中 λ 代表預期計數(shù)或發(fā)生率。

泊松回歸模型的解釋

泊松回歸模型中的系數(shù)解釋了在保持所有其他預測變量不變的情況下,預測變量每單位變化所導致的預期計數(shù)的對數(shù)變化。

泊松回歸與線性回歸之間的主要差異

殘差的分布:泊松回歸不假設殘差呈正態(tài)分布;相反,它假設數(shù)據(jù)遵循泊松分布,這對于計數(shù)數(shù)據(jù)通常更為合適。

處理非負計數(shù):泊松回歸固有地處理非負整數(shù)計數(shù),確保模型不會預測負數(shù)。

讓我們用Python來演示如何應用泊松回歸。

importnumpyasnp
importmatplotlib.pyplotasplt
importstatsmodels.apiassm

#Simulatingcountdata
np.random.seed(0)
x=np.random.normal(5,2,100)#Independentvariabledata
y=np.random.poisson(np.exp(x*0.1))#Simulatedcountdata

#PoissonRegressionModel
exog,endog=sm.add_constant(x),y
poisson_model=sm.GLM(endog,exog,family=sm.families.Poisson()).fit()

#Predictionsandplot
x_test=np.linspace(min(x),max(x),100)
y_pred=poisson_model.predict(sm.add_constant(x_test))

plt.scatter(x,y,color='blue',label='ActualCountData')
plt.plot(x_test,y_pred,color='red',label='PoissonRegressionPredictions')
plt.xlabel('IndependentVariable(x)')
plt.ylabel('ExpectedCount(y)')
plt.title('PoissonRegressiononCountData')
plt.legend()
plt.grid(True)
plt.show()

6793a286-e4ed-11ee-a297-92fbcf53809c.png

一些關鍵觀察結果:

預測線(紅色)不是直線。這表明了自變量和預期計數(shù)之間的對數(shù)關系,這是泊松回歸的一個關鍵特征。

該模型預測,隨著 x 的增加,預期計數(shù)(y)也增加,但不是以恒定速率增加(由于對數(shù)鏈接函數(shù))。

與線性回歸不同,泊松回歸模型不預測負數(shù)計數(shù)。所有預測值都是非負的,這對于計數(shù)數(shù)據(jù)是合適的。

預測線似乎捕捉到了實際數(shù)據(jù)的一般趨勢,表明這個模擬數(shù)據(jù)集有一個合理的擬合。這清楚地展示了泊松回歸在建模計數(shù)數(shù)據(jù)時的適用性。

這清楚地展示了泊松回歸在建模計數(shù)數(shù)據(jù)時的適用性。

該模型考慮了計數(shù)的非負性和它們的分布性質。

與線性回歸不同,泊松回歸可以處理計數(shù)數(shù)據(jù)的方差結構,其中方差與均值成正比,使其成為計數(shù)數(shù)據(jù)分析的有力工具。

結論

關鍵點回顧

在本文中,我們探討了線性回歸的基本方面以及其在應用于計數(shù)數(shù)據(jù)時的局限性。

我們發(fā)現(xiàn)線性回歸可能預測出負值,并對殘差的分布做出假設,這些假設對于本質上是非負的且通常是偏斜的計數(shù)數(shù)據(jù)并不成立。然后,我們引入了泊松回歸作為計數(shù)數(shù)據(jù)的健壯替代方案。泊松回歸旨在處理非負整數(shù),并適應數(shù)據(jù)中特有的計數(shù)方差。

模型選擇的重要性

統(tǒng)計模型的選擇至關重要,可以顯著影響從數(shù)據(jù)中得到的洞察。

理解數(shù)據(jù)的本質和不同模型背后的假設至關重要。

通過選擇最適合數(shù)據(jù)特征的模型,我們確保更準確、可靠和有意義的預測。




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機器學習
    +關注

    關注

    66

    文章

    8349

    瀏覽量

    132312
  • python
    +關注

    關注

    55

    文章

    4767

    瀏覽量

    84375
  • 線性回歸
    +關注

    關注

    0

    文章

    41

    瀏覽量

    4292
  • 機器學習算法

    關注

    2

    文章

    47

    瀏覽量

    6446

原文標題:一文通俗講解線性回歸與柏松回歸

文章出處:【微信號:可靠性雜壇,微信公眾號:可靠性雜壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    matlab回歸分析總結

    1、多元線性回歸2、多項式回歸3、非線性回歸4、逐步回歸[hide][/hide]
    發(fā)表于 03-20 10:26

    線性回歸的標準方程法使用

    線性回歸-標準方程法示例(python原生實現(xiàn))
    發(fā)表于 05-07 16:44

    線性回歸定義

    線性回歸與評價指標-2
    發(fā)表于 09-03 14:24

    機器學習的回歸任務

    常見線性回歸理論與算法實現(xiàn)
    發(fā)表于 10-29 11:09

    生產應用中使用線性回歸進行實際操練

    線性回歸】生產應用中使用線性回歸進行實際操練
    發(fā)表于 05-08 07:45

    Tensorflow的非線性回歸

    Tensorflow 非線性回歸
    發(fā)表于 05-12 10:19

    機器學習100天之多元線性回歸

    機器學習100天-多元線性回歸 [代碼實現(xiàn)細節(jié)分析]
    發(fā)表于 05-12 15:06

    回歸算法之邏輯回歸的介紹

    回歸算法之邏輯回歸
    發(fā)表于 05-21 16:25

    Multivariate Linear Regression多變量線性回歸

    吳恩達機器學習-手寫筆記三 - Multivariate Linear Regression 多變量線性回歸
    發(fā)表于 06-11 17:02

    回歸算法有哪些,常用回歸算法(3種)詳解

    有兩個重要組成部分:自變量和因變量之間的關系,以及不同自變量對因變量影響的強度。以下是幾種常用的回歸方法:線性回歸:使用最廣泛的建模技術之一。已存在 200 多年,已經從幾乎所有可能的角度進行了研究
    發(fā)表于 07-28 14:36

    TensorFlow實現(xiàn)簡單線性回歸

    本小節(jié)直接從 TensorFlow contrib 數(shù)據(jù)集加載數(shù)據(jù)。使用隨機梯度下降優(yōu)化器優(yōu)化單個訓練樣本的系數(shù)。實現(xiàn)簡單線性回歸的具體做法導入需要的所有軟件包: 在神經網(wǎng)絡中,所有的輸入都線性增加
    發(fā)表于 08-11 19:34

    TensorFlow實現(xiàn)多元線性回歸(超詳細)

    在 TensorFlow 實現(xiàn)簡單線性回歸的基礎上,可通過在權重和占位符的聲明中稍作修改來對相同的數(shù)據(jù)進行多元線性回歸。在多元線性
    發(fā)表于 08-11 19:35

    如何用C語言實現(xiàn)一個簡單的一元線性回歸算法

    今天我們用C語言實現(xiàn)一個簡單的線性回歸算法;在代碼前面我們在回顧一下線性回歸。線性回歸
    發(fā)表于 07-20 06:34

    使用PyMC3包實現(xiàn)貝葉斯線性回歸

    1、如何使用PyMC3包實現(xiàn)貝葉斯線性回歸  PyMC3(現(xiàn)在簡稱為PyMC)是一個貝葉斯建模包,它使數(shù)據(jù)科學家能夠輕松地進行貝葉斯推斷。  PyMC3采用馬爾可夫鏈蒙特卡羅(MCMC)方法計算后驗
    發(fā)表于 10-08 15:59

    多元線性回歸的特點是什么

    何為多元線性回歸?對比于前一天學習的線性回歸,多元線性回歸的特點是什么? 多元
    的頭像 發(fā)表于 10-31 10:34 ?1346次閱讀
    多元<b class='flag-5'>線性</b><b class='flag-5'>回歸</b>的特點是什么