預測建模中的正則化和增強指定

許多使用 Tableau 的人可能未使用預測模型,更不用說尋找改善預測模型的擬合度和預測品質的方法了。本文面向對資料科學領域感興趣的進階使用者。

除了如目標運算式(預測的度量)和預測值運算式(用於進行預測的度量和/或維度)等預設引數之外,還可以新增兩個引數來微調預測:lambda(正則化參數)和增強指定。這涉及在計算語法中新增新的引數。

哪些模型適用於正則化和增強指定?

提醒一下,Tableau 中的預測建模函數支援三種模型:線性回歸(也稱為普通最小平方回歸或 OLS)、正則化線性回歸(或脊迴歸)和高斯過程回歸。若使用的是線性回歸或脊迴歸,則增強指定可讓您增強模型揀選非線性模式的能力。若使用的是脊迴歸,則正則化參數是一個純量,可用於調整模型上的正則化效果。

正則化和增強指定不適用於高斯過程回歸

在進一步討論正規化和增強指定之前,讓我們回顧以下兩個模型:

在以下情況中,最好使用線性回歸:預測和預測目標之間存在具有線性關係的一個或多個預測值,這些預測值不受相同基礎條件的影響並且不代表相同資料的兩個執行個體(例如,以美元和歐元表示的銷售額)。

正規化線性回歸用於改善穩定性、減少共線性的影響,並提高計算效率和泛化能力。在 Tableau 中,使用 L2 正則化。有關 L2 正則化的詳情,請參閱有關脊迴歸的課程。

何謂正規化?

脊迴歸是一種特殊的正規化線性回歸。正規化會影響模型係數的大小。正規化的強度由 lambda 控制,lambda 是用於微調正則化整體影響的純量。值越高,懲罰越重(即正則化程度越高)。

脊迴歸可解決線性回歸的一些問題:

  • 其可消除預測值之間多重共線性帶來的問題。

  • 若最小平方問題條件不佳,如資料點數少於功能數,則 lambda 會選取唯一的解決方案。

  • 其可提供改善線性模型泛化的方法。

預設情況下,Tableau 中的脊迴歸具有 lambda=0.5,因為此值在許多情況下運作良好。要變更 lambda 值,只需編輯表計算(範例如下)。

何謂增強指定?

MODEL_QUANTILE 和 MODEL_PERCENTILE 中的增強指定是資料增強指定的簡單範例:將預測值擴充為高階多項式。在 Tableau 中,預測建模函數內置了幾種類型的多項式增強指定。

  • 對於有序維度,高達 3 階的勒壤得多項式允許線性模型揀選增強的預測值和回應之間的二次和三次關係。

  • 對於度量,二次埃爾米特多項式允許線性模型揀選增強的預測值和回應之間的二次關係。

在線性回歸中,預設情況下,僅有序維度會使用 augmentation=on 進行增強;在 model=rl 的脊迴歸中,預設情況下,僅會對度量進行增強。要覆寫設定並為計算中的每個預測值停用增強指定,請使用 augmentation=off;不會新增高階多項式。

資料集規模非常小時,關閉增強指定是有利的,因為增強指定可能會過度擬合原始資料中存在的任何雜訊,並且因為結果之間的關係會更簡單、更直觀。

附註:增強指定是根據每個預測值(例如,在計算的預測值引數中)開啟/關閉的。Lambda(和模型)可套用於更高層級(在任何預測值運算式之外)。

在計算中設定 lambda 和增強指定

現在,您已瞭解正規化參數(或 lambda)和資料增強指定,下面將在預測計算的背景下對它們進行介紹:

MODEL_QUANTILE("model=rl, lambda=0.05", 0.5, SUM([Profit]), "augmentation=off", SUM([Sales]))

下表快速概述了變更預設值的增強指定和 lambda 是否會影響線性模型:

 增強指定Lambda
脊迴歸
線性回歸不適用

正規化和增強指定的注意事項

  • 若資料模型錯誤,則變更正規化參數或增強指定可能不會產生明顯更好的結果。考慮檢查資料類型是否正確(度量與維度)。例如,若基礎資料為時間序列資料,請考慮使用高斯過程回歸,方法是使用 model=gp 變更表計算中的模型。

  • 因為 OLS 沒有經過正規化,所以沒有可以變更的 lambda 值。

  • 若資料集規模極其小,並且具有維度(尤其是高基數維度),則可以考慮使用脊迴歸,方法是在表計算中新增 model=rl。

  • 在所有條件都相同的情況下(對於相同的資料集,若開啟或關閉增強指定),較低的 lambda 可能會改善擬合度,但會損害泛化能力(導致過度擬合)。

  • 相反,較高的 lambda 可能會讓擬合成為恆定模型,而不依賴於任何預測值。這會減少模型容量(導致擬合不足)。

範例 1

本範例顯示了男性和女性的平均膽固醇與心髒病之間的關係,其中男性用正方形標記表示,女性用圓圈表示。

在第一個視覺效果中,藍色標記表示預測目標,橙色標記是建模值。您會看到資料非常嘈雜,並且已開啟增強指定,同時 lambda 值較小,為 0.01,而心髒病發病率大於 1,這是不切實際的。依賴性太強,可能是由於嘈雜資料中的所有極端值所致。

按性別分類心臟病,具有預測目標和差擬合的模型

MODEL_QUANTILE("model=rl, lambda=0.01", 0.5, AVG([Target]), ATTR([Sex]), "augmentation=on", AVG([Chol]))

在下一個視覺效果中,我們將預測目標與其他模型進行了比較,並關閉了增強功能,同時將 lambda 值設定為 10。請注意,此模型更切合實際,沒有任何疾病的發病率超過 1。

按性別分類心臟病,具有預測目標和較好擬合的模型

MODEL_QUANTILE("model=rl, lambda=10", 0.5, AVG([Target]), ATTR([Sex]), "augmentation=off", AVG([Chol]))

範例 2

接下來,讓我們看看另一個真實範例,使用的是波士頓 Bluebikes(以前稱為 Hubway)自行車共用系統的乘客資料。在這種情況下,線性回歸運作良好。比較以下視覺效果(彙總為 2017 年的各季度):

沒有過度擬合的 Hubway 乘客資料圖

MODEL_QUANTILE('model=rl, lambda=0.05', 0.5, sum([Trip.Duration]), AVG([Temp]))

沒有過度擬合的 Hubway 乘客資料圖

MODEL_QUANTILE('model=rl, lambda=0.05', 0.5, AVG([Speed]), AVG([Temp]))

兩者都不容易過度擬合,因此對於較小的 lambda,對 lambda 的依賴性較弱。

現在看一下最後一個的視覺效果:

沒有過度擬合的 Hubway 乘客資料圖

MODEL_QUANTILE('model=rl, lambda=2', 0.5, sum([Trip.Duration]), AVG([Temp]))

請注意,隨著 lambda 的增加,擬合趨於平坦,沒有坡度(也就是說,變得過度正則化或「擬合不足」)。

感謝您的意見反應!已成功提交您的意見回饋。謝謝!