特徵工程(完)
機器學習入門系列(2)--如何構建一個完整的機器學習項目,第六篇!
該系列的前五篇文章:
- 機器學習入門系列(2)--如何構建一個完整的機器學習項目(一)
- 機器學習數據集的獲取和測試集的構建方法
- 特徵工程之數據預處理(上)
- 特徵工程之數據預處理(下)
- 特徵工程之特徵縮放&特徵編碼
這也是特徵工程系列最後一篇文章,介紹特徵提取、特徵選擇、特徵構建三個工作,通常特徵工程被認為分為這三方面的內容,只是我將前面的數據&特徵預處理部分都加入到這個系列。
實際上,特徵工程其實是非常需要通過實踐才能更好掌握這個技能的,單純看理論,理解不夠深入,實際應用到項目或者比賽中的時候,才會有更深入的理解。
3.4 特徵選擇
定義:從給定的特徵集合中選出相關特徵子集的過程稱為特徵選擇(feature selection)。
1.對於一個學習任務,給定了屬性集,其中某些屬性可能對於學習來說很關鍵,但有些屬性意義就不大。
- 對當前學習任務有用的屬性或者特徵,稱為相關特徵(relevant feature);
- 對當前學習任務沒用的屬性或者特徵,稱為無關特徵(irrelevant feature)。
2.特徵選擇可能會降低模型的預測能力,因為被剔除的特徵中可能包含了有效的信息,拋棄這部分信息一定程度上會降低模型的性能。但這也是計算複雜度和模型性能之間的取捨:
- 如果保留儘可能多的特徵,模型的性能會提升,但同時模型就變複雜,計算複雜度也同樣提升;
- 如果剔除儘可能多的特徵,模型的性能會有所下降,但模型就變簡單,也就降低計算複雜度。
3.常見的特徵選擇分為三類方法:
- 過濾式(filter)
- 包裹式(wrapper)
- 嵌入式(embedding)
3.4.1 特徵選擇原理
1.採用特徵選擇的原因:
- 維數災難問題。因為屬性或者特徵過多造成的問題,如果可以選擇重要的特徵,使得僅需要一部分特徵就可以構建模型,可以大大減輕維數災難問題,從這個意義上講,特徵選擇和降維技術有相似的動機,事實上它們也是處理高維數據的兩大主流技術。
- 去除無關特徵可以降低學習任務的難度,也同樣讓模型變得簡單,降低計算複雜度。
2.特徵選擇最重要的是確保不丟失重要的特徵,否則就會因為缺少重要的信息而無法得到一個性能很好的模型。
- 給定數據集,學習任務不同,相關的特徵很可能也不相同,因此特徵選擇中的不相關特徵指的是與當前學習任務無關的特徵。
- 有一類特徵稱作冗餘特徵(redundant feature),它們所包含的信息可以從其他特徵中推演出來。
- 冗餘特徵通常都不起作用,去除它們可以減輕模型訓練的負擔;
- 但如果冗餘特徵恰好對應了完成學習任務所需要的某個中間概念,則它是有益的,可以降低學習任務的難度。
3.在沒有任何先驗知識,即領域知識的前提下,要想從初始特徵集合中選擇一個包含所有重要信息的特徵子集,唯一做法就是遍歷所有可能的特徵組合。
但這種做法並不實際,也不可行,因為會遭遇組合爆炸,特徵數量稍多就無法進行。
一個可選的方案是:
- 產生一個候選子集,評價出它的好壞。
- 基於評價結果產生下一個候選子集,再評價其好壞。
- 這個過程持續進行下去,直至無法找到更好的後續子集為止。
這裡有兩個問題:如何根據評價結果獲取下一個候選特徵子集?如何評價候選特徵子集的好壞?
3.4.1.1 子集搜索
1.子集搜索方法步驟如下:
- 給定特徵集合 A={A1,A2,…,Ad} ,首先將每個特徵看作一個候選子集(即每個子集中只有一個元素),然後對這 d 個候選子集進行評價。假設 A2 最優,於是將 A2 作為第一輪的選定子集。
- 然後在上一輪的選定子集中加入一個特徵,構成了包含兩個特徵的候選子集。假定 A2,A5 最優,且優於 A2 ,於是將 A2,A5 作為第二輪的選定子集。
- ….
- 假定在第
k+1
輪時,本輪的最優的特徵子集不如上一輪的最優的特徵子集,則停止生成候選子集,並將上一輪選定的特徵子集作為特徵選擇的結果。
2.這種逐漸增加相關特徵的策略稱作前向 forward
搜索
類似地,如果從完整的特徵集合開始,每次嘗試去掉一個無關特徵,這種逐漸減小特徵的策略稱作後向backward
搜索
3.也可以將前向和後向搜索結合起來,每一輪逐漸增加選定的相關特徵(這些特徵在後續迭代中確定不會被去除),同時減少無關特徵,這樣的策略被稱作是雙向bidirectional
搜索。
4該策略是貪心的,因為它們僅僅考慮了使本輪選定集最優。但是除非進行窮舉搜索,否則這樣的問題無法避免。
3.4.1.2 子集評價
1.子集評價的做法如下:
給定數據集 D,假設所有屬性均為離散型。對屬性子集 A,假定根據其取值將 D 分成了 V 個子集: 可以計算屬性子集 A 的信息增益:
其中, 表示集合大小, 表示熵。
信息增益越大,表明特徵子集 A 包含的有助於分類的信息越多。所以對於每個候選特徵子集,可以基於訓練集 D 來計算其信息增益作為評價準則。
2.更一般地,特徵子集 A 實際上確定了對數據集 D 的一個劃分規則。
- 每個劃分區域對應著 A 上的一個取值,而樣本標記信息 y 則對應著 D 的真實劃分。
- 通過估算這兩種劃分之間的差異,就能對 A 進行評價:與 y 對應的劃分的差異越小,則說明 A 越好。
- 信息熵僅僅是判斷這個差異的一種方法,其他能判斷這兩個劃分差異的機制都能夠用於特徵子集的評價。
3.將特徵子集搜索機制與子集評價機制結合就能得到特徵選擇方法。
- 事實上,決策樹可以用於特徵選擇,所有樹結點的劃分屬性所組成的集合就是選擇出來的特徵子集。
- 其他特徵選擇方法本質上都是顯式或者隱式地結合了某些子集搜索機制和子集評價機制。
4.常見的特徵選擇方法分為以下三種,主要區別在於特徵選擇部分是否使用後續的學習器。
- 過濾式(filter):先對數據集進行特徵選擇,其過程與後續學習器無關,即設計一些統計量來過濾特徵,並不考慮後續學習器問題
- 包裹式(wrapper):實際上就是一個分類器,它是將後續的學習器的性能作為特徵子集的評價標準。
- 嵌入式(embedding):實際上是學習器自主選擇特徵。
5.最簡單的特徵選擇方法是:去掉取值變化小的特徵。
假如某特徵只有 0 和 1 的兩種取值,並且所有輸入樣本中,95% 的樣本的該特徵取值都是 1 ,那就可以認為該特徵作用不大。
當然,該方法的一個前提是,特徵值都是離散型才使用該方法;如果是連續型,需要離散化後再使用,並且實際上一般不會出現 95% 以上都取某個值的特徵的存在。
所以,這個方法簡單,但不太好用,可以作為特徵選擇的一個預處理,先去掉變化小的特徵,然後再開始選擇上述三種類型的特徵選擇方法。
3.4.2 過濾式選擇
該方法先對數據集進行特徵選擇,然後再訓練學習器。特徵選擇過程與後續學習器無關。
也就是先採用特徵選擇對初始特徵進行過濾,然後用過濾後的特徵訓練模型。
- 優點是計算時間上比較高效,而且對過擬合問題有較高的魯棒性;
- 缺點是傾向於選擇冗餘特徵,即沒有考慮到特徵之間的相關性。
3.4.2.1 Relief 方法
1.Relief:Relevant Features
是一種著名的過濾式特徵選擇方法。該方法設計了一個相關統計量來度量特徵的重要性。
- 該統計量是一個向量,其中每個分量都對應於一個初始特徵。特徵子集的重要性則是由該子集中每個特徵所對應的相關統計量分量之和來決定的。
- 最終只需要指定一個閾值 k,然後選擇比 k 大的相關統計量分量所對應的特徵即可。也可以指定特徵個數 m ,然後選擇相關統計量分量最大的 m 個特徵。
2.Relief
是為二分類問題設計的,其拓展變體 Relief-F
可以處理多分類問題。
3.4.2.2 方差選擇法
使用方差選擇法,先要計算各個特徵的方差,然後根據閾值,選擇方差大於閾值的特徵。
3.4.2.3 相關係數法
使用相關係數法,先要計算各個特徵對目標值的相關係數以及相關係數的 P 值。
3.4.2.4 卡方檢驗
經典的卡方檢驗是檢驗定性自變數對定性因變數的相關性。假設自變數有N種取值,因變數有M種取值,考慮自變數等於 i 且因變數等於 j 的樣本頻數的觀察值與期望的差距,構建統計量:
不難發現,這個統計量的含義簡而言之就是自變數對因變數的相關性。3.4.2.5 互信息法
經典的互信息也是評價定性自變數對定性因變數的相關性的,互信息計算公式如下:
為了處理定量數據,最大信息係數法被提出。
3.4.3 包裹式選擇
1.相比於過濾式特徵選擇不考慮後續學習器,包裹式特徵選擇直接把最終將要使用的學習器的性能作為特徵子集的評價原則。其目的就是為給定學習器選擇最有利於其性能、量身定做的特徵子集。
- 優點是直接針對特定學習器進行優化,考慮到特徵之間的關聯性,因此通常包裹式特徵選擇比過濾式特徵選擇能訓練得到一個更好性能的學習器,
- 缺點是由於特徵選擇過程需要多次訓練學習器,故計算開銷要比過濾式特徵選擇要大得多。
2.LVW:Las Vegas Wrapper
是一個典型的包裹式特徵選擇方法。它是Las Vegas method
框架下使用隨機策略來進行子集搜索,並以最終分類器的誤差作為特徵子集的評價標準。
3.由於 LVW
演算法中每次特徵子集評價都需要訓練學習器,計算開銷很大,因此它會設計一個停止條件控制參數 T。
但是如果初始特徵數量很多、T 設置較大、以及每一輪訓練的時間較長, 則很可能演算法運行很長時間都不會停止。即:如果有運行時間限制,則有可能給不出解。
5.遞歸特徵消除法:使用一個基模型來進行多輪訓練,每輪訓練後,消除若干權值係數的特徵,再基於新的特徵集進行下一輪訓練。
3.4.4 嵌入式選擇
1.在過濾式和包裹式特徵選擇方法中,特徵選擇過程與學習器訓練過程有明顯的分別。
嵌入式特徵選擇是將特徵選擇與學習器訓練過程融為一體,兩者在同一個優化過程中完成的。即學習器訓練過程中自動進行了特徵選擇。
常用的方法包括:
- 利用正則化,如
L_1, L_2
範數,主要應用於如線性回歸、邏輯回歸以及支持向量機(SVM)等演算法; - 使用決策樹思想,包括決策樹、隨機森林、Gradient Boosting 等。
2.引入 L1 範數除了降低過擬合風險之外,還有一個好處:它求得的 w 會有較多的分量為零。即:它更容易獲得稀疏解。
於是基於 L1 正則化的學習方法就是一種嵌入式特徵選擇方法,其特徵選擇過程與學習器訓練過程融為一體,二者同時完成。
3.常見的嵌入式選擇模型:
- 在
Lasso
中,λ 參數控制了稀疏性: - 如果 λ 越小,則稀疏性越小,被選擇的特徵越多;
- 相反,λ 越大,則稀疏性越大,被選擇的特徵越少;
- 在
SVM
和 邏輯回歸中,參數C
控制了稀疏性: - 如果
C
越小,則稀疏性越大,被選擇的特徵越少; - 如果
C
越大, 則稀疏性越小,被選擇的特徵越多。
3.5 特徵提取
特徵提取一般是在特徵選擇之前,它提取的對象是原始數據,目的就是自動地構建新的特徵,將原始數據轉換為一組具有明顯物理意義(比如 Gabor、幾何特徵、紋理特徵)或者統計意義的特徵。
一般常用的方法包括降維(PCA、ICA、LDA等)、圖像方面的SIFT、Gabor、HOG等、文本方面的詞袋模型、詞嵌入模型等,這裡簡單介紹這幾種方法的一些基本概念。
3.5.1 降維
1.PCA(Principal Component Analysis,主成分分析)
PCA 是降維最經典的方法,它旨在是找到數據中的主成分,並利用這些主成分來表徵原始數據,從而達到降維的目的。
PCA 的思想是通過坐標軸轉換,尋找數據分佈的最優子空間。
比如,在三維空間中有一系列數據點,它們分佈在過原點的平面上,如果採用自然坐標系的 x,y,z 三個軸表示數據,需要三個維度,但實際上這些數據點都在同一個二維平面上,如果我們可以通過坐標軸轉換使得數據所在平面和 x,y 平面重合,我們就可以通過新的 x、y 軸來表示原始數據,並且沒有任何損失,這就完成了降維的目的,而且這兩個新的軸就是我們需要找的主成分。
因此,PCA 的解法一般分為以下幾個步驟:
- 對樣本數據進行中心化處理;
- 求樣本協方差矩陣;
- 對協方差矩陣進行特徵值分解,將特徵值從大到小排列;
- 取特徵值前 n 個最大的對應的特徵向量
W1, W2, …, Wn
,這樣將原來 m 維的樣本降低到 n 維。
通過 PCA ,就可以將方差較小的特徵給拋棄,這裡,特徵向量可以理解為坐標轉換中新坐標軸的方向,特徵值表示在對應特徵向量上的方差,特徵值越大,方差越大,信息量也就越大。這也是為什麼選擇前 n 個最大的特徵值對應的特徵向量,因為這些特徵包含更多重要的信息。
PCA 是一種線性降維方法,這也是它的一個侷限性。不過也有很多解決方法,比如採用核映射對 PCA 進行拓展得到核主成分分析(KPCA),或者是採用流形映射的降維方法,比如等距映射、局部線性嵌入、拉普拉斯特徵映射等,對一些 PCA 效果不好的複雜數據集進行非線性降維操作。
2.LDA(Linear Discriminant Analysis,線性判別分析)
LDA 是一種有監督學習演算法,相比較 PCA,它考慮到數據的類別信息,而 PCA 沒有考慮,只是將數據映射到方差比較大的方向上而已。
因為考慮數據類別信息,所以 LDA 的目的不僅僅是降維,還需要找到一個投影方向,使得投影后的樣本儘可能按照原始類別分開,即尋找一個可以最大化類間距離以及最小化類內距離的方向。
LDA 的優點如下:
- 相比較 PCA,LDA 更加擅長處理帶有類別信息的數據;
- 線性模型對雜訊的魯棒性比較好,LDA 是一種有效的降維方法。
相應的,也有如下缺點:
- LDA 對數據的分佈做出了很強的假設,比如每個類別數據都是高斯分佈、各個類的協方差相等。這些假設在實際中不一定完全滿足。
- LDA 模型簡單,表達能力有一定侷限性。但這可以通過引入核函數拓展 LDA 來處理分佈比較複雜的數據。
3.ICA(Independent Component Analysis,獨立成分分析)
PCA特徵轉換降維,提取的是不相關的部分,ICA獨立成分分析,獲得的是相互獨立的屬性。ICA演算法本質尋找一個線性變換 z = Wx
,使得 z 的各個特徵分量之間的獨立性最大。
通常先採用 PCA 對數據進行降維,然後再用 ICA 來從多個維度分離出有用數據。PCA 是 ICA 的數據預處理方法。
具體可以查看知乎上的這個問題和回答獨立成分分析 ( ICA ) 與主成分分析 ( PCA ) 的區別在哪裡?。
3.5.2 圖像特徵提取
圖像的特徵提取,在深度學習火起來之前,是有很多傳統的特徵提取方法,比較常見的包括以下幾種。
1.SIFT 特徵
SIFT 是圖像特徵提取中非常廣泛應用的特徵。它包含以下幾種優點:
- 具有旋轉、尺度、平移、視角及亮度不變性,有利於對目標特徵信息進行有效表達;
- SIFT 特徵對參數調整魯棒性好,可以根據場景需要調整適宜的特徵點數量進行特徵描述,以便進行特徵分析。
SIFT 對圖像局部特徵點的提取主要包括四個步驟:
- 疑似特徵點檢測
- 去除偽特徵點
- 特徵點梯度與方向匹配
- 特徵描述向量的生成
SIFT 的缺點是不藉助硬體加速或者專門的圖像處理器很難實現。
2.SURF 特徵
SURF 特徵是對 SIFT 演算法的改進,降低了時間複雜度,並且提高了魯棒性。
它主要是簡化了 SIFT 的一些運算,如將 SIFT 中的高斯二階微分的模型進行了簡化,使得卷積平滑操作僅需要轉換成加減運算。並且最終生成的特徵向量維度從 128 維減少為 64 維。
3.HOG 特徵
方向梯度直方圖(HOG)特徵是 2005 年針對行人檢測問題提出的直方圖特徵,它通過計算和統計圖像局部區域的梯度方向直方圖來實現特徵描述。
HOG 特徵提取步驟如下:
- 歸一化處理。先將圖像轉為灰度圖像,再利用伽馬校正實現。這一步驟是為了提高圖像特徵描述對光照及環境變化的魯棒性,降低圖像局部的陰影、局部曝光過多和紋理失真,儘可能抵制雜訊幹擾;
- 計算圖像梯度;
- 統計梯度方向;
- 特徵向量歸一化;為克服光照不均勻變化及前景與背景的對比差異,需要對塊內的特徵向量進行歸一化處理。
- 生成特徵向量。
4.LBP 特徵
局部二值模式(LBP)是一種描述圖像局部紋理的特徵運算元,它具有旋轉不變性和灰度不變性的優點。
LBP 特徵描述的是一種灰度範圍內的圖像處理操作技術,針對的是輸入為 8 位或者 16 位的灰度圖像。
LBP 特徵通過對窗口中心點與鄰域點的關係進行比較,重新編碼形成新特徵以消除對外界場景對圖像的影響,因此一定程度上解決了複雜場景下(光照變換)特徵描述問題。
根據窗口領域的不同分為兩種,經典 LBP 和圓形 LBP。前者的窗口是 3×3 的正方形窗口,後者將窗口從正方形拓展為任意圓形領域。
更詳細的可以參考這篇文章--圖像特徵檢測描述(一):SIFT、SURF、ORB、HOG、LBP特徵的原理概述及OpenCV代碼實現
當然上述特徵都是比較傳統的圖像特徵提取方法了,現在圖像基本都直接利用 CNN(卷積神經網路)來進行特徵提取以及分類。
3.5.3 文本特徵提取
1.詞袋模型
最基礎的文本表示模型是詞袋模型。
具體地說,就是將整段文本以詞為單位切分開,然後每篇文章可以表示成一個長向量,向量的每一個維度代表一個單詞,而該維度的權重反映了該單詞在原來文章中的重要程度。
通常採用 TF-IDF 計算權重,公式為 TF-IDF(t, d) = TF(t,d) × IDF(t)
其中 TF(t, d) 表示單詞 t 在文檔 d 中出現的頻率,IDF(t) 是逆文檔頻率,用來衡量單詞 t 對表達語義所起的重要性,其表示為:
直觀的解釋就是,如果這個單詞在多篇文章都出現過,那麼它很可能是比較通用的辭彙,對於區分文章的貢獻比較小,自然其權重也就比較小,即 IDF(t) 會比較小。2.N-gram 模型
詞袋模型是以單詞為單位進行劃分,但有時候進行單詞級別劃分並不是很好的做法,畢竟有的單片語合起來纔是其要表達的含義,比如說 natural language processing(自然語言處理)
、computer vision(計算機視覺)
等。
因此可以將連續出現的 n 個詞 (n <= N) 組成的片語(N-gram)作為一個單獨的特徵放到向量表示中,構成了 N-gram 模型。
另外,同一個詞可能會有多種詞性變化,但卻具有相同含義,所以實際應用中還會對單詞進行詞幹抽取(Word Stemming)處理,即將不同詞性的單詞統一為同一詞幹的形式。
3.詞嵌入模型
詞嵌入是一類將詞向量化的模型的統稱,核心思想是將每個詞都映射成低維空間(通常 K=50~300 維)上的一個稠密向量(Dense Vector)。
常用的詞嵌入模型是 Word2Vec。它是一種底層的神經網路模型,有兩種網路結構,分別是 CBOW(Continues Bag of Words) 和 Skip-gram。
CBOW 是根據上下文出現的詞語預測當前詞的生成概率;Skip-gram 是根據當前詞來預測上下文中各個詞的生成概率。
詞嵌入模型是將每個詞都映射成一個 K 維的向量,如果一篇文檔有 N 個單詞,那麼每篇文檔就可以用一個 N×K 的矩陣進行表示,但這種表示過於底層。實際應用中,如果直接將該矩陣作為原文本的特徵表示輸入到模型中訓練,通常很難得到滿意的結果,一般還需要對該矩陣進行處理,提取和構造更高層的特徵。
深度學習模型的出現正好提供了一種自動進行特徵工程的方法,它的每個隱含層都相當於不同抽象層次的特徵。卷積神經網路(CNN)和循環神經網路(RNN)在文本表示中都取得了很好的效果,這是因為它們可以很好地對文本進行建模,抽取出一些高層的語義特徵。
3.5.4 特徵提取和特徵選擇的區別
特徵提取與特徵選擇都是為了從原始特徵中找出最有效的特徵。
它們之間的區別是特徵提取強調通過特徵轉換的方式得到一組具有明顯物理或統計意義的特徵;
而特徵選擇是從特徵集合中挑選一組具有明顯物理或統計意義的特徵子集。
兩者都能幫助減少特徵的維度、數據冗餘,特徵提取有時能發現更有意義的特徵屬性,特徵選擇的過程經常能表示出每個特徵的重要性對於模型構建的重要性。
3.6 特徵構建
特徵構建是指從原始數據中人工的構建新的特徵。需要花時間去觀察原始數據,思考問題的潛在形式和數據結構,對數據敏感性和機器學習實戰經驗能幫助特徵構建。
特徵構建需要很強的洞察力和分析能力,要求我們能夠從原始數據中找出一些具有物理意義的特徵。假設原始數據是表格數據,一般你可以使用混合屬性或者組合屬性來創建新的特徵,或是分解或切分原有的特徵來創建新的特徵。
特徵構建非常需要相關的領域知識或者豐富的實踐經驗才能很好構建出更好的有用的新特徵,相比於特徵提取,特徵提取是通過一些現成的特徵提取方法來將原始數據進行特徵轉換,而特徵構建就需要我們自己人為的手工構建特徵,比如組合兩個特徵,或者分解一個特徵為多個新的特徵。
小結
特徵工程這個內容加上本文總共寫了四篇文章,從數據預處理,處理缺失值、異常值,類別不平衡和數據擴充問題,到特徵縮放、特徵編碼,以及本文的特徵選擇、特徵提取和特徵構造,基本包含了特徵工程涉及的內容,當然可能還有少數內容沒有包含。
實際上是在對於《hands-on-ml-with-sklearn-and-tf》第二章數據準備部分的總結,剛好涉及到特徵工程內容,所以打算好好做個總結,沒想到這部分內容真的不少,而對於特徵工程,我的經驗其實不算很豐富,之前只是參加過一次比賽,算是簡單涉獵了其中的部分內容,所以這幾篇文章的內容主要都是整理收集網上文章的內容,加上少部分個人的經驗心得,寫作起來確實有些費勁,很多內容都只能簡單總結下基本概念和使用步驟,但很難再深入介紹了。
所以推薦大家看完後,可以找些實際的項目或者參加比賽,在實踐中運用特徵工程的理論和方法,會有更深的體會。
比賽的話,最有名的就是 Kaggle,國內的有天池、DataFountain等。
接下來會這個如何構建一個完整的機器學習項目就會進入演算法模型選擇和評估部分了,這裡我也打算先簡單總結機器學習比較常用的經典演算法。
參考:
- 《百面機器學習》第一章 特徵工程
- https://blog.csdn.net/dream_angel_z/article/details/49388733#commentBox
- https://www.cnblogs.com/sherial/archive/2018/03/07/8522405.html
- https://gofisher.github.io/2018/06/22/%E6%95%B0%E6%8D%AE%E9%A2%84%E5%A4%84%E7%90%86/
- https://gofisher.github.io/2018/06/20/%E6%95%B0%E6%8D%AE%E6%8E%A2%E7%B4%A2/
- https://juejin.im/post/5b6a44f55188251aa8294b8c
- https://www.zhihu.com/question/47716840
- http://www.huaxiaozhuan.com/%E7%BB%9F%E8%AE%A1%E5%AD%A6%E4%B9%A0/chapters/8_feature_selection.html
- Scikit-learn介紹幾種常用的特徵選擇方法](http://dataunion.org/14072.html)
- 博客園--機器學習之特徵工程
- 機器學習中的數學(4)-線性判別分析(LDA), 主成分分析(PCA)
- 獨立成分分析 ( ICA ) 與主成分分析 ( PCA ) 的區別在哪裡?
- 圖像特徵檢測描述(一):SIFT、SURF、ORB、HOG、LBP特徵的原理概述及OpenCV代碼實現
歡迎關注我的微信公眾號--機器學習與計算機視覺,或者掃描下方的二維碼,大家一起交流,學習和進步!