回覆列表
-
1 # 北航秦曾昌
-
2 # By皓月
baseline這個概念是作為演算法提升的參照物而存在的,相當於一個基礎模型,可以以此為基準來比較對模型的改進是否有效。通常在一些競賽或專案中,baseline就是指能夠順利完成資料預處理、基礎的特徵工程、模型建立以及結果輸出與評價,然後透過深入進行資料處理、特徵提取、模型調參與模型提升或融合,使得baseline可以得到改進。所以這個沒有明確的指代,改進後的模型也可以作為後續模型的baseline。
將輸入資料(特徵)與目標變數(或者標籤)之間關係建立模型的函式,是一個機器學習演算法試圖學習的物件。當你對演算法進行測試時,你總要找出一種方式來估量演算法的表現。比如你想對給定英文文字做詞性標註,把每個單詞標為名詞、動詞、代詞等等,一個單詞在不同文字中會有不同的詞性(比如building)。你以此訓練了一個機器學習模型,演算法的準確率是75%,但是你無法確定75%是否是一個滿意的結果,除非你將你的準確率與別的參照進行比較。在這裡用於比較的就是著基線(baseline)。總的來說,你希望你的演算法表現比基線更好。
基線(baseline)的正式定義是一種使用簡單的啟發式探索,統計規則,隨機規則或者該領域中先前常使用演算法對已知問題及資料集進行預測的方法。這些預測將用來評估基線演算法的表現(比如準確率),並且作為標準來對比評估其他機器學習演算法的表現。它通常在在正式的工作之前進行,為後面的工作效果提供表現評估的支援。
有時選擇一個簡單的基線就足夠,比如上面的例子,基線可以是用每個單詞最常使用的詞性來標註它。或者可以針對這項任務的、現存的使用廣泛的演算法作為基線。基線的選擇是由你的目標決定的。目標可以是超越基線,如果你的工作想提高準確率,或者可以是得到與基線相當的結果,但是在演算法的其他方面實現改進(比如訓練時長、預測時間、記憶體使用情況等等)。
比較典型的基線包括這些由sklearn支援的虛擬估計(scikit-learn"s "dummy" estimators):
用於分類問題的基線(Classification baselines):
“stratified”: 考慮訓練集的類分佈來生成預測 。
“most_frequent”: 總是預測訓練集中最頻繁出現的標籤。“prior”:總是預測將優先類(class prior)最大化的類。“uniform”: 生成隨機均勻的預測。“constant”: 總是預測由使用者提供的常數標籤。對評估非多數類很有用。迴歸的基線(Regression baselines):
“median”: 總是預測訓練集的中值。
“quantile”: 總是預測訓練集的、由百分位引數提供的特定的分位數。“constant”: 總是預測由使用者提供的常量。最後,如果在你在機器學習的特定領域進行工作(比如推薦系統),為了展現你的方法做得更好,一般選取現有技術作為基線。例如你想要評測新的協同過濾演算法,你也許會將它和矩陣分解作比較。