3. 特徵選擇
對於機器學習來說,資料的重要性毋庸置疑,好比炒菜時的原材料直接決定了菜品的好壞。
所謂的特徵工程,其本質是一項工程活動,目的是最大限度地從原始資料中提取特徵以供演算法和模型使用。
簡單來說就是為機器學習演算法準備合適的訓練資料和特徵的過程——先清洗原始資料,再提取特徵出或者進一步構造和生成新的特徵,所以可以分為特徵獲取和特徵選擇兩個大的方面:
這裡所說的特徵獲也可以算作資料預處理中的一環,資料清洗——向量化的過程也就完成了特徵獲取的過程。
這裡只是以特徵為主,總結一下在整個機器學習過程**現的幾個典型的」特徵形成方式「。
特徵提取是指將機器學習演算法不能識別的原始資料轉化為演算法可以識別的特徵的過程。這可以視作是乙個將原始資料轉換為數值特徵的過程(向量化)。
狹義的特徵工程也叫做特徵提取。
特徵構造就是構造出來新的特徵,一般都是通過對原有的特徵進行四則運算產生新的特徵。
比如原來的特徵是x1和x2,那麼x1+x2就是乙個新的特徵,或者當x1大於某個數c的時候,就產生乙個新的變數x3,並且x3=1,當x1小於c的時候,x3=0,所以這樣看來呢,可以按照這種方法構造出很多特徵,這個就是構造。
特徵生成和特徵構造有些相似,但是還是存在一些區別的,特徵生成的話,比如主成分分析或者因子分析,都可以對原有資料進行特徵生成,比如卷積神經網路的卷積層就是乙個特徵生成的過程,一張,經過卷積的不斷掃瞄,就會把原始裡邊的好多特徵逐步提取出來,這個就是特徵生成。
再如通過主成分分析對原始資料進行降維,那麼降維後,每個主成分其實就代表乙個新的特徵,同樣因子分析也具有這方面的功能,通過因子分析可以把潛在變數後面的潛在因子找出來。
特徵生成和特徵構造,其實就是想盡各種辦法產生個新的特徵。
注:特徵生成,比如降維,一般用在特徵選擇之後進行。
特徵選擇特徵工程裡的重頭戲!其實,跟開篇圖中說的一樣,其實本質就是降維。
當資料預處理完成後,我們需要選擇有意義的特徵輸入機器學習的演算法和模型進行訓練。通常來說,從兩個方面考慮來選擇特徵:
所以,本質是不是跟降維所思考的角度高度一致?
根據特徵選擇的形式又可以將特徵選擇方法分為3種:
embedded:整合法,先使用某些機器學習的演算法和模型進行訓練,得到各個特徵的權值係數,根據係數從大到小選擇特徵。類似於filter方法,但是是通過訓練來確定特徵的優劣。
下面從統計學和機器學習兩個角度來分別說下特徵選擇的方法。
機器學習角度相關的特徵選擇的演算法,最容易想到就是回歸樹或者叫做決策樹。實際上除了決策樹,隨機深林(random forest),bagging,boosting,gradient booting, 以及 xgboost 都有特徵選擇的功能。
我們可以使用sklearn中的 feature_selection 庫來進行特徵選擇。
參考:bat面試題4:簡單聊聊特徵工程
01 機器學習概述 特徵工程 機器學習演算法
機器學習是從資料中自動分析獲得規律 模型 並利用規律對未知資料進行 注 離散型是區間內不可分,連續型是區間內可分 結構 特徵值 目標值 特徵工程是將原始資料轉換為更好地代表 模型的潛在問題的特徵的過程,從而提高了對未知資料的模型準確性。直接影響模型的 結果。語法 dictvectorizer spa...
機器學習 特徵工程
老師有多年的網際網路從業經驗,所以講解的過程中結合了很多任務業界的應用,更加的深入淺出。資料採集 資料採集前需要明確採集哪些資料,一般的思路為 哪些資料對最後的結果 有幫助?資料我們能夠採集到嗎?線上實時計算的時候獲取是否快捷?舉例1 我現在要 使用者對商品的下單情況,或者我要給使用者做商品推薦,那...
機器學習 特徵工程
資料和特徵決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。通俗的說,就是盡可能的從原始資料中獲取更多資訊,從而使得 模型達到最佳。簡而言之,特徵工程是乙個把原始資料變成特徵的過程,這些特徵可以很好的描述資料,並且利用它們建立的模型在未知資料上表現效能可以達到最優。實驗結果取決於獲取的資料 ...