對于線性回歸問題,如果用到過多或過少的多項式特征,容易出現(xiàn)什么現(xiàn)象
- 教育綜合
- 2024-05-14 07:57:13
機器學(xué)習(xí)系列(二十三)——過擬合和欠擬合問題
有了多項式回歸的方式,我們就可以對非線性的數(shù)據(jù)做擬合了,不過,復(fù)雜度不夠的多項式回歸會導(dǎo)致欠擬合問題,而過度地使用多項式回歸又會導(dǎo)致過擬合問題。
接下來直觀地看一下什么是過擬合和欠擬合,生成模擬數(shù)據(jù)集:
用線性回歸對該數(shù)據(jù)做訓(xùn)練:
用線性回歸對該數(shù)據(jù)訓(xùn)練后的R方值為0.49,顯然線性關(guān)系不明顯,因此用線性回歸是有很大誤差的。不過添加多項式特征后,特征畢竟變多了,用R方衡量來衡量不同特征的模型不太直觀,改用均方誤差衡量:
線性回歸的均方誤差為3.03,再看一下二次多項式回歸:
二次多項式回歸的均方誤差要減小很多,擬合的曲線如下圖:
那更高次的呢?我們來試一試10次和100次。10次的情況:
10次冪的均方誤差相比2次又小了。擬合曲線如下圖:
100次的情況:
可見均方誤差更小了,擬合曲線如下圖:
不過上面只是一個100次冪的曲線將所有樣本特征點包括進去,實際上這條連續(xù)曲線是這樣的:
理論上我們提高多項式的次數(shù)可以任意精度擬合樣本點,從而樣本的均方誤差可以非常非常小,但是樣本誤差更小就真的能更好地表達數(shù)據(jù)走勢嗎?從圖像中看出顯然不能,這種現(xiàn)象是就是過擬合(overfitting),而只用一次線性回歸擬合的情況則是欠擬合。
機器學(xué)習(xí)主要解決的問題是過擬合,雖然過擬合的模型能使樣本誤差總體很小,但是在新的樣本上表現(xiàn)卻很差,泛化能力弱。而我們需要的是泛化能力強的模型而不是在樣本上誤差更小的模型。這也正是測試數(shù)據(jù)集的意義,將樣本分為訓(xùn)練和測試數(shù)據(jù)集,只用訓(xùn)練數(shù)據(jù)fit模型,而用測試數(shù)據(jù)測試模型。如果模型能在測試數(shù)據(jù)集同樣表現(xiàn)很好(有很小的誤差),說明模型效果不錯??梢詼y試,如果將樣本劃分為訓(xùn)練集和測試集,10次冪,100次冪的多項式回歸雖然能使之在訓(xùn)練集上的誤差更小,但是在測試集上誤差卻是越來越大的,這正是過擬合導(dǎo)致的。
線性模型
二次模型
10次模型和100次模型
從上述結(jié)果發(fā)現(xiàn),在測試集上10次冪的誤差已大于2次冪的,而100次冪的誤差更是天文數(shù)字。綜上所述,欠擬合是算法所訓(xùn)練的模型不能完整表述數(shù)據(jù)關(guān)系,而過擬合是算法訓(xùn)練的模型過多地表達了數(shù)據(jù)間的關(guān)系(往往是把噪音當(dāng)成了特征,是噪音間的關(guān)系)。而我們需要尋找的是泛化能力最好的模型。
機器學(xué)習(xí)中有一個模型復(fù)雜度的概念,對于多項式回歸,次冪越高則復(fù)雜度越高,對于knn算法來說,k值越小模型復(fù)雜度越高。相應(yīng)地有模型復(fù)雜度曲線用于直觀地反映模型復(fù)雜度和模型準(zhǔn)確率的關(guān)系
不過模型復(fù)雜度曲線的繪制困難,這在后面的決策樹再具體介紹。這里我們先用一個學(xué)習(xí)曲線來直觀感受一下在多項式回歸中,模型復(fù)雜度和訓(xùn)練效果的關(guān)系。
線性模型
封裝學(xué)習(xí)曲線繪制函數(shù):
繪制線性模型的學(xué)習(xí)曲線:
可以觀察到隨著訓(xùn)練的進行(這里是不斷增加訓(xùn)練數(shù)據(jù)),訓(xùn)練集上的誤差會慢慢積累,積累到一定程度穩(wěn)定下來,測試集的誤差先升后慢慢降低到一定程度穩(wěn)定下來。
二次模型
二次模型與線性模型趨勢一樣,不過穩(wěn)定的位置較一次低而且在測試集上的曲線和訓(xùn)練集上的曲線距離小,因為2次確實是最優(yōu)的模型。
20次冪模型
測試集曲線和訓(xùn)練集曲線距離更大了,說明過擬合現(xiàn)象比較嚴(yán)重。我們要尋找的是有最好的泛化能力的模型。如何尋找最優(yōu)的模型,使模型擁有優(yōu)秀的泛化能力呢?這將在下篇介紹。
多重共線性會給回歸分析帶來什么影響
多重共線性就是說自變量間存在某種函數(shù)關(guān)系,會造成分析誤差,使其對自變量效應(yīng)的分析不準(zhǔn)確。如果你的兩個自變量間(X1和X2)存在函數(shù)關(guān)系,那么X1改變一個單位時,X2也會相應(yīng)地改變,此時你無法做到固定其他條件,單獨考查X1對因變量Y的作用,你所觀察到的X1的效應(yīng)總是混雜了X2的作用,這就造成了分析誤差,使得對自變量效應(yīng)的分析不準(zhǔn)確,所以做回歸分析時需要排除多重共線性的影響。
拓展資料:
一、多重共線性是指由于線性回歸模型中解釋變量之間的精確相關(guān)性或高度相關(guān)性,模型估計被扭曲或難以準(zhǔn)確估計。
一般來說,由于經(jīng)濟數(shù)據(jù)的限制,模型設(shè)計不當(dāng),導(dǎo)致設(shè)計矩陣中解釋變量之間的一般相關(guān)性。完全共線是罕見的。一般來說,它在一定程度上是共線的,即近似共線。
中文名稱多重共線性外文名稱多重共線性
(1) 完全共線下不存在參數(shù)估計
(2) OLS估計在近似共線性下是無效的
二、多重共線性增加了參數(shù)估計的方差。1/(1-r2)是方差擴展因子(VIF)。如果方差展開因子較大,則表明共線性較強。相反,由于公差是方差展開因子的倒數(shù),公差越小,共線性越強??梢杂涀。簩捜荽韺捜荩簿褪窃试S。如果該值較小,則表示該值的允許范圍較小,即越小,允許范圍越小。共線性是一個負(fù)指標(biāo),預(yù)計不會出現(xiàn)在分析中。共線性和公差是聯(lián)系在一起的。容忍度越小,容忍度越小,實際情況就越糟糕,共線的“惡棍”就越強大。此外,因為方差擴展因子是公差的倒數(shù),所以它是相反的。
簡言之,就是找到一種簡單的記憶方法。
(3) 參數(shù)估計的經(jīng)濟意義是不合理的
(4) 變量的顯著性檢驗沒有意義,可能會從模型中排除重要的解釋變量
(5) 模型的預(yù)測功能失效。方差越大,越容易使區(qū)間預(yù)測的“區(qū)間”越大,使預(yù)測失去意義。
應(yīng)該注意的是,即使存在高度的多重共線性,OLS估計仍然具有良好的統(tǒng)計特性,如線性。然而,OLS方法不能提供統(tǒng)計推斷中真正有用的信息。
spss進行線性回歸分析時,相關(guān)系數(shù)都符合,但是顯著性不符合,如何調(diào)整
線性回歸時候,相關(guān)系數(shù)只是表明了各個系數(shù)之間的相關(guān)程度。但是自變量對因變量不顯著的話,可能存在多重共線性、數(shù)據(jù)存在異常值、異方差的問題。
1、自變量存在共線性問題
在進行線性回歸分析時,很容易出現(xiàn)自變量共線性問題,通常情況下VIF值大于10說明嚴(yán)重共線,VIF大于5則說明有共線性問題。當(dāng)出現(xiàn)共線性問題時,可能導(dǎo)致回歸系數(shù)的符號與實際情況完全相反,本應(yīng)該顯著的自變量不顯著,本不顯著的自變量卻呈現(xiàn)出顯著性。
解決方法:手動移除出共線性的自變量,先做下相關(guān)分析,如果發(fā)現(xiàn)某兩個自變量X(解釋變量)的相關(guān)系數(shù)值大于0.7,則移除掉一個自變量(解釋變量),然后再做回歸分析。逐步回歸法,讓軟件自動進行自變量的選擇剔除,逐步回歸會將共線性的自變量自動剔除出去。
2、數(shù)據(jù)存在異常值,如果數(shù)據(jù)中存在極端異常值,會導(dǎo)致數(shù)據(jù)偏移對分析結(jié)果產(chǎn)生嚴(yán)重影響。如果回歸分析出現(xiàn)各類異常,可通過比如描述分析、箱線圖、散點圖等方法,找出并處理掉異常值后再做分析。
解決方法:查看數(shù)據(jù)中是否有異常值,可通過箱線圖、散點圖查看,剔除異常值可通過SPSSAU“異常值”功能進行剔除。
3、異方差,如果模型存在明顯的異方差性,會影響回歸系數(shù)的顯著情況,得到的回歸模型是低效并且不穩(wěn)定的。
解決方法:保存殘差項,將殘差項分別與模型的自變量X或者因變量Y,作散點圖,查看散點是否有明顯的規(guī)律性。如果有明顯的異方差性,建議重新構(gòu)建模型,比如對Y取對數(shù)后再次構(gòu)建模型等。
如果排除了這些原因還是不顯著,那么基本說明該變量對被解釋變量無顯著影響。
擴展資料
在做實證就是做回歸等等方法的時候,一般就看中三點,一是相關(guān)系數(shù),看因變量和自變量是否相關(guān)。二是擬合優(yōu)度(R平方),看回歸方程擬合的好不好,一般0.8以上就算擬合的比較好了。
三是自變量的系數(shù)對于因變量是否顯著啦,P值小于0.05就說明自變量對于因變量是顯著的。如果自變量的P值都比0.05大,那就說明自變量對于因變量是不顯著的,這個自變量就沒什么意義,所以如果變量比較多的情況下,還是做一下逐步回歸。
如果變量比較少,做逐步回歸就會導(dǎo)致最后有可能只剩下一個變量。逐步回歸就是一個模型優(yōu)化的過程,更加能解釋自變量和因變量之間的關(guān)系,一般回歸之后效果不好都要逐步回歸來優(yōu)化線性模型的。
多重共線性的典型表現(xiàn)是什么?判斷是否存在多重共線性的方法有哪些
多重共線性的典型表現(xiàn)是,線性回歸模型中的解釋變量之間由于存在精確相關(guān)關(guān)系或高度相關(guān)關(guān)系而使模型估計失真或難以估計準(zhǔn)確。由于經(jīng)濟數(shù)據(jù)的限制使得模型設(shè)計不當(dāng),導(dǎo)致設(shè)計矩陣中解釋變量間存在普遍的相關(guān)關(guān)系。主要產(chǎn)生原因是經(jīng)濟變量相關(guān)的共同趨勢,滯后變量的引入,樣本資料的限制。判斷是否存在多重共線性的方法有特征值,存在維度為3和4的值約等于0,說明存在比較嚴(yán)重的共線性。條件索引列第3第4列大于10,可以說明存在比較嚴(yán)重的共線性。比例方差內(nèi)存在接近1的數(shù),可以說明存在較嚴(yán)重的共線性。判斷是否存在多重共線性的方法:1.方差膨脹因子:共線性主要考察的是自變量之間是否存在線性關(guān)系。所以很自然地,我們會考慮[公式]對[公式](除[公式]以外的其他自變量)的線性回歸擬合以及由此得到的可決系數(shù)[公式]。如果自變量之間存在很強的線性關(guān)系,則[公式]會很大,甚至?xí)咏?。[公式]即為方差膨脹因子。其值若大于10,則認(rèn)為存在較強的共線性問題。2.常用的評價指標(biāo)有兩個:(1)容許度和膨脹因子(VIF)。容許度=1-Rj^2。其中的R是第j個自變量與其余變量進行回歸時的判定系數(shù)。容許度越接近1,表示多重共線性越弱。膨脹因子:膨脹因子是容許度的倒數(shù)。膨脹因子越接近1(膨脹因子理論最小值是1),表示解釋變量之間的多重共線性越弱,通常膨脹因子<10是弱多重共線性。若膨脹因子>=10,說明膨脹因子存在嚴(yán)重多重共線性。 在SPSS中可以通過在回歸分析時勾選“統(tǒng)計”選項卡的“共線性診斷”自動計算容許度和膨脹因子,來判斷自變量是否高度相關(guān),是否存在多重共線性問題。 多重共線性的處理方法 若自變量之間存在多重共線性就需要對自變量進行處理后才能進行回歸分析,處理方法為主成分分析(Principal Component Analysis,PCA)。 (2) PCA 主成分分析法是運用降維的思想將一組高度相關(guān)的自變量轉(zhuǎn)換為一組相互獨立的、不存在線性關(guān)系的變量,轉(zhuǎn)換后的變量稱為主成分,主成分可反映原始數(shù)據(jù)的大部分信息。一般在自變量個數(shù)太多或者存在嚴(yán)重相關(guān)關(guān)系時使用主成分分析對自變量進行處理,主成分分析一般作為研究中的一個中間環(huán)節(jié)。 3.常用統(tǒng)計量 主成分分析中的幾個統(tǒng)計量: ⑴特征根。主成分特征根的大小可反映該主成分的影響力度,表示該主成分可以解釋平均多少個原始變量的信息。例如若特征根λi=3.998,表示該主成分可以解釋平均3.998個原始變量。若特征根λi<1表示該主成分的解釋力度還不如一個原始變量的解釋力度大,因此常將特征根大于1作為引入某個主成分的標(biāo)準(zhǔn)。 ⑵主成分Zi的方差貢獻率。主成分的方差反映該主成分含原變量總信息量的百分。 ⑶累積貢獻率。將k個主成分的方差貢獻率按照從大到小的順序排列,累計貢獻率指前k個主成分的方差貢獻率之和,反映前k個主成分可提取百分之多少的原始變量的信息。在確定主成分個數(shù)時,一般選擇累積貢獻率達到70%-85%的前k個主成分。