參考:Statistical Learning with Sparsity The Lasso and Generalizations

以LASSO為代表的稀疏模型,確實可以通過正則項,在優化中把不重要的特徵係數壓縮成0.這裡的「不重要」是說對分類結果不重要。因此,用LASSO的確可以篩選出一些重要的特徵。但是直接用CrossValidation+Training並不能找到所有重要特徵,這是由於LASSO的侷限:

1,一般情況下LASSO有很多optimal solution。

2, 即便是用warm start訓練出的lasso path,對同一個問題也有多個。

3,LASSO解的特徵個數上界是訓練集大小。

4,由於1和2,對於同一問題,LASSO的結果會因一些因素而不同例如,優化的初始點,結束的容忍度。

標準的尋找LASSO問題的重要特徵的方法是計算每個參數的P-value。p<0.05意味著該參數重要(也意味著參數幾乎不可能不等於0)。estimate每個參數分佈的方法有兩個:1,貝葉斯法;2,bootstrapping。

這裡講下bootstrapping

  • 有放回sample你的數據集
  • 計算一個lasso path,參數取得盡量稠密
  • 計算CV,選擇最佳參數(這裡會有輕微over-fitting)
  • 在第一步裏,找到最佳參數代表的模型,記錄所有重要特徵
  • 以上四步重複1000次(結果不穩定則重複10000次)
  • 計算每個參數的p-value(參數為0的個數),返回顯著的特徵

推薦閱讀:

相關文章