[机器学习]总结特征工程干货
萬字長文總結特征工程干貨-云社區-華為云萬字長文總結特征工程干貨 1. 簡介( Feature Engineering) 1.1問題定義“Feature engineering is the art...https://bbs.huaweicloud.com/blogs/255357
1. 簡介( Feature Engineering)
特征工程到底是什么? - 知乎
?
1.1問題定義
“Feature engineering is the art part of data science” —Sergey Yurgenson
Feature engineering is the process of using domain knowledge to extract features from raw data via data mining techniques. These features can be used to improve the performance of machine learning algorithms.—wiki
特征工程(Feature Engineering)是將數據轉換為能更好地表示潛在問題的特征,從而提高機器學習性能的過程。
1.2特征工程評價指標
a.使模型更精準:好的特征工程是數據中抽取出來的對預測結果最有用的信息,可以提高模型的業務指標。
| 1 | classification(分類) | accuracy_score | 分類準確率分數是指所有分類正確的百分比 |
| 2 | balanced_accuracy_score | 計算平衡精度 | |
| 3 | confusion_matrix | 混淆矩陣 | |
| 4 | f1_score | f1值 | |
| 5 | jaccard_similarity_score | Jaccard相似系數得分 | |
| 6 | precision_recall_fscore_support | 為每個類計算precision, recall, F值和 support | |
| 7 | precision_score | 計算precision | |
| 8 | recall_score | 計算召回率 | |
| 9 | multilabel_confusion_matrix | 多標簽混淆矩陣 | |
| 10 | regression(回歸) | explained_variance_score | 解釋回歸模型的方差得分,其值取值范圍是[0,1],越接近于 1說明自變量越能解釋因變量的方差變化,值越小則說明效果越差。 |
| 11 | mean_absolute_error | 平均絕對誤差 | |
| 12 | mean_squared_error | 均方差(Mean squared error,MSE),該指標計算的是擬合數據和原始數據對應樣本點的誤差的平方和的均值,其值越小說明擬合效果越好 | |
| 13 | mean_squared_log_error | 均方差加log | |
| 14 | r2_score | R2 決定系數(擬合優度) 模型越好:r2→1 模型越差:r2→0 |
b.模型更簡單:好的特征工程應該使得模型復雜度更低,更加精簡
| 1 | 參數個數 | 參數量 | 模型的參數數量 |
| 2 | 時間復雜度 | 計算量FLOPS | 模型的運算次數 |
c. 模型更穩定: 算法模型運行更加穩定,魯棒性更強
| 1 | 計算穩定性 | 下溢(Underflow)和上溢(Overflow) | 受限于計算機的運算精度使得大量的微小誤差積少成多造成模型失效 |
| 2 | 特征穩定性 | PSI = \sum{(\rho_{test}^{i} - \rho_{base}^{i})\ast \ln (\rho_{test}^{i}/ \rho_{base})}PSI=∑(ρtesti??ρbasei?)?ln(ρtesti?/ρbase?) | PSI是對兩個日期的特征數據進行計算,可以任選其一作為base集另一則是test集,小于0.1認為特征穩定 |
| 3 | 模型穩定性 | psi = sum((實際占比-預期占比)/ln(實際占比/預期占比)) | 一般認為psi小于0.1時候模型穩定性很高,0.1-0.25一般,大于0.25模型穩定性差,建議重做。 |
| 4 | 模型穩定性 | 交叉驗證 | 當算法的輸入發生變化時,輸出是否會隨之發生較大的變化 |
2. 特征工程
2.1特征變換
特征變換(feature transformation)指的是使用數學映射從現有特征構建新特征。例如,在一組體檢數據中,若提供了身高、體重等信息,想要判斷受檢者健康情況,單單把身高、體重兩列數據不加處理地直接交給模型進行訓練,訓練結果就不夠好。
2.1.1 特征編碼
對于離散的類別特征,往往需要進行必要的特征編碼才能將其作為特征輸入到模型中。常用的編碼方式有OneHot編碼。譬如對于性別這個特征(取值為男性和女性),使用這兩種方式可以分別編碼為{0,1}和{1,0}。此外還有Count Encoding和Target Encoding。Count Encoding編碼,用類別的頻數來編碼,也可以對頻數進行歸一化,Target Encoding用目標變量(二分類)中的某一類的比例來編碼。
2.1.2 特征歸一化
歸一化:使得不同尺度的數據轉換到同一規格尺度
目的:
1)歸一化可以讓不屬于同一尺度的特征值進行比較:比如身高(cm)體重(kg)
2)歸一化后模型收斂會加快(運行速度快)
3)歸一化對一些模型的結果影響比較大,比如聚類模型,歸一化后效果更好
效果:把原始的連續型變量轉換為均值為0,標準差為1的變量
公式:
\tilde{x}=\frac{{x-\bar{x}}}{\delta}x~=δx?xˉ?
\overline{x}x均值,?\deltaδ?是標準差。
最大最小歸一化
效果:把原始的連續型變量轉換為范圍在[a-b]之間的變量,常見的a=0,b=1
公式:
\tilde{x}=\frac{{x-min(x)}}{max(x)-min(x)}x~=max(x)?min(x)x?min(x)?
2.1.3特征離散
特征離散化:把連續的數值切割為少數的一些區間,例如將年齡切割為5個年齡段
目的:離散化后的特征方便探索數據的分布和相關性,同時對異常數據有很強的魯棒性可以減少異常數據對模型的影響,對特征離散化后引入非線性,可以提升模型的預測能力。
常用的無監督的離散化方法主要有:自定義規則,等寬法,等頻法等。
二值化是一種特殊的離散方法,它把連續型變量分割為0/1(是/否)類型的類別型變量,例如年齡是否大于18歲,電話號碼是否是手機 城市是否是一線城市。
2.1.4特征深度合成
特征深度合成算法(結構型數據 知識圖譜)
論文:Kanter, James Max, and Kalyan Veeramachaneni. “Deep feature synthesis: Towards automating data science endeavors.” 2015 IEEE international conference on data science and advanced analytics (DSAA). IEEE, 2015.
原理:
例子:
開源實現:Featuretools · GitHub
2.2特征交叉
特征組合也叫特征交叉(Feature Crosses),即不同類型或者不同維度特征之間的交叉組合,其主要目的是為了彌補早期的模型無法有效的進行特征組合而產生的:
按照特征進行分類可以分為類別特征之間交叉和類別特征和數值特征之間交叉
類別特征之間交叉組合:比如用戶性別、年齡、喜愛視頻類別之間的交叉特征。類別特征和數值特征之間交叉組合?這類特征通常是在類別特征某個具體類別中計算一些統計量。例如用戶對不同類目視頻的完播率、平均播放時長等。
與非嵌入法不同,嵌入法是直接將特征交叉嵌入到模型的構建過程中。
按照特征交叉的方式可以分為非嵌入式和嵌入式
非嵌入式交叉:非嵌入式的關聯方式有內積、笛卡爾積、哈達瑪積以及多項式方法等。
嵌入式交叉: 利用模型可以自動進行特征的交叉組合,比如常用的 FM 和 FFM 模型等
2.2.1非嵌入法
非嵌入法和具體的機器學習算法相互獨立,可以通過機器學習算法評估特征子集的效果,非嵌入法主要包括內積、笛卡爾積、哈達馬內積以及多項式的方法進行組合。
?
2.2.2模型特征交叉
模型特征交叉:
針對特征交叉的問題,工程師首先想到的是特征兩兩組合,這種組合特征然后在手工篩選的方式無疑是低效的。
2.2.2.1 POLY2模型
POLY2模型:
POLY2(w,x) = \sum_{j_{1} = 1}^{n-1}\sum_{j_{2} = j_{1}+1}^{n}w_{h}(j_{1},j_{2})x_{j1}x_{j2}POLY2(w,x)=j1?=1∑n?1?j2?=j1?+1∑n?wh?(j1?,j2?)xj1?xj2?
POLY2模型一定程度上解決了特征組合的問題,但是它本質還是線性模型,訓練方法和邏輯回歸一樣。
缺陷:
1)在處理數據時,類別數據一般采用onehot編碼,這樣的話特征向量會很稀疏,再利用POLY2進行無選擇的特征交叉會使原來非常稀疏的特征向量更加稀疏,會導致大部分交叉特征權重缺少有效的數據進行訓練。
2)權重參數的數量由nn直接上升到n^{2}n2極大的增加了訓練復雜度。
2.2.2.2 FM模型
FM模型
為了POLY2模型的缺陷,Rendle于2010年提出FM模型:
下面是FM的二階形式:
FM(w,x) = \sum_{j_{1} = 1}^{n-1}\sum_{j_{2} = j_{1}+1}^{n}(w_{1}.w_{2})x_{j1}x_{j2}FM(w,x)=j1?=1∑n?1?j2?=j1?+1∑n?(w1?.w2?)xj1?xj2?
與POLY2模型相比,主要的區別是用兩個向量的內積?代替了單一的權重系數?。
FM為每個特征學習了一個隱權重向量,在特征交叉時,使用兩個特征隱向量的內積w_{1}.w_{2}w1?.w2?作為交叉特征的權重。
FM引入隱向量的思路和矩陣分解的思路有異曲同工之妙,直接把POLY2模型n^2n2級別的權重直接降低到nknk,梯度下降過程訓練FM過程中,FM的復雜度同樣減低到?nknk?。
隱向量的引入也使FM可以更好的解決數據稀疏性的問題,比如推薦場景中某樣本有兩個特征頻道(channel)和品牌(brand),某訓練樣本組合是(ESPN,Adidas)在POLY2中,只有ESPN和Adidas同時出現在一個樣本中的時候模型才能學習到權重,而在FM中,ESPN的隱向量可以通過(ESPN,Gucci)學習,Adidas隱向量可以通過( NBC,Adidas )學習,甚至對于沒有出現過的(NBC,Gucci)模型也可以學習到權重。
理論上,FM可以引申到三階特征交叉,甚至更高維度,但是由于組合爆炸的問題,三階FM無論是權重數量還是訓練復雜度都過高。
2.2.2.3 GBDT+LR模型
FM模型只能做二階特征交叉,要想提高特征交叉的維度會不可避免的產生組合爆炸和計算復雜度高的問題。
為了有效的解決高維特征組合和特征篩選的問題,2014年Facebook提出來GBDT+LR模型
組合模型利用GBDT自動進行特征篩選和組合,生成新的離散特征向量,然后把該特征向量當做LR模型的輸入。
一個訓練樣本輸入GBDT模型落入 某一子樹,會根據每個節點的規則最終落到某個葉子節點上,那么這個葉子節點標為1,其他節點為0,綜合所有子樹的結果,把特征向量連接起來就是新的離散型特征向量。
事實上,決策樹的深度決定了特征交叉的階數,如果決策樹深度為4那么就是3次節點分裂的結果也就是三階特征交叉。可以看出GBDT特征組合能力遠遠強過FM,但是GBDT容易過擬合。
2.3特征壓縮
當特征經過處理之后,雖然可以直接訓練模型了,但是可能由于特征矩陣過大,導致計算量大,出現訓練時間長的問題,因此對特征進行壓縮可以有效解決訓練時間過長的問題特征壓縮最直接的方法就是特征降維,常見的降維方法主要是主成分分析法(PCA)和線性判別分析(LDA),線性判別分析本身也是一個分類模型。PCA和LDA有很多的相似點,其本質是要將原始的樣本映射到維度更低的樣本空間中。
2.3.1降維算法
PCA算法:
? PCA的主要思想是將n維特征映射到k維上,這k維是全新的正交特征也被稱為主成分,是在原有n維特征的基礎上重新構造出來的k維特征。PCA的工作就是從原始的空間中順序地找一組相互正交的坐標軸,新的坐標軸的選擇與數據本身是密切相關的。其中,第一個新坐標軸選擇是原始數據中方差最大的方向,第二個新坐標軸選取是與第一個坐標軸正交的平面中使得方差最大的,第三個軸是與第1,2個軸正交的平面中方差最大的。依次類推,可以得到 個這樣的坐標軸。通過這種方式獲得的新的坐標軸,我們發現,大部分方差都包含在前面k個坐標軸中,后面的坐標軸所含的方差幾乎為0。于是,我們可以忽略余下的坐標軸,只保留前面k個含有絕大部分方差的坐標軸。事實上,這相當于只保留包含絕大部分方差的維度特征,而忽略包含方差幾乎為0的特征維度,實現對數據特征的降維處理。
LDA算法:
? 線性判別式分析(Linear Discriminant Analysis, LDA),也叫做Fisher線性判別(Fisher Linear Discriminant ,FLD),是模式識別的經典算法,它是在1996年由Belhumeur引入模式識別和人工智能領域的。性鑒別分析的基本思想是將高維的模式樣本投影到最佳鑒別矢量空間,以達到抽取分類信息和壓縮特征空間維數的效果,投影后保證模式樣本在新的子空間有最大的類間距離和最小的類內距離,即模式在該空間中有最佳的可分離性。因此,它是一種有效的特征抽取方法。使用這種方法能夠使投影后模式樣本的類間散布矩陣最大,并且同時類內散布矩陣最小。就是說,它能夠保證投影后模式樣本在新的空間中有最小的類內距離和最大的類間距離,即模式在該空間中有最佳的可分離性。
2.3.2 Embedding技術
Embedding中文可以直譯為嵌入,一般翻譯為向量化或者向量映射。特別是在推薦廣告和搜索為核心的互聯網Embedding技術應用非常廣泛。Embedding從形式上講就是用一個低稠密的向量“表示”一個對象。這里對象可以是一個詞也可以是一個電影一個商品。表示就是說Embedding向量能夠表達相應對象的某些特征,同時向量之間的距離反映了對象之間的相似性。
Embedding方法首先流行于NLP領域,在大語料的輸入下,Embedding可以挖掘一些潛在的知識。
Embedding技術的重要性:
1)推薦場景中大量使用onehot編碼對類別id型特征進行編碼,導致樣本特征極度稀疏,在幾乎所有的推薦模型中都會有Embedding層負責將這些高維稀疏的特征轉換成低維稠密特征向量。
2)Embedding本身就是十分重要的特征向量,Embedding的表達能力更強。
3)Embedding技術對物品用戶的相似度計算是最常用的一種召回層技術,結合局部敏感哈希技術之后更適合海量數據的初步篩選。
2.3.2.1 Word2vec
Word2vec
自2013年谷歌提出Word2vec以來,Embedding技術從自然語言處理推廣到廣告 搜索 圖像 推薦等深度學習領域。Word2vec是word to vector 的簡稱,Word2vec是一種生成對詞的向量表達的一種方法。
為了訓練Word2vec模型,需要準備一組由句子組成的語料,我們假設一個長度為T的句子?w_{1} w_{2} w_{3}... w_{T}w1?w2?w3?...wT?
CBOW模型是用?w_{T}wT?的周邊詞預測w_{T}wT?,Skip-Gram是用?w_{T}wT?預測w_{T}wT?的周邊詞。
輸入:選取一個?2c+12c+1?(目標詞前后各取?cc個詞)的滑動窗口,從語料庫抽取一個句子,滑動窗口從左到右,每移動一次,窗口中的詞就組成了一個訓練樣本。
優化目標:每個詞?w_twt?決定了相鄰詞?x_{t+1}xt+1?基于極大似然法,希望所有樣本條件概率p(w_{t+j}|w_{t})p(wt+j?∣wt?)的乘積最大
\frac{1}{T}\sum_{t = 1}^{T}\sum_{-c\leq{ j }\leq c, j\neq 0 }\log{p(w_{t+j}|w_{t})}T1?t=1∑T??c≤j≤c,j=0∑?logp(wt+j?∣wt?)
p(w_{t+j}|w_{t})p(wt+j?∣wt?)的定義:Word2vec模型的目的是希望用一個向量?V_wVw?表示詞ww,用詞之間的內積?V_{i}^{T}V_{j}ViT?Vj?表示語義的接近程度,最后套上一次softmax函數就可以對上多分類。
p(w_{O}|w_{I}) = \frac{exp(V_{wo}^{T}V_{wI})}{\sum_{t = 1}^{T}exp(V_{w}^{T}V_{wI})}p(wO?∣wI?)=∑t=1T?exp(VwT?VwI?)exp(VwoT?VwI?)?
V_{w}^{T}VwT?表示要訓練出的詞向量V_{wI}VwI??是輸入詞的向量?V_{wo}^{T}VwoT?是輸出詞的向量
2.3.2.2 Item2vec
基本思想:Word2vec是對詞序列進行Embedding,那么這里的詞也可以是一個商品 一部電影。
Word2vec 一個長度為T的句子?w_{1} w_{2} w_{3}... w_{T}w1?w2?w3?...wT??優化目標
\frac{1}{T}\sum_{t = 1}^{T}\sum_{-c\leq{ j }\leq c, j\neq 0 }\log{p(w_{t+j}|w_{t})}T1?t=1∑T??c≤j≤c,j=0∑?logp(wt+j?∣wt?)
那么對應到Item2Vec就對應一個長度為K的用戶歷史記錄w_{1} w_{2} w_{3}... w_{K}w1?w2?w3?...wK?
Item2Vec的優化目標變成了:
\frac{1}{T}\sum_{t = 1}^{T}\sum_{j\neq i }^{K}\log{p(w_{t+j}|w_{t})}T1?t=1∑T?j=i∑K?logp(wt+j?∣wt?)
可以發現Item2Vec摒棄了時間窗口的概念,認為序列里任意兩個物品都是相關的,剩下的訓練過程和word2vec一致。
2.3.2.3 GraphEmbedding
GraphEmbedding是對圖結構中的節點進行Embedding編碼的方法,最終生成的Embedding向量一般包含圖的結構信息和附近節點的局部相似性信息。
DeepWalk是早期影響力比較大的一種GraphEmbedding方法,該方法是2014年提出的,它的主要思想是在由物品組成的圖結構上進行隨機游走,產生大量的物品序列,然后將這些物品序列作為訓練樣本輸入word2vec進行訓練,得到物品Embedding向量。
2016年,斯坦福大學在DeepWalk的基礎上更進一步,通過調整隨機游走權重的方法使graph embedding的結果在網絡的同質性(homophily)和結構性(structural equivalence)中進行權衡權衡。具體來講,網絡的“同質性”指的是距離相近節點的embedding應該盡量近似,節點u與其相連的節點s1、s2、s3、s4的embedding表達應該是接近的,這就是“同質性“的體現。“結構性”指的是結構上相似的節點的embedding應該盡量接近,圖中節點u和節點s6都是各自局域網絡的中心節點,結構上相似,其embedding的表達也應該近似,這是“結構性”的體現。
為了使Graph Embedding的結果能夠表達網絡的結構性,在隨機游走的過程中,需要讓游走的過程更傾向于寬度優先搜索(BFS),因為BFS更喜歡游走到跟當前節點有直接連接的節點上,因此就會有更多同質性信息包含到生成的樣本序列中,從而被embedding表達;另一方面,為了抓住網絡的同質性,就需要隨機游走更傾向于深度優先搜索(DFS),因為DFS會更傾向于通過多次跳轉,游走到遠方的節點上,使得生成的樣本序列包含更多網絡的整體結構信息。
那么在node2vec算法中,是怎樣控制BFS和DFS的傾向性的呢?主要是通過節點間的跳轉概率。圖5顯示了node2vec算法從節點𝑡跳轉到節點𝑐后,下一步從節點𝑣跳轉到周圍各點的跳轉概率。
?
形式化來講,從節點𝑣跳轉到下一個節點𝑥的概率為
其中,d_{tx}dtx?指的是節點 t到節點x的距離,參數pp和qq共同控制著隨機游走的傾向性。參數pp被稱為返回參數(return parameter),?pp越小,隨機游走回節點t的可能性越大,node2vec就更注重表達網絡的同質性,參數qq被稱為進出參數(in-out parameter),qq?越小,則隨機游走到遠方節點的可能性越大,node2vec更注重表達網絡的結構性,反之當前節點更可能在附近節點游走。
論文:Grover A, Leskovec J. node2vec: Scalable feature learning for networks[C]//Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining. 2016: 855-864.
2.4特征選擇
有一種說法是,特征決定了效果的上限,而不同模型只是以不同的方式或不同的程度來逼近這個上限,好的特征輸入對于模型的效果至關重要(Garbage in, garbage out)。要做好特征工程,往往跟領域知識和對問題的理解程度有很大的關系。
2.4.1傳統方法
在做特征抽取的時候,我們是盡可能地抽取更多的Feature,但過多的Feature會造成冗余,容易過擬合等問題,因此我們要進行特征篩選。
特征選擇的方法有很多,主要的特征篩選方法有:過濾方法,封裝方法,嵌入方法。
2.4.1.1過濾法
覆蓋率:覆蓋率主要計算每個特征的覆蓋率(即特征在訓練集中出現的比例),如果特征的覆蓋率很小,比如我們有10000個樣本,某個特征只出現了5次,說明這個特征覆蓋率對模型預測的作用不大,覆蓋率小的特征就可以剔除了。
皮爾遜相關系數:皮爾遜相關系數用于度量兩個變量 和 的線性相關性。
兩個變量之間的相關系數為協方差與標準差的商,它主要是衡量兩個變量之間的線性關系,數值在[-1.0, 1.0]區間中。數值越是接近0,兩個變量越是線性不相關。但是數值為0,并不能說明兩個變量不相關,只是線性不相關而已。
假設我們一共有 K類別, uij表示特征 i在類別j 中的均值,u_iui?表示特征?ii的均值,p_{ij}pij?表示特征i在類別 j中的方差,n_jnj?表示類別j中的樣本數。Fisher得分越高表示特征在不同類別特征之間的差異越大,在同一類別中差異性越小。
皮爾遜卡方檢驗:皮爾遜卡方檢驗適用于變量和變量都為連續變量的情況:
卡方統計量取值越大,特征相關性越高
**互信息:**在概率論和信息論中,互信息用來度量兩個變量之間的相關性。互信息越大說明兩個變量相關性越高,互信息為0說明兩個特征相對獨立。
**相關特征選擇(CFS):**相關特征選擇是基于以下假設來進行評估特征集合重要性的,好的特征集合應該是包含和目標變量非常相關的特征,但是這些特征之間彼此不想管。對于包含?KK個特征的集合
其中,r_{cf1}rcf1??表示特征變量和目標變量之間的相關性,?r_{fifj}rfifj?表示特征變量之間的相關性,這里的相關性可以是皮爾相關系數等。CFS越大越好
2.4.1.2封裝法
封裝方法:
過濾方法和具體的機器學習算法相互獨立,封裝方法是直接使用機器學習算法評估特征子集的效果,封裝得分是使用特征子集搜索和評價指標相結合的方法。
搜索算法有貪婪算法和窮舉,貪婪搜索算法(greedy search)是局部最優算法。與之對應的是窮舉算法 (exhaustive search),窮舉算法是遍歷所有可能的組合達到全局最優級,但是計算復雜度是 ,一般是不太實際的算法。
前向搜索:特征子集從空集開始,每次只加入一個特征達到閾值或者n時,從所有子集中選出錯誤率最小的。
后向搜索:特征子集從全集開始,每次只刪除一個特征并評價,直到達到閾值或者為空,然后選擇最佳的子集。
2.4.1.3嵌入法
過濾方法和具體的機器學習算法相互獨立,封裝方法是直接使用機器學習算法評估特征子集的效果,這種方法需要多次模型訓練,計算效率低,嵌入法是直接將特征選擇嵌入到模型的構建過程中。
嵌入法比較經典的例子是LASSO,在LASSO之前,大家都采用嶺回歸對回歸系數進行衰減來防止過擬合,但是嶺回歸不能進行特征選擇,對模型可解釋性沒有幫助,Lasso對回歸系數進行了L1懲罰項來防止過擬合,可以讓特定的特征變成0,在實際應用中𝜆越大回歸系數越稀疏,𝜆一般采用交叉驗證的方式來驗證。另一類嵌入方法是基于樹模型的,對基于決策樹的算法,如隨機森林 GBDT等可以輸出特征重要性。嵌入法既有過濾法計算效率高的優點又有封裝法和機器學習算法結合的優點。
2.4.2開源
2.4.2.1開源匯總
業界開源框架基本都是基于某一有效算法構建起來的,用戶在使用時只需將數據導入,數據便會依據這些系統/框架本身設定的原理自動進行特征轉換、特征擴充或降維等操作
| 1 | Featuretools | 依賴于特征深度合成算法,提取數據特征 | 可以快速的生成大量候選特征集合 | a容易造成特征維數過多 b可解釋性偏弱 | 5.3k |
| 2 | TSFRESH | 基于fresh算法進行特征選擇 | 1.可以自動提取超過100種的時間序列特征2.可以基于假設檢驗過濾無關特征 | 目前只有單機版 | 5.3k |
| 3 | AutoLearn | 利用每個特征通過應用回歸算法對其他特征進行預測 | 通過消除模型中不相關的特征來提高分類準確性,識別有效特征 | 輸出特征信息少 | 21 |
| 4 | ExploreKit | 通過組合原始特征中的信息生成大量候選項集,通過模擬候選特征和數據集之間的相互作用來預測新的候選特征的重要性 | 提高了預測性能,克服了特征空間指數增長的問題 | 選擇特征的可解釋性不強,目前關注度不高 | 53 |
2.4.2.2論文相關開源
1)從數據的角度梳理了傳統數據、結構化數據、異構數據和流式數據的典型特征選擇算法。并將其為四大類:基于相似性的、基于信息理論的、基于稀疏學習的和基于統計的方法,并開源了特征選擇庫,它包含了大多數流行的特征選擇算法。
Li, Jundong, et al. “Feature selection: A data perspective.” ACM Computing Surveys (CSUR) 50.6 (2017): 1-45.
GitHub開源:GitHub - jundongl/scikit-feature: open-source feature selection repository in python
包含的算法:
| Information theoretica based | CIFE | Conditional infomax learning: An integrated framework for feature extraction and fusion |
| CMIM | Fast Binary Feature Selection with Conditional Mutual Information | |
| DISR | Information-theoretic feature selection in microarray data using variable complementarity | |
| FCBF | Feature Selection for High-Dimensional Data: A Fast Correlation-Based Filter Solution | |
| ICAP | A powerful feature selection approach based on mutual information | |
| JMI | Data visualization and feature selection: New algorithms for non-gaussian data | |
| MIFS | Using mutual information for selecting features in supervised neural net learning | |
| MIFS | Using mutual information for selecting features in supervised neural net learning | |
| MIM | Feature selection and feature extraction for text categorization | |
| MRMR | Feature selection based on mutual information: Criteria of maxdependency, max-relevance, and min-redundancy | |
| similarity based | fisher_score | R.O. Duda, P.E. Hart, and D.G. Stork, Pattern Classification |
| reliefF | Theoretical and Empirical Analysis of ReliefF and RReliefF | |
| trace_ratio | Trace Ratio Criterion for Feature Selection | |
| Sparselearning based | ll_l21 | Feature Selection for Classification: A Review |
| ls_l21 | Feature Selection for Classification: A Review | |
| RFS | Efficient and Robust Feature Selection via Joint l2,1-Norms Minimization | |
| statistical based | CFS | Feature selection for machine learning: Comparing a correlation-based filter approach to the wrapper |
| chi_square | Chi2: Feature selection and discretization of numeric attributes | |
| f_score | The interpretation of population structure by f-statistics with special regard to systems of mating | |
| gini_index | Variabilita e Mutabilita | |
| t_score | Statistics and data analysis in geology | |
| streaming | alpha_investing | Streaming Feature Selection using Alpha-investing |
| structure | graph_fs | Feature Selection for Classification: A Review |
| group_fs | Feature Selection for Classification: A Review | |
| tree_fs | Feature Selection for Classification: A Review | |
| wrapper | decision_tree_ backward | An Introduction to Variable and Feature Selection |
| decision_tree_ forward | An Introduction to Variable and Feature Selection | |
| svm_backward | An Introduction to Variable and Feature Selection | |
| svm_forward | An Introduction to Variable and Feature Selection |
2.4.2.4時間序列特征
時間序列特征:TSFRESH庫
Christ M, Kempa-Liehr A W, Feindt M. Distributed and parallel time series feature extraction for industrial big data applications[J]. arXiv preprint arXiv:1610.07717, 2016.
TSFresh:
Fresh特征選擇算法原理:
1、如果特征是二類的標簽也是二類的,則使用fisher檢驗。
2、假設特征是二類的而標簽是連續值,則使用ks檢驗
3、如果特征是連續值而標簽是二類的,則使用ks檢驗或 Mann-Whitney U test
4、如果特征是連續值而標簽也是連續值,則使用kendall相關系數
開源實現:GitHub - blue-yonder/tsfresh: Automatic extraction of relevant features from time series:
最后大家喜歡的話可以點贊和關注哦(^o^)/~
本文為華為云社區用戶原創內容,轉載時必須標注文章的來源(華為云社區),文章鏈接,文章作者等基本信息,否則作者和本社區有權追究責任。
總結
以上是生活随笔為你收集整理的[机器学习]总结特征工程干货的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php用什么部署
- 下一篇: 微软NNI---AutoFeatureE