1. 程式人生 > >機器學習中特征的處理及選擇

機器學習中特征的處理及選擇

info 連續 馬氏距離 屬性 歐氏距離 src 缺失值 最小值 IE


基礎概念

特征工程是通過對原始數據的處理和加工,將原始數據屬性通過處理轉換為數據特征的過程,屬性是數據本身具有的維度,特征是數據中所呈現出來的某一種重要的特性,通常是通過屬性的計算,組合或轉換得到的。比如主成分分析就是將大量的數據屬性轉換為少數幾個特征的過程。某種程度而言,好的數據以及特征往往是一個性能優秀模型的基礎。

既然叫特征工程,自然涵蓋了很多內容,而其中涉及到的比較重要的部分是特征的處理及選擇。

特征處理包含:

  • 數據清洗
  • 數據規範化
  • 特征構造與衍生

特征選擇包含:

  • 特征過濾
  • wrapper method
  • embedded method


數據清洗

數據清洗是指發現並糾正數據文件中可識別的錯誤以及通過處理得到建模過程需要數據的過程。

數據清洗包含:

  • 缺失值處理
  • 異常值檢測與處理
  • 調配樣本比例和權重


缺失值處理

缺失值是指粗糙數據中由於缺少信息而造成的數據的聚類、分組、刪失或截斷。它指的是現有數據集中某個或某些屬性的值是不完全的。

缺失值的處理目前主要有兩種方法:刪除缺失值和填充缺失值

1.刪除缺失值

如果一個樣本或變量中所包含的缺失值超過一定的比例,比如超過樣本或變量的一半,此時這個樣本或變量所含有的信息是有限的,如果我們強行對數據進行填充處理,可能會加入過大的人工信息,導致建模效果打折扣,這種情況下,我們一般選擇從數據中剔除整個樣本或變量,即刪除缺失值。

2.缺失值填充

  • 隨機填充法

從字面上理解就是找一個隨機數,對缺失值進行填充,這種方法沒有考慮任何的數據特性,填充後可能還是會出現異常值等情況,一般情況下不建議使用。

  • 均值填充法

尋找與缺失值變量相關性最大的那個變量把數據分成幾個組,然後分別計算每個組的均值,然後把均值填入缺失的位置作為它的值,如果找不到相關性較好的變量,也可以統計變量已有數據的均值,然後把它填入缺失位置。這種方法會在一定程度上改變數據的分布。

  • 最相似填充法

在數據集中找到一個與它最相似的樣本,然後用這個樣本的值對缺失值進行填充。
與均值填充法有點類似,尋找與缺失值變量(比如x)相關性最大的那個變量(比如y),然後按照變量y的值進行排序,然後得到相應的x的排序,最後用缺失值所在位置的前一個值來代替缺失值。

  • 回歸填充法

把缺失值變量作為一個目標變量y,把缺失值變量已有部分數據作為訓練集,尋找與其高度相關的變量x建立回歸方程,然後把缺失值變量y所在位置對應的x作為預測集,對缺失進行預測,用預測結果來代替缺失值。

  • k近鄰填充法

利用knn算法,選擇缺失值的最近k個近鄰點,然後根據缺失值所在的點離這幾個點距離的遠近進行加權平均來估計缺失值。


異常值檢測與處理

異常值(outlier)是指一組測定值中與平均值的偏差超過兩倍標準差的測定值,與平均值的偏差超過三倍標準差的測定值,稱為高度異常的異常值。異常值的產生一般由系統誤差、人為誤差或數據本身的變異引起的。

  • 單變量異常值檢測(格拉布斯法)

首先,將變量按照其值從小到大進行順序排列x1,x2.....xn

其次,計算平均值x拔和標準差S,
技術分享圖片

同時計算偏離值,即平均值與最大值之差和平均值與最小值之差,然後確定一個可疑值,一般是偏離平均值較大的那個。

計算統計量gi(殘差與標準差的比值),i為可疑值的序列號。

技術分享圖片

再者,將gi與格拉布斯表給出的臨界值GP(n)比較,如果計算的Gi值大於表中的臨界值GP(n),則能判斷該測量數據是異常值,可以剔除。這裏臨界值GP(n)與兩個參數有關:檢出水平α和測量次數n 。

檢出水平α:如果要求嚴格,檢出水平α可以定得小一些,例如定α=0.01,那麽置信概率P=1-α=0.99;如果要求不嚴格,α可以定得大一些,例如定α=0.10,即P=0.90;通常定α=0.05,P=0.95。

  • 多變量異常值檢測(基於距離計算)

基於距離的多變量異常值檢測類似與k近鄰算法的思路,一般的思路是計算各樣本點到中心點的距離,如果距離太大,則判斷為異常值,這裏距離的度量一般使用馬氏距離(Mahalanobis Distance)。因為馬氏距離不受量綱的影響,而且在多元條件下,馬氏距離還考慮了變量之間的相關性,這使得它優於歐氏距離。

  • 異常值處理

單變量的情況下異常值可以考慮類似缺失值的刪除法、均值填充法或回歸填充法,而多變量的情況下,可以嘗試用均值向量填充或者刪除。

總的來說,缺失值和異常值的處理要根據實際的情況確定合適的方法,因為某些情況下異常值剛好能夠反應一些現實問題。


調配樣本比例和權重

當數據集中出現樣本不均衡情況時,需要調配樣本的比例以及權重,以便能夠訓練出性能更優的模型,具體方法參考上一篇文章:機器學習中的類別不均衡問題
http://www.cnblogs.com/wkslearner/p/8870673.html


數據規範化

在機器學習中,由於不同模型的需要,我們經常要多數據做不同的規範化處理,以便能夠得到性能更優的模型。

在數據處理中,經常會接觸到的數據規範化操作有:

  • 數據無量綱化
  • 連續變量離散化
  • 離散變量量化處理
  • 數據轉換


數據無量綱化

無量綱化使不同規格的數據轉換到同一規格,在某些比較和評價的指標處理中經常會用到,去除數據的單位限制,將其轉化為無量綱的純數值,便於不同單位或量級的指標能夠進行比較和加權。

數據無量綱化常用方法有:

  • 標準化方法
  • 極值化方法
  • 均值化方法
  • 標準差化方法


1.標準化方法

標準化方法是將變量的每個值與其平均值之差除以該變量的標準差,無量綱化後變量的平均值為0,標準差為1。使用該方法無量綱化後不同變量間的均值和標準差都相同,即同時消除了變量間變異程度上的差異。
標準化公式為:
技術分享圖片

2.極值化方法

極值化方法通常是通過變量取值的最大值和最小值將原始數據轉換為特定範圍內的數據,從而消除量綱和數量級的影響。這種方法十分依賴兩個極端值。

通常情況下極值化方法有3種方式:

第一種方法,是將變量的值除以該變量的全距,標準化後每個變量的取值範圍在[-1,1]。
公式為:
技術分享圖片

第二種方法,是將變量值與最小值之差除以該變量的全距,標準化後取值範圍在[0,1]。
公式為:
技術分享圖片

第三種方法,是將變量值除以該變量的最大值,標準化後變量的最大取值為1。
公式為:
技術分享圖片

3.均值化方法

均值化方法是將變量值直接除以該變量的平均值,跟標準化方法不同的是,均值化方法能夠保留變量間取值差異程度的信息。
均值化方法公式:
技術分享圖片

4.標準差化方法

標準差化方法是標準化方法的一種變形,標準差化方法是直接將變量值除以標準差,而不是減去均值後再除以標準差。標準差化方法無量綱化後變量的均值為原始變量均值與標準差的比值,而不是0。
公式為:
技術分享圖片


連續變量離散化

在使用某些算法時,我們需要把連續變量轉換為離散變量,在一些情況下離散變量能夠簡化模型計算同時能夠提升模型的穩定性,比如邏輯回歸經常使用離散後的變量進行訓練,能夠體現模型的訓練速度以及提升模型的可解釋性。

連續變量離散化大致有兩類方法:

  • 卡方檢驗方法
  • 信息增益方法


1.卡方檢驗方法

通常情況下,將變量按照值大小進行排列,將每個值作為一個組,然後對每一對相鄰的組計算卡方值,對其中最小的一對組合進行合並,接下來不斷重復以上操作,直到滿足我們設定的某一個條件,比如最小分組數5,即將連續變量分為5組。

卡方統計量是指數據的分布與所選擇的預期或假設分布之間的差異的度量。它是由各項實際觀測次數(fo )與理論分布次數(fe )之差的平方除以理論次數,然後再求和而得出的,其計算公式為:
技術分享圖片

卡方值包含兩個信息:

  • 實際值與理論值偏差的絕對大小。
  • 差異程度與理論值的相對大小。


2.信息增益方法

信息增益方法是使用信息計算確定分割點的自上而下的分裂技術。

首先是把每個值看成分割點,將數據分成兩個部分,在多種可能的分法中選擇產生最小信息熵的分法。然後在分成的兩個區間中,尋找最大熵區間,繼續進行按前面的方法進行分割,直到滿足條件為止,比如滿足指定個數時結束過程。

數據的信息屬性是與任務相關的,對於分類任務, 標簽值y包含的信息量為:
技術分享圖片

其中, p(y)為y出現的概率. p(y)越小, y包含的信息量越大. 這是符合直覺的.

熵定義為信息的期望值.
一個可以分為m類的數據集S, 它的信息熵為隨機得到的一個label包含的信息量的期望值:
技術分享圖片

數據集的信息熵代表這個數據集的混亂程度. 熵越大, 越混亂.
技術分享圖片

若按照某種特定的方式, 例如按照某一屬性的值對S進行劃分, 得到n個子集。新的子集們都有自己的信息熵, 它們的熵的和與原S的熵的差值就是這個劃分操作帶來的信息熵增益.

未完待續.....

機器學習中特征的處理及選擇