Python機器學習中的穩健迴歸


在機器學習中,迴歸分析是根據輸入變數預測連續數值結果的關鍵工具。傳統的迴歸技術假設資料服從正態分佈並且沒有異常值。然而,現實世界的資料集往往偏離這些假設,導致預測不可靠。為了應對這一挑戰,已經開發出穩健迴歸方法,即使存在異常值,也能提供更準確和可靠的結果。本文深入探討了穩健迴歸,並探討了如何使用Python(最流行的機器學習程式語言之一)實現這些技術。透過理解穩健迴歸及其在Python中的實現,您可以提高機器學習模型的可靠性和效能。

什麼是穩健迴歸?

穩健迴歸是傳統迴歸分析的一種變體,它對資料中的異常值不太敏感。異常值是指與大多數資料點明顯偏離的資料點,它們會對迴歸模型的效能產生重大影響。傳統的迴歸方法,例如普通最小二乘法 (OLS),平等對待所有資料點,而不管它們與中心簇的距離如何。這使得它們很容易受到異常值的影響,導致引數估計偏差和預測效能差。

另一方面,穩健迴歸技術旨在透過在模型擬合過程中為這些資料點分配較低的權重來降低異常值的影響。透過減少異常值的權重,穩健迴歸模型可以提供更準確的引數估計和更好的預測。

穩健迴歸的重要性

穩健迴歸方法為傳統迴歸分析中異常值帶來的挑戰提供瞭解決方案。這些方法調整模型擬合過程以降低異常值的影響,從而減少它們對估計迴歸係數的影響。透過減少異常值的權重,穩健迴歸模型可以提供更可靠的引數估計並提高整體預測效能。

穩健迴歸方法透過採用不同的加權方案或使用穩健估計技術來實現穩健性。穩健迴歸不是最小化殘差平方和,而是專注於最小化對異常值不太敏感的其他目標函式。透過這樣做,這些方法可以更準確地估計預測變數和目標變數之間的潛在關係。

穩健迴歸方法的型別

多年來,已經開發出幾種穩健迴歸方法。讓我們討論一些常用的方法。

  • Huber迴歸

    Huber迴歸是一種穩健的迴歸方法,它結合了最小二乘迴歸和絕對偏差迴歸的優點。它最小化迴歸線附近資料點的殘差平方和,同時最小化明顯偏離該線的資料點的絕對殘差。這樣,它在兩者之間取得平衡,並提供穩健的引數估計。

  • Theil-Sen迴歸

    Theil-Sen迴歸是一種非引數穩健迴歸方法,它透過考慮所有可能的點對來估計迴歸線的斜率。它計算連線每一對點的線的斜率的中位數,並提供整體斜率的穩健估計。Theil-Sen方法計算效率高,即使高達29%的資料點是異常值,也能提供穩健的估計。

  • RANSAC(隨機抽樣一致性)

    RANSAC是一種迭代穩健迴歸方法,它隨機選擇一個數據點子集,將回歸模型擬合到這些點,然後計算內點(與模型一致的資料點)和異常值(偏離模型的資料點)的數量。它對一定數量的迭代重複此過程,選擇具有最多內點的模型作為最終的穩健迴歸模型。

在Python中實現穩健迴歸

Python提供了許多提供可靠迴歸方法的庫。一個眾所周知的庫是statsmodels,它以其廣泛的統計建模能力而聞名,包括穩健迴歸的實現。為了展示穩健迴歸的應用,讓我們探索一個使用波士頓房價資料集的例子。

我們必須首先匯入所需的庫。

import pandas as pd
import numpy as np
import statsmodels.api as sm

接下來,我們載入波士頓房價資料集。

from sklearn.datasets import load_boston
boston = load_boston()
df = pd.DataFrame(data=boston.data, columns=boston.feature_names)
df['MEDV'] = boston.target

現在,我們可以使用statsmodels中的RLM(穩健線性模型)類擬合穩健迴歸模型。

X = df.drop('MEDV', axis=1)
y = df['MEDV']

# The predictor variables should include a constant term.
X = sm.add_constant(X)

# Fit the robust regression model
robust_model = sm.RLM(y, X, M=sm.robust.norms.HuberT())
robust_results = robust_model.fit()

在提供的程式碼片段中,第一步是將預測變數 (X) 與目標變數 (y) 分離。為了適應迴歸方程中的截距項,隨後將常數項附加到預測變數。最後,使用RLM類並使用HuberT範數(一種流行的穩健估計方法)構建穩健迴歸模型。

模型擬合後,我們可以獲得引數估計和其他統計資訊。

print(robust_results.summary())

summary() 函式提供了模型的綜合摘要,包括引數估計、標準誤差、t值和p值。它還顯示診斷資訊,例如模型擬合過程中執行的迭代次數和收斂狀態。

穩健迴歸的優勢

  • 在處理包含異常值或違反正態性假設的資料時,穩健迴歸技術比傳統的迴歸方法具有許多優勢。本文將深入探討使用穩健迴歸的關鍵優勢,重點介紹它在處理具有挑戰性的資料場景時如何勝過其對應方法。讓我們探索使用穩健迴歸技術的優勢。

  • 增強的穩健性:穩健迴歸方法旨在處理異常值和有影響的觀測值,提供更可靠的模型引數估計。這使得模型對極端觀測值不太敏感,並提高了整體預測效能。

  • 更好的模型解釋:透過降低異常值的影響,穩健迴歸模型提供了更能代表大多數資料的引數估計。這增強了模型的可解釋性,因為估計的係數反映了在沒有極端觀測值的情況下預測變數和目標變數之間的關係。

  • 多功能性:穩健迴歸技術可以應用於各種迴歸問題,包括簡單線性迴歸、多元線性迴歸和非線性迴歸。這使得它們適用於經濟學、金融、社會科學和工程等領域的各種應用。

  • 易於實現:可以使用流行程式語言(如Python)中現成的庫來實現穩健迴歸方法。這簡化了穩健迴歸在現有機器學習工作流程中的採用和整合。

結論

當資料包含異常值或違反傳統迴歸方法的假設時,穩健迴歸是提高機器學習模型可靠性和準確性的寶貴技術。透過降低極端觀測值的影響,穩健迴歸提供了更穩健的引數估計和更好的預測效能。Python,以及statsmodels之類的庫,提供了方便的工具來實現穩健迴歸模型。透過將穩健迴歸技術納入您的機器學習工作流程,您可以為各種應用構建更可靠和準確的預測模型。

更新於:2023年7月25日

瀏覽量:690

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告