百面機器學習 ch2

Original article was published on Deep Learning on Medium

第二章 模型評估

連續型模型評估指標,RMSE若居高不下可能的原因是存在outlier。解決的方法,(1)資料前處理時過濾掉,(2)提高模型預測能力,納入outlier的預測機制,(3)找一個更合適的指標如MAPE,把每個點誤差進行歸一化,降低outlier的影響。

離散型模型評估指標,準確率,分類正確樣本數佔總樣本數的比例,可能會被不同類別數量比例不均影響。

排序模型的評估指標,精準率,TP/(TP+FP)與召回率,TP/(TP+FN)。通常採用前N個位置上的Precision@N & Recall@N。

  • P-R曲線的x軸是Recall,y軸是Precision。透過調整threshold高至低,計算各個threshold下的Recall & Precision繪製而成。
  • F1-score=2 * Recall * Precision/ (Recall + Precision)

ROC曲線也是評估離散模型的指標,AUC是沿著ROC曲線橫軸積分,越大表示模型越好。

  • (畫法1) 每次計算分類器不同截斷點下的TPR & FPR 描點畫圖。
  • (畫法2)
  • (1) 據樣本標籤統計出正負樣本的數量,假設正樣本數量為P,負樣本數量為N;橫軸的刻度間隔設置為1/N,縱軸的刻度間隔設置為1/P
  • (2) 再根據模型輸出的預測概率對樣本進行排序(從高到低)
  • (3) 從0開始繪製ROC曲線,每遇到一個正樣本就沿縱軸方向繪製一個刻度間隔的曲線,每遇到一個負樣本就沿橫軸方向繪製一個刻度間隔的曲線,直到遍歷完所有樣本,曲線最終停在(1,1),整個ROC曲線繪製完成。

ROC vs P-R:正負樣本發生變化時,P-R曲線會發生劇烈變化,ROC曲線不會變更能穩定反映模型好壞,適用於排序、推薦、廣告等領域。若只關注於某特定數據集P-R曲線則更能反映其性能。

文本分析可用餘弦距離(1-餘弦相似度),餘弦相似度用來計算兩向量間的相似性的指標。歐式距離是數值上的絕對差異,餘弦距離表示角度關係,是方向上的絕對差異。餘弦距離非嚴格定義的距離,他滿足正定性與對稱性,但不滿足三角不等式。

模型評估的驗證方法

  • Holdout:只分成訓練與測試集
  • cross validation (k-fold, leave-one-out)
  • 自助法:當樣本較小時,維持訓練集規模的驗證方法。對於總數為n的樣本集合,進行n次抽後放回的隨機抽樣,得到大小為n的訓練集。 n次採樣過程中,有的樣本會被重複採樣,有的樣本沒有被抽出過,將這些沒有被抽出的樣本作為驗證集。

超參數調整

  • 網格搜尋:先使用較廣的搜索範圍和較大的步長,來尋找全局最優值可能的位置;然後會逐漸縮小搜索範圍和步長,來尋找更精確的最優值。可能非全域最佳解,且消耗資源與時間。
  • 隨機搜尋:搜索範圍中隨機選取樣本點。如果樣本點集足夠大,那麼通過隨機採樣也應能找到全域最佳值,或其近似值。隨機搜尋一般會比網格搜尋要快一些。
  • 貝氏優化算法:首先根據先驗分佈,假設一個搜集函數;每一次使用新的採樣點來測試目標函數時,利用這個信息來更新目標函數的先驗分佈;最後,算法測試由後驗分佈給出的全域最佳值最可能出現的位置的點。缺點是一旦找到了一個局部最優值,它會在該區域不斷採樣,所以很容易陷入局部最優值。
  • Google Vizier

過擬合,模型在訓練集上的表現很好,但在測試集和新數據上的表現較差,解決方式:

  • 取得更多訓練資料:如數據擴充。
  • 降低模型複雜度:如神經網路中降低網路層數或單元數,決策樹模型中降低樹的深度或剪枝。
  • 加入正規化方法
  • 集成學習

欠擬合,訓練和預測時表現都不好,解決方式:

  • 增加特徵 feature:如因子分解机、梯度提升决策树、Deep-crossing(利用殘差網絡結構挖掘特徵間的關係)
  • 增加模型複雜度
  • 減小正規化係數