導航:首頁 > 使用方法 > 線性回歸最常用的性能度量方法

線性回歸最常用的性能度量方法

發布時間:2023-07-06 08:20:32

『壹』 一元線性回歸最常見的估計方法有三種

一元線性回歸最常見的估計方法有三種:線性回歸方法,邏輯回歸方法,多項式回歸方法。

通常因變數和一個(或者多個)自變數之間擬合出來是一條直線(回歸線),通常可以用一個普遍的公式來表示:Y(因變數)=a*X(自變數)+b+c,其中b表示截距,a表示直線的斜率,c是誤差項。

回歸分析

只涉及到兩個變數的,稱一元回歸分析。一元回歸的主要任務是從兩個相關變數中的一個變數去估計另一個變數,被估計的變數,稱因變數,可設為Y;估計出的變數,稱自變數,設為X。回歸分析就是要找出一個數學模型Y=f(X),使得從X估計Y可以用一個函數式去計算。當Y=f(X)的形式是一個直線方程時,稱為一元線性回歸。

『貳』 第二章 模型評估與選擇

        在訓練過程中,每一次訓練並測試時都會發現有部分樣本識別錯誤。我們把識別錯誤樣本占總數的比例稱為 錯誤率 ,定義錯誤率 ,其中a為錯誤樣本數,m為樣本總數。與其對應的 則稱為 精度 。更一般情況,稱實際輸出與真實輸出的差異為 誤差 ,在訓練集上的誤差稱為 訓練誤差 或 經驗誤差 ,在測試時預測的誤差稱為 泛化誤差 。當然我們希望得到誤差最小,也即精度最大的模型。那麼精度為100%的學習器是我們想要的模型嗎?其實這種模型大多泛化能力不強,因此不會選取。這里涉及到欠擬合與過擬合。

        當學習器學習樣本准確率過高時,其極有可能把樣本獨有的特徵學習到了,而相對的忽略大多樣本的一般特徵。這種情況稱為 過擬合 ,一般過擬合的模型泛化能力都相對較差。相對的, 欠擬合 就是模型訓練的精度太低,連樣本的一般特徵也沒有學習到。這兩種情況在下圖中都有很好的詮釋。

        欠擬合很好解決,就是加多數據,加大訓練次數即可。過擬合較麻煩,機器學習演算法中 過擬合無法徹底避免 ,優秀的演算法會想辦法減輕過擬合的影響。當前有多種演算法和參數調整方法可以建立機器學習模型,這里涉及到了模型選擇問題,我們應當有相應的評估和選擇方法可以找到泛化能力最強的模型。下面將介紹一些模型評估和選擇的方法。

        現在已知有數據集D,我們的目標是將它劃分為訓練集S和測試集T,使得模型的學習和泛化能力盡可能的被開發出來。

        留出法思想簡單,就是將數據集D直接劃分為兩個互斥的集合,一個作為訓練集,另一個作為測試集。數據集在劃分細節上也有要求,我們必須保證在劃分時整個數據集的標簽種類是程均勻分布的,即保證機器在訓練和測試時可以遇到所有情況。單次使用留出法結果不夠准確,因為不同的分法訓練和測試結果會不同,所以一般會多次隨機劃分訓練集和測試集並進行訓練測試,最終得到的多個精度取平均得到最後結果。訓練集占數據集的比例沒有完美的解決方案,一般經驗值為2/3~4/5。

        交叉驗證法首先將有m個樣本的數據集D劃分為k個大小相似的互斥子集,且均保持數據標簽的均勻分布。每次利用k-1個子集進行訓練,剩下的1個用於測試,如此嘗試有k種,我們最終返回k個結果的均值。演算法驗證的好壞主要取決於k的取值,通常取k=10,所以演算法又稱為「十折交叉驗證」,其示意圖如下。相比留出法,交叉驗證顯然更加穩定與公平。

        當k=m這種特殊情況時,每個樣本被視為一個自己,則可稱評估方法為 留一法 (LOO),該方法不受樣本順序隨機的影響,所以結果會更加准確。但若數據集過大,樣本過多,計算時間會大幅增加。

        前兩種方法都需要從數據集中分訓練集和測試集進行學習預測,這種方式會導致分法不同得到的結果也不同,留一法不會有這種情況,但數據集過大會導致演算法復雜度增加。為了可以綜合上述演算法的兩種優點,這里提出自助法。

自助法的特點是, 訓練集和測試集均出自同一數據集 。我們每次從數據集中抽取一個樣本並 復制 到訓練集中,重復m次,所以我們有m訓練集的樣本。當然這種做法會出現重復樣本,不過我們計算一個樣本永遠不會被採集到的概率如下:

               

所以當樣本足夠多的時,我們同樣可以抽出約2/3的部分當做訓練集,剩下的作為測試集。這種演算法使得每個樣本都有被抽中的可能,這種測試又稱為「包外估計」。自助法產生的數據集會改變初始數據集的分布,所以需要引入估計偏差,所以再次強調,在 數據足夠多 的時,為了避免計算麻煩,建議使用前兩者,反之使用該演算法。

        除了以上評估方法,每個演算法還需要 調節參數 ,因為參數的不同訓練結果會有顯著差異,所以調參也很重要,它影響著最終的評估結果。事實上,調參也是一種演算法選擇,在現實中我們常採用「嘗試」的方法得到一個相對較優的參數結果。首先設置該參數的 范圍 ,進而設置 步長 ,讓計算機遍歷每種情況並選擇最好的結果。一般步長選擇要慎重,因為大型的工程參數眾多,步長越短代表演算法復雜度越高,消耗的計算資源越多。

        當我們評估完畢並選取演算法後,應當用數據集中所有的數據進行訓練,並交付最終的訓練模型。此外為了區分,又稱模型評估選擇的數據集為 驗證集 。例如在估計某訓練模型的泛化能力時,會將數據集劃分為訓練集和驗證集,其中驗證集的結果主要用於調參。

        性能度量主要用於對機器學習模型性能的量化評估。不同的模型,使用不同的度量方法結果會不同。所以說評判 結果是相對的 ,模型好壞取決於演算法、數據和任務需求。最常用的性能度量方法是 均方根誤差 ,並結合 概率密度 定義表徵,這里不多介紹,下面將介紹 分類任務 中常用的性能度量的方法。建立模型前,做如下符號說明:

樣例集:

其中 是 的正確標記。設學習器為 ,則 為預測結果。

錯誤率 定義:

精度 定義:

其中 是二值符號,括弧內邏輯正確為1,錯誤為0。

這是分類任務常用的兩個方法,適應二分類任務和多分類任務。我們可以根據概率密度定義,利用數據分布D和概率分布P對其做更一般的定義:

錯誤率概率分布 定義:

精度概率分布 定義:

        2.3.1中的方法雖然常用,但我們有時候會關心訓練集或數據集中具體訓練數據如何(好西瓜中我具體分正確多少等),此時該方法不滿足需求。所以這里又提出三種方法,以對模型進行更精確的度量。這里以二分類為分析對象,則我們可以把預測結果分為四種:真正例、假正例、真反例、假反例,分別用字母TP、FP、TN、FN,T表示true、F為false,P為positive,N為negative。則定義混淆矩陣如下圖:

根據以上符號假設,定義查准率P和查全率R如下:

        

        查准率與查全率是 矛盾的 ,可以理解:演算法查詢正確的「范圍」(比如西瓜的種類數)擴大了,正確率肯定會下降,反之亦然。所以我們應當在兩者之間取得一 平衡點 ,使得機器學習模型評估效果最佳,而我們可以通過 「P-R曲線」 找到平衡點。曲線橫坐標為查全率,縱坐標為查准率,在對機器學習結果樣例進行排序後,計算器查准率與查全率,一般性的可以得到類似下圖:

        根據圖4,我們知道曲線與直線 相交的點即為 平衡點(BEP) ,這里有多個平衡點。我們一般認為曲線下方面積越大則性能越好,所以選最外層的一個。不過看到最外層與內一層的曲線有交叉點,這使得我們無法肉眼判斷優良。此時我們可以計算平衡點的函數值,越大的代表性能越好。不過書中給出了更精確的量化比較方法,即F1度量法,公式如下:

        

在現實中,我們有可能對查准率和查全率有不同重視程度,所以此時引出F1度量的一般形式,定義字母和公式如下:

        

其中 ,當 =1時退化為F1度量,當 >1時對查全率的權重更高,當 <1時對查准率的權重較高。

        現在我們討論更一般的情況,之前的度量是針對一組混淆矩陣,現在我們將數量上升到n個。解決方案很簡單,第一種方案是:可以通過計算查准率與查全率的平均值,求得 宏查准率 和 宏查全率 ,帶入F1公式後可求得 宏F1度量 。第二種方案是:先求得真正例等四類數據的平均值,再將其們帶入求得幾個宏數值。

        機器學習一般的二分類方法是:根據模型求得一個0~1的數,假設閾值為0.5,則大於0.5為一類,小於為另一類。根據模型分類結果,我們以「最有可能」到「最不可能」方式排序,定義一 截斷點 ,將樣本分為正例和反例。截斷點由認為規定,若給查准率更高的權重,則將截斷點前移,若給查全率更高權重,則後移。ROC就是 利用據排序結果 的好壞計算學習器泛化性能。

        ROC全稱為受試者工作特徵(Receiver Operating Charactoristic),方法與P-R曲線類似,也是畫一條曲線稱「ROC圖」,以真正例率(TPR)和為縱坐標,以正例率(FPR)為橫坐標劃出。兩個新的維度定義如下:

        

這里給出一個樣例圖如下圖。我們希望畫出來的是a圖,但由於數據時離散且有限的,我們只能畫出b圖。

繪制過程如下:

① 給定 個正例和 個反例,根據模型預測結果排序。

② 將分類閾值設置為最大,設所有的結果為反例,沒有正例。當前點的坐標則為(0, 0)。

③ 每次將序列中的一個提出並劃分到正例,設前一點坐標為 。當該點為真正例,則該點坐標記為 ,若為反正例,則記為 。

④ 重復③,直至所有點都被劃分為正例,即最後一點坐標為(1, 1)。

        從圖判斷好壞的標准和P-R圖極其類似,其判斷依據就是 ROC曲線下面積(Area Under ROC Curve,AUC) 。其越大表示性能越好。因為點都是離散的,所以我們利用求和的方式求得面積,公式如下:

        

設D表示數據集,+表示正例的,-表示反例的,則定義 排序損失(loss) 如下:

它與AUC關系為:

        我們之前幾小節衡量量化時,將正確的和錯誤的整體內部看做平等的,即他們內部權重相等,但在現實中並不然。一次西瓜識別錯誤導致農民損失100元與金庫錯把小偷放入損失幾個億對比,可以看到錯誤是有區別的,因為造成後果的 代價(cost) 不同。為了衡量不同的錯誤,我們可以給錯誤賦值不同的代價,稱 「非均等代價」 。

        拿二分類舉例,根據代價思想,可以設計 代價矩陣 ,如下圖:

其中cost代表代價,角標表示矩陣行與列的位置,一般矩陣主對角線為0(自己對自己完全相同,不會付出代價)。在考慮非均等代價前提下,我們的目標是使得 整體的錯誤代價最小化 。若將圖6中0類作為正例,1為反例,則可定義 敏感代價錯誤率 公式如下:

我們可以看到公式的變化,在原來判斷的基礎上,針對不同的情況給出不同的 cost權重 ,這樣代價會影響到最終的代價大小。

在非均等代價下,ROC曲線也要改變,以反映真正的總體期望代價,所以這里提出 代價曲線 。其 橫軸 為[0, 1]的 正例率代價 , 縱軸 是在[0, 1]的 歸一化代價 。它們的公式分別表示如下:

        

其中p表示樣例為正例率的概率。我們來理解一下這兩個式子。首先根據圖6,只會出現 假反例 和 假正例 兩種可能會付出錯誤代價,那麼分母就表示代價的總量。其次,在正例中,我們會有p的概率出現假正例的可能,而有p-1的概率在反例中出現假反例可能,所以根據正例率代價的意思,第一個公式分子就代表假反例的總量。最後理解一下歸一化總代價,分子中在定義同正例率代價一樣的代價總量外,還加上了不同錯誤概率的區分,所以該式分子包含 錯誤細分種類 、 錯誤細分代價 兩個細節。這兩個也即總代價的兩個特點。根據公式,參考ROC中曲線的作圖方法,可得到下圖:

        高中時應該做過線性規劃吧,當時畫圖利用曲線方程不等式表示陰影部分以限制二維區域的范圍,代價曲線也是如此。ROC曲線的沒一點對應代價平面一條直線,因為這些直線是當前代價下的最大值(最糟糕情況),所以每個直線的下方即為總體代價,也即 所有直線下方面積的並集即為期望總體代價 ,通過計算比較面積大小,來間接比較模型性能的好壞。

        有了之前的評估方法和性能度量方法,我們就可以開始對模型的比較了,一般的順序是:首先使用評估方法,選擇合適的學習器,利用性能度量方法對不同學習結果測試,然後就進行比較了。比較 不是簡單的比較大小 ,主要有以下幾個原因: ① 如何更精確的比較「泛化」性能,而不是單單「測試集」上的性能。  ② 測試集是隨機的,不同測試集結果不同。  ③ 機器學習演算法具有隨機性,相同的模型參數得到的結果也會不同。那麼應該如何比較?這節著重講這個,我們主要採用概率論中的 假設檢驗法 。本節將介紹兩個常用假設檢驗方法和結果常用機器學習性能比較方法。其中設公式符號 表示錯誤率,表示性能度量結果。

統計中只能計算測試的錯誤率,該方法思路是通過測試錯誤率 間接的表示泛化錯誤率 。假設是獨立采樣,若測試中有m個樣本,則整體測試錯誤概率可由二項分布表示如下:

        

給定 ,則可解 對 的一階偏導方程可知, 在 時最大,當 時,對10個樣本求解到下圖:

通過二項檢驗,假設 ,在 的概率內,計算其置信區間

        

以上假設檢驗是針對一個模型的一個結果,但有時我們會產生多個結果,比如採用多次留出法或交叉驗證法,此時可採用t檢驗。設已測試k個錯誤率,設其均值為 ,方差為 ,定義如下:

        

k個測試錯誤率可看做泛化錯誤率 的獨立采樣,T變數:

服從自由度為k-1的t分布,如下圖所示:

使用雙邊假設,圖中陰影部分在 和 兩個區間,若 在 內,則接受假設,否則拒絕假設。

        設有學習器A和B,均使用k折交叉驗證法,得到的錯誤率為 和 ,i取值為1到k,其一對採用的是相同的折數位置訓練的。則可以使用「 成對t檢驗 」,這里認為若兩個學習器相同,相同折數的錯誤率也相同。演算法的具體做法如下:

① 令 , 計算均值和方差。

② 求變數 ,若小於 ,則接受假設,否則拒絕假設,且錯誤率小的模型較優。

        之前我們提到,計算泛化誤差的一個假設前提是測試錯誤率是泛化錯誤率的獨立采樣,但k折交叉驗證顯然在多次測試時數據選用重疊,使得最終的計算結果比正常值偏高。為解決問題,可採用 交叉驗證 。以下是該方法的實現過程:

① 做2折交叉檢驗,做5次。

② 每次2折交叉檢驗前將數據 隨機打亂 ,使得五次檢驗數據分布不同。

③ 設第n折得到的插值為 , 每做兩次 2折交叉檢驗求一次均值 和方差

利用三步求得的已知,可求變數T: ,其服從自由度為n的t分布,可以通過查表得到結果。

        該檢驗方法最適合 二分類問題 ,使用 留出法 可估計學習器AB的測試錯誤率,還可以得到 學習器分類結果差別 ,可以通過 列聯表 展示,示例如下圖:

        若兩學習器性能形同,則 ,均值為1,方差為 ,所以變數T:

        

服從自由度為1的卡方分布,設顯著度為 ,則當變數結果小於臨界值 ,接受假設,否則拒絕假設。

        前面的幾種檢驗方法主要同於比較兩個學習器對於同一數據集的學習性能,雖然比較更多演算法時可以兩兩比較,但不如 Friedman檢驗 直接,它是基於演算法排序的,可以直接進行多演算法比較。現在假設有四個數據集 和三個演算法ABC,則它的演算法過程如下:

① 使用留出法或交叉檢驗法得到每個演算法在每個數據集的測試結果,並填入演算法 比較序值表 中。

② 在每個數據集中對每個演算法的性能好壞排序,賦值1,2,3等,如果兩演算法性能相同,則取平均值。表格示例如下圖:

③ 從表中判演算法性能是否相同,若相同則平均序值相同,否則取平均,示例可見圖11。

設存在N個數據集,比較k個演算法,設 表示第i個演算法的平均序值,設其服從正態分布,均值為 ,方差為 ,則變數T:

在k和N較大時,變數服從自由度為k-1的卡方分布。上式有些保守,改進的公式將分布變為F分布,使得結果更精確,改變後如下:

        

該變數服從自由度為k-1和 的F分布,下圖給出常用臨界值:

        若通過上述檢驗比較發現「所有演算法性能相同」的假設被拒絕,則說明演算法性能顯著不同,此時要使用 Memenyi後續檢驗 做進一步分析。其通過下面公式計算平均序值差別的臨界值域。

        

下圖給出幾個 的常用取值:

        上述兩個檢驗方法結合算出結果後,可在 Friedman檢驗圖中 直觀的展示。上述演算法ABC的例子得到的結果展示圖如下:

圖中橫軸是平均序值,用圓點表示,橫線是表示臨界值域。若演算法間橫線有交疊,則兩演算法無先出差別,否則說明有顯著差別。圖15中A與B有交疊,所以沒有顯著差別,A與C沒有交疊,且A序值更高,說明演算法A優於演算法C。 ( 這里其實有個疑問,圖中演算法B與演算法C交疊,說明B與C無顯著差別,那麼根據傳遞關系,是不是三者都沒有顯著差別呢? )<1>

        除了評估泛化性能外,我們往往還需要知道模型為什麼會呈現這樣的性能,這是我們就需要使用 「偏差-方差分解」(bias-variance decomposition) 方法進行解釋。它的基本思想是, 將學習演算法評估得到的期望泛化錯誤率進行分解 。本節主要講解其實現。

        對測試樣本 ,令 為 在數據集中的真實標記, 表示訓練集D上學習模型 在 的預測輸出。這里推導以回歸任務為例。

定義期望預期:

定義方差:

定義雜訊:

則期望輸出與真實標記的差別稱為 偏差 ,定義為:

為便於推導,設 =0,推導過程書上寫的很詳細,也比較重要,截圖如下:

所以帶入之前定義變數有:

也即泛化誤差可分解為偏差、方差和雜訊之和 。

        公式中,偏差表示預期與真實結果的誤差,也即機器學習演算法的 擬合能力 ;方差度量同樣的訓練集變動,其學習性能的變化,也即 數據擾動造成的影響 ;雜訊表示泛化誤差的下界,也即 學習問題本身的難度 。推導結果說明, 泛化誤差是由這三者組成的 。

        一般情況, 偏差與誤差是矛盾的 ,如下圖所示,(下方的黑線表示偏差,上方黑線表示泛化誤差)這代表我們無法保證每個指標都達到自身的最佳。當訓練程度小時,由於欠擬合,數據預測的偏差較大,此時影響泛化誤差變大主要因素是偏差。當訓練程度逐漸變大時,模型越來越完善,偏差會變小,方差會變大。當訓練程度過大時,模型過擬合,雖然偏差非常小,但方差非常大,此時影響泛化誤差變大的主要因素是方差。根據理論,我們應當給出的訓練程度恰好使得泛化誤差最小。

        本章學習如何評估與選擇模型,首先我們知道學習模型學習程度不同,會導致欠擬合與過擬合。然後我們學習了模型選擇方法:留出法、k折交叉驗證法、自助法。選擇好模型後就要進行性能度量,本文採取計算誤差來表徵,提到了錯誤率、精度、查准率、查全率、 、ROC、AUC、代價敏感錯誤、代價曲線這幾種方法。計算完性能,我們要對幾個模型進行比較,本文講了Friedman檢驗、Memenyi後續檢驗、 McNemar檢驗、 交叉驗證t檢驗、 比較檢驗這幾種方法。最後我們講了利用偏差與方差,理解該模型產生性能結果的原因。

『叄』 常見的回歸分析方法哪些

1/6分步閱讀
1.線性回歸方法:通常因變數和一個(或者多個)自變數之間擬合出來是一條直線(回歸線),通常可以用一個普遍的公式來表示:Y(因變數)=a*X(自變數)+b+c,其中b表示截距,a表示直線的斜率,c是誤差項。如下圖所示。

2/6
2.邏輯回歸方法:通常是用來計算「一個事件成功或者失敗」的概率,此時的因變數一般是屬於二元型的(1 或0,真或假,有或無等)變數。以樣本極大似然估計值來選取參數,而不採用最小化平方和誤差來選擇參數,所以通常要用log等對數函數去擬合。如下圖。

3/6
3.多項式回歸方法:通常指自變數的指數存在超過1的項,這時候最佳擬合的結果不再是一條直線而是一條曲線。比如:拋物線擬合函數Y=a+b*X^2,如下圖所示。

4/6
4.嶺回歸方法:通常用於自變數數據具有高度相關性的擬合中,這種回歸方法可以在原來的偏差基礎上再增加一個偏差度來減小總體的標准偏差。如下圖是其收縮參數的最小誤差公式。

5/6
5.套索回歸方法:通常也是用來二次修正回歸系數的大小,能夠減小參量變化程度以提高線性回歸模型的精度。如下圖是其懲罰函數,注意這里的懲罰函數用的是絕對值,而不是絕對值的平方。

6/6
6.ElasticNet回歸方法:是Lasso和Ridge回歸方法的融合體,使用L1來訓練,使用L2優先作為正則化矩陣。當相關的特徵有很多個時,ElasticNet不同於Lasso,會選擇兩個。如下圖是其常用的理論公式。

閱讀全文

與線性回歸最常用的性能度量方法相關的資料

熱點內容
1萬小時定律訓練方法 瀏覽:598
快速讓肉溶化的方法 瀏覽:309
劉邦快速脫單的方法 瀏覽:246
紅芸豆的功效與作用及食用方法 瀏覽:233
眼葯水的正確使用方法 瀏覽:647
樓下有叫賣聲有什麼方法對付嗎 瀏覽:516
開口扳手的使用方法圖片 瀏覽:625
手串正確佩戴方法 瀏覽:412
瑜伽快速燃脂的方法 瀏覽:780
活期和定期計算方法 瀏覽:144
研究方法論的基本分析 瀏覽:650
三成倉的正確使用方法 瀏覽:198
現代革命傳統教育的教學方法 瀏覽:879
孤獨症的訓練方法 瀏覽:411
兔球蟲病有什麼土方法治療 瀏覽:839
腮腺腫瘤早期治療方法 瀏覽:166
中醫對中暑治療方法 瀏覽:213
pico方法研究問題舉例 瀏覽:306
有優力防水怎麼使用方法 瀏覽:38
成人快速止癢的方法 瀏覽:332