西瓜書-特徵選擇與稀疏學習
給定特徵集合{a1,a2,…,ad},可將每個特徵看做一個候選子集,對這d個候選單特徵子集進行評價,選出一個最優的,然後加入一個特徵,構成包含兩個特徵的候選子集…假定在k+1輪時,最後的候選(k+1)個特徵子集不如上一輪的選定集,則停止生成候選子集,並將上一輪選定的k特徵集合作為特徵選擇結果。上述這種逐漸增加相關特徵的策略稱為前向(forward)搜尋。如果從完整的特徵集合開始,每次嘗試去掉一個無關特徵,這樣逐漸減少特徵的策略稱為後向(backward)搜尋。也可將前後和後向搜尋結合起來,每一輪逐漸增加選定相關特徵、同時減少無關特徵,這樣的策略稱為雙向(bidirectional)搜尋。
上述策略是貪心的,因為它們僅僅考慮了使本輪選定集最優,如在第三輪假定a5優於a6,於是選定集為{a2,a4,a5},然後在第四輪卻可能是{a2,a4,a6,a8}優於所有的{a2,a4,a5,ai}。要解決這個問題,就只能進行窮舉搜尋。
子集評價

評價指標:資訊熵增益、不合度量、相關係數等可以判斷兩個劃分差異的都可以 對於離散型可以計算屬性的資訊增益,資訊增益越大,特徵子集包含的有助於分類資訊越多。更一般,根據特徵子集對資料集D進行劃分,每個劃分區對應特徵子集的一個取值,而樣本標記資訊Y對應D的真實劃分。與Y差異越小的劃分,特徵子集越好。
過濾式選擇
簡單來說,過濾式方法先對資料集進行特徵選擇,然後再訓練學習器,特徵選擇過程與後續學習器無關,這相當於先用特徵選擇過程對初識特徵進行“過濾”,然後再用過濾後的特徵來訓練模型。比如,Relief方法。

包裹式選擇
包裹式選擇特徵不考慮後續學習器不同,包裹式特徵選擇直接把最終將要使用的學習器的效能作為特徵子集的評價準則。換言之,包裹式特徵選擇的目的就是為給定學習器選擇最有利於其效能,量身定做的特徵子集。包裹式選擇比過濾式特徵選擇更好,但是另一方面,計算開銷卻要大得多。比如LVW方法(Las Vegas Wrapper)。
LVW中特徵子集搜尋採用了隨機策略,每次評價都得重新訓練學習器,故計算開銷是很大的。

推導過程
Lipschitz連續:以陸地為例。島嶼:不連續一般陸地:連續丘陵:李普希茲連續懸崖:非李普希茲連續山包:可導平原:線性半島:非凸想了半天用什麼來表達亞連續(semi-continuity),好像只能用瀑布了===稍微具體點的話,李普希茲連續就是說,一塊地不僅沒有河流什麼的玩意兒阻隔,而且這塊地上沒有特別陡的坡。其中最陡的地方有多陡呢?這就是所謂的李普希茲常數。懸崖的出現導致最陡的地方有“無窮陡”,所以不是李普希茲連續。
目標函式是最小化: 如果f(x)可導,且f的梯度滿足Lipschitz,就可以使得

嵌入式選擇和L1正則化
在過濾式和包裹式特徵選擇方法中,特徵選擇過程與學習器訓練過程有明顯的分別(過濾式是先做特徵選擇,再用過濾後的特徵做學習器訓練,而包裹式是用學習器訓練的結果作為特徵選擇的依據);與此不同,嵌入式特徵選擇是將特徵選擇過程與學習器訓練過程融為一體,兩者在同一個優化過程中完成,即在學習器訓練過程中自動地進行了特徵選擇。
L2正則化

L1正則化

範數和 範數都有助於降低過擬合風險,但前者還會帶來一個額外的好處:它比後者更易於獲得“稀疏”(sparse)解,即它求得的w會有更少的非零分量(更多的零分量)

注意到w取得稀疏解意味著初始的d個特徵中僅有對應著w的非零分量的特徵才會出現在最終模型中,於是求解 範數正則化的結果時得到了僅採用一部分初始特徵的模型;換言之,基於 正則化的學習方法就是一種嵌入式特徵選擇方法,其特徵選擇過程和學習器訓練過程融為一體,同時完成。
xk附近可將f(x)泰勒展開

式3
<·,·>表示內積,式3的最小值在如下獲得:
進而將這個思想推廣到優化目標函式,得到每一步迭代為:
即每一步對f(x)進行梯度下降迭代的同時要考慮l1範數最小化
通過PGD能使LASSO和其他基於L1範數最小化的方法得以快速求解。
稀疏表示和字典學習
稀疏性的兩種形式: 剔除無關特徵,縮小矩陣
- 把資料集D看成一個矩陣,每行對應一個樣本,每列對應一個特徵。特徵選擇所考慮的問題是特徵具有稀疏性,即矩陣中的許多列與當前學習任務無關,通過特徵選擇去除這些列,則學習器訓練過程僅需在叫小的矩陣上進行,學習任務的難度可能有所降低,設計的計算和儲存開銷會減少,學得模型的可解釋性也會提高。
**適當稀疏可以使得問題線性可分,找出適當稀疏的特徵字典 ** 2. 對於稀疏性,還存在一種情況是:D所對應的矩陣中存在很多零元素,這些零元素不是整行或整列存在。這和直接去掉其中一個或若干個列的稀疏性不一樣,直接去除整列,是做了無關性特徵剔除,不管樣本是否在這個特徵上是否為零。這種存在零元素情況的矩陣,在學習任務中有不少,如文件分類任務,將每個文件看做一個樣本,每個字或詞作為一個特徵,字或詞在文件中出現的頻率或次數作為特徵的取值;即D所對應的矩陣,每行是一個文件,每列是一個字或詞,行列交匯點就是某個字或詞在某文件中出現的頻率或次數。《康熙詞典》中有47035個漢字,就是矩陣有4萬多個列,就算是僅考慮《現代漢語常用字表》中的漢字,矩陣也有3500列。對給定的文件,相當多的字是不會出現在這個文件中,矩陣的每一行有大量的零元素,不同的文件,零元素出現的列也不相同。
目標函式為:
