1)在處理資料上,資料並非越多越好,多餘的無關特徵會因為偽相關、巧合而影響模型。
2)對資料做相關性分析的時候,善用視覺化可以一目了然發現問題。
3)對於高度相關的特徵,移除或者合併前要三思,可能並不會提高模型能力。
3)如果選用了線性模型,可能需要對特徵進行離散化
4)對於大部分模型來說,歸一化或者標準化是必不可少的步驟,至少」無害「
5)如果問題較為複雜,盡量選擇非線性的魯棒性強的模型
資料不是越多越好,要根據領域經驗挑選相關特徵。有乙個誤區就是資訊越多越好。其實不然,無關資訊可能與**值存在某種巧合,導致對檢測結果造成負面影響。所以只選擇與**值可能有關聯的資訊。
總結來看,如果不存在特別嚴重的相關性,去相關性不是必要步驟。從理論和實驗角度來看,去掉或者合併相關性特徵不一定會提高模型的**能力。
從實踐角度來看,樹模型對於相關性的魯棒性強,如果可能,可以先使用未處理的特徵在樹模型進行嘗試。
如果有必要移除相關性,下面是移除相關性的方法:特徵選擇;設定閾值,去除高線性相關的特徵組。
你提到在資料探勘比賽上面,勝負更多在特徵上,為什麼這麼說呢?在特徵上有什麼套路?
基本上大家都會用同樣的一些工具去訓練同樣的模型,在模型方面差別很小。所以,模型沒那麼重要。融合是基於單模型來的,要是單模型不好,那麼很大概率上融合也好不了。此外,融合的套路應該也基本上都固定了,但凡常玩的人也都知道。所以,融合基本上達不到創新,很難出現別人不知道的招。
因此,機會還是在特徵上,現在只有特徵還沒有乙個通用的標準,大家自己做自己的,有可能做出點不一樣的東西。
其實特徵工程主要分兩點:
1)你可能需要了解業務,從業務本身出發,找到一些對**有幫助的資訊和線索。這是基於你對業務的熟悉,對業務的理解出發的。
2)需要想辦法把這種資訊轉化成適用於模型的特徵。
一般來說,資料量夠的話深度學習自動抽取的特徵表示能力更好,小資料集上人工特徵工程效果更好。不幸的是,特徵工程沒太多竅門,唯手熟爾。
1)在資料量不夠的時候,自動特徵抽取的方法往往不如人為的特徵工程;
2)當使用者對於資料和問題有深刻的理解時,人工的特徵工程往往效果更好。乙個極端的例子是,在kaggle比賽中的特徵工程總能帶來一些提公升;
3)當資料量較大或者我們的人為先驗理解很有限時,可以嘗試表徵學習。
一些情況下原始資料維度非常高,維度越高,資料在每個特徵維度上的分布就越稀疏,這對機器學習演算法基本都是災難性(維度災難)。
當我們又沒有辦法挑選出有效的特徵時,需要使用pca等演算法來降低資料維度,使得資料可以用於統計學習的演算法。但是,如果能夠挑選出少而精的特徵了,那麼pca等降維演算法沒有很大必要。
1)資料集太小,資料樣本不足時,深度學習相對其它機器學習演算法,沒有明顯優勢。
2)資料集沒有區域性相關特性,目前深度學習表現比較好的領域主要是影象/語音/自然語言處理等領域,這些領域的乙個共性是區域性相關性。
影象中畫素組成物體,語音頻號中音位組合成單詞,文字資料中單詞組合成句子,這些特徵元素的組合一旦被打亂,表示的含義同時也被改變。對於沒有這樣的區域性相關性的資料集,不適於使用深度學習演算法進行處理。舉個例子:**乙個人的健康狀況,相關的引數會有年齡、職業、收入、家庭狀況等各種元素,將這些元素打亂,並不會影響相關的結果。
特徵工程之特徵選擇
在前一篇文章中我介紹了一些資料預處理的方法,原始資料在經過預處理之後可以被演算法處理了,但是實際中可能有一些特徵是沒有必要的,比如在中國採集的一些資料,那麼國籍就都是中國,其實也就沒有意義了,反映在統計量上就是方差過小,也就是樣本在這個特徵上變化很小。還有一種情況是特徵和最後的結果相關性很小,也就是...
特徵工程之特徵選擇
特徵選擇其實就是減少屬性個數,為什麼要這麼做呢?直接使用原始資料來訓練模型的話,雖然說在訓練模型上的準確率會非常高,但是在測試樣本上的準確率將會大打折扣,也就是會產生過擬合的現象。所以說需要選擇出最適合的屬性進行訓練。特徵選擇的原因 2 雜訊 部分特徵對 結果又影響 進行特徵選擇的時候有兩種情況 一...
特徵工程之特徵選擇
在做資料分析的時候,特徵的 一般有兩塊,一塊是業務已經整理好各種特徵資料,我們需要去找出適合我們問題需要的特徵 另一塊是我們從業務特徵中自己去尋找高階資料特徵。我們就針對這兩部分來分別討論。2.選擇合適的特徵 我們首先看當業務已經整理好各種特徵資料時,我們如何去找出適合我們問題需要的特徵,此時特徵數...