機器學習的特徵選擇方法要如何選取?

2021-01-15 CDA數據分析師

作者 | Jason Brownlee 編譯 | CDA數據分析師 How to Choose a Feature Selection Method For Machine Learning

特徵選擇是在開發預測模型時減少輸入變量數量的過程。

希望減少輸入變量的數量,以減少建模的計算成本,並且在某些情況下,還需要改善模型的性能。

基於特徵的特徵選擇方法包括使用統計信息評估每個輸入變量和目標變量之間的關係,並選擇與目標變量關係最密切的那些輸入變量。儘管統計方法的選擇取決於輸入和輸出變量的數據類型,但是這些方法可以快速有效。

這樣,當執行基於過濾器的特徵選擇時,對於機器學習從業者來說,為數據集選擇適當的統計量度可能是具有挑戰性的。

在本文中,您將發現如何為統計數據和分類數據選擇統計度量,以進行基於過濾器的特徵選擇。

閱讀這篇文章後,您將知道:

特徵選擇技術主要有兩種類型:包裝器和過濾器方法。基於過濾器的特徵選擇方法使用統計量度對可以過濾以選擇最相關特徵的輸入變量之間的相關性或依賴性進行評分。必須根據輸入變量和輸出或響應變量的數據類型仔細選擇用於特徵選擇的統計量度。總覽

本教程分為三個部分:他們是:

特徵選擇方法篩選器特徵選擇方法的統計信息功能選擇提示和技巧

特徵選擇方法

特徵選擇方法旨在將輸入變量的數量減少到被認為對模型最有用的那些變量,以預測目標變量。

一些預測性建模問題包含大量變量,這些變量可能會減慢模型的開發和訓練速度,並需要大量的系統內存。此外,當包含與目標變量無關的輸入變量時,某些模型的性能可能會降低。

特徵選擇算法有兩種主要類型:包裝器方法和過濾器方法。

包裝功能選擇方法。篩選功能選擇方法。包裝器特徵選擇方法會創建許多具有不同輸入特徵子集的模型,並根據性能指標選擇那些導致最佳性能模型的特徵。這些方法與變量類型無關,儘管它們在計算上可能很昂貴。RFE是包裝功能選擇方法的一個很好的例子。

包裝器方法使用添加和/或刪除預測變量的過程來評估多個模型,以找到使模型性能最大化的最佳組合。

—第490頁,應用預測建模,2013年。

過濾器特徵選擇方法使用統計技術來評估每個輸入變量和目標變量之間的關係,這些分數將用作選擇(過濾)將在模型中使用的那些輸入變量的基礎。

過濾器方法在預測模型之外評估預測變量的相關性,然後僅對通過某些標準的預測變量進行建模。

—第490頁,應用預測建模,2013年。

通常在輸入和輸出變量之間使用相關類型統計量度作為過濾器特徵選擇的基礎。這樣,統計量度的選擇高度依賴於可變數據類型。

常見的數據類型包括數字(例如高度)和類別(例如標籤),但是每種數據類型都可以進一步細分,例如數字變量的整數和浮點數,類別變量的布爾值,有序數或標稱值。

常見的輸入變量數據類型:

數值變量整數變量。浮點變量。分類變量布爾變量(二分法)。序數變量。標稱變量。對變量的數據類型了解得越多,就越容易為基於過濾器的特徵選擇方法選擇適當的統計量度。

在下一部分中,我們將回顧一些統計量度,這些統計量度可用於具有不同輸入和輸出變量數據類型的基於過濾器的特徵選擇。

基於過濾器的特徵選擇方法的統計信息

在本節中,我們將考慮兩大類變量類型:數字和類別;同樣,要考慮的兩個主要變量組:輸入和輸出。

輸入變量是作為模型輸入提供的變量。在特徵選擇中,我們希望減小這些變量的大小。輸出變量是模型要預測的變量,通常稱為響應變量。

響應變量的類型通常指示正在執行的預測建模問題的類型。例如,數字輸出變量指示回歸預測建模問題,而分類輸出變量指示分類預測建模問題。

數值輸出:回歸預測建模問題。分類輸出:分類預測建模問題。通常在基於過濾器的特徵選擇中使用的統計量度是與目標變量一次計算一個輸入變量。因此,它們被稱為單變量統計量度。這可能意味著在過濾過程中不會考慮輸入變量之間的任何交互。

這些技術大多數都是單變量的,這意味著它們獨立地評估每個預測變量。在這種情況下,相關預測變量的存在使選擇重要但多餘的預測變量成為可能。此問題的明顯後果是選擇了太多的預測變量,結果出現了共線性問題。

—第499頁,應用預測建模,2013年。

使用此框架,讓我們回顧一些可用於基於過濾器的特徵選擇的單變量統計量度。

如何選擇機器學習的特徵選擇方法

數值輸入,數值輸出

這是帶有數字輸入變量的回歸預測建模問題。

最常見的技術是使用相關係數,例如使用Pearson進行線性相關,或使用基於秩的方法進行非線性相關。

皮爾遜相關係數(線性)。Spearman的秩係數(非線性)數值輸入,分類輸出

這是帶有數字輸入變量的分類預測建模問題。

這可能是最常見的分類問題示例,

同樣,最常見的技術是基於相關的,儘管在這種情況下,它們必須考慮分類目標。

方差分析相關係數(線性)。肯德爾的秩係數(非線性)。Kendall確實假定類別變量為序數。

分類輸入,數值輸出

這是帶有分類輸入變量的回歸預測建模問題。

這是回歸問題的一個奇怪示例(例如,您不會經常遇到它)。

不過,您可以使用相同的「 數值輸入,分類輸出」方法(如上所述),但要相反。

分類輸入,分類輸出

這是帶有分類輸入變量的分類預測建模問題。

分類數據最常見的相關度量是卡方檢驗。您還可以使用資訊理論領域的互信息(信息獲取)。

卡方檢驗(列聯表)。相互信息。實際上,互信息是一種強大的方法,可能對分類數據和數字數據都有用,例如,與數據類型無關。

功能選擇提示和技巧

使用基於過濾器的功能選擇時,本節提供了一些其他注意事項。

相關統計

scikit-learn庫提供了大多數有用的統計度量的實現。

例如:

皮爾遜相關係數:f_regression()方差分析:f_classif()Chi-Squared:chi2()共同信息:Mutual_info_classif()和Mutual_info_regression()此外,SciPy庫提供了更多統計信息的實現,例如Kendall的tau(kendalltau)和Spearman的排名相關性(spearmanr)。

選擇方式

一旦針對具有目標的每個輸入變量計算出統計信息,scikit-learn庫還將提供許多不同的過濾方法。

兩種比較流行的方法包括:

選擇前k個變量:SelectKBest選擇頂部的百分位數變量:SelectPercentile我經常自己使用SelectKBest。

轉換變量

考慮轉換變量以訪問不同的統計方法。

例如,您可以將分類變量轉換為序數(即使不是序數),然後查看是否有任何有趣的結果。

您還可以使數值變量離散(例如,箱);嘗試基於分類的度量。

一些統計度量假設變量的屬性,例如Pearson假設假定觀測值具有高斯概率分布並具有線性關係。您可以轉換數據以滿足測試的期望,然後不管期望如何都可以嘗試測試並比較結果。

最好的方法是什麼?

沒有最佳功能選擇方法。

就像沒有最佳的輸入變量集或最佳的機器學習算法一樣。至少不是普遍的。

相反,您必須使用認真的系統實驗來發現最適合您的特定問題的方法。

嘗試通過不同的統計量度來選擇適合不同特徵子集的各種不同模型,並找出最適合您的特定問題的模型。

相關焦點

  • 分享一個Python中機器學習的特徵選擇工具
    我對臨時的特徵選擇方法感到很失望,但是在解決機器學習問題時又反覆用到了這些方法,所以就創建了一個關於特徵選擇的Python類,該類可以在GitHub上找到。也會介紹該類是如何讓我們快速地實現特徵選擇方法。  完整的代碼可以在GitHub上找到,特徵選擇器還是一個半成品,會根據社區的需求繼續改進!  示例數據集  示例中使用的是Kaggle上家庭信用違約風險機器學習競賽的數據樣本。
  • 教你如何做特徵選擇
    AI算法工程  公眾號:datayx特徵選擇方法初識:1、為什麼要做特徵選擇在有限的樣本數目下,用大量的特徵來設計分類器計算開銷太大而且分類性能差。2、特徵選擇的確切含義將高維空間的樣本通過映射或者是變換的方式轉換到低維空間,達到降維的目的,然後通過特徵選取刪選掉冗餘和不相關的特徵來進一步降維。
  • 機器學習特徵選擇常用算法
    綜述本文引用地址:http://www.eepw.com.cn/article/201807/383585.htm(1) 什麼是特徵選擇特徵選擇 ( Feature Selection )也稱特徵子集選擇( Feature Subset Selection , FSS ) ,或屬性選擇( Attribute Selection ) ,是指從全部特徵中選取一個特徵子集,使構造出來的模型更好
  • 機器學習:特徵選擇和降維實例
    不幸的是,在Do not Overfit II競賽(kaggle.com/c/dont-overfit-ii/data)中,領域知識的使用是不可能的,因為我們有一個二元目標和300個連續變量,這迫使我們嘗試特徵選擇技術。簡介通常,我們將特徵選擇和降維組合在一起使用。雖然這兩種方法都用於減少數據集中的特徵數量,但存在很大不同。
  • 機器學習中特徵選擇怎麼做?這篇文章告訴你
    2.遵循過濾方法的相同目標,但使用機器學習模型作為其評估標準(例如,向前/向後/雙向/遞歸特徵消除)。我們將一些特徵輸入機器學習模型,評估它們的性能,然後決定是否添加或刪除特徵以提高精度。因此,這種方法可以比濾波更精確,但計算成本更高。3.嵌入方法。與過濾方法一樣,嵌入方法也使用機器學習模型。
  • 機器學習系列|從白富美相親看特徵預處理與選擇
    原標題:機器學習系列|從白富美相親看特徵預處理與選擇 作者授權轉載 作者:龍心塵&寒小陽 摘自:http://blog.csdn.net/longxinchen_ml
  • 如何入門Python與機器學習
    本文打算先談談機器學習相關的一些比較寬泛的知識,再介紹並說明為何要使用Python來作為機器學習的工具。最後,我們會提供一個簡短易懂的、具有實際意義的例子來給大家提供一個直觀的感受。  具體而言,本章主要涉及的知識點有:  機器學習的定義及重要性;  Python在機器學習領域的優異性;  如何在電腦上配置Python機器學習的環境;  機器學習一般性的步驟。  機器學習緒論  正如前言所說,由於近期的各種最新成果,使得「機器學習」成為了非常熱門的詞彙。
  • 一文學會在Python中利用過濾器方法進行深度學習特徵選擇
    機器學習算法的訓練時間和性能在很大程度上取決於數據集中的特徵。理想情況下,我們應該只在數據集中保留那些實際上有助於我們的機器學習模型學習的東西。不必要的冗餘特徵不僅減慢了算法的訓練時間,而且還影響了算法的性能。選擇用於訓練機器學習模型的最合適特徵的過程稱為「特徵選擇」。
  • 教程| 初學者如何選擇合適的機器學習算法(附速查表)
    機器學習算法速查表機器學習算法速查表可幫助你從大量算法之中篩選出解決你的特定問題的算法,同時本文也將介紹如何使用該速查表。由於該速查表專門針對數據科學和機器學習的初學者,所以在探討這些算法之時,我們做了一些簡化的假設。本文中所有推薦的算法均來自於程序編譯反饋以及若干個數據科學家、機器學習專家和開發者的建議。
  • Python機器學習10:機器學習中的六種分類算法及實現(上)
    在機器學習中,可以使用多種算法模型解決同一個問題,那麼如何從中選擇出最佳的算法模型呢?當然,這個問題沒有一種固定的答案,需要根據不同的問題,嘗試使用多種機器學習方法,比較各種算法模型在該問題上的效果,最終才能決定究竟選擇哪一種模型。
  • 機器學習在搜索中的應用:個性化排序
    傳統的排序方法排序:是對一系列的數據按某些特徵因子進行排名,特徵的選擇以及特徵權重的賦予;將影響內容排序的先後,一套排序規則的確定通常需要產品專家與算法專家共同設計。對於特徵的選擇,可以按內容的屬性特徵與文本相關特徵分為兩類。
  • 阿里達摩院提出基於頻域信息的機器學習方法
    這篇文章介紹圖像分析系統的基本組成,以及我們如何利用頻域特徵來進行圖像推理,從而省略頻域到空間域的轉換,因為這個轉換是圖像壓縮/解壓縮中計算量最大的步驟。同時我們可以在頻域選擇重要的信息,進一步減少系統中模塊之間的數據傳輸量。因為模塊之間的數據帶寬往往遠小於模塊內部的數據帶寬,減小模塊間的數據傳輸量便可以提升整個系統的性能。
  • 5個特徵選擇算法,讓你的數據處理得心應手
    本文將會介紹一些處理數據時最常用的特徵選擇技術。我們經常遇到這樣的情況:在創建了大量特徵後,又需要減少數量,最後再使用相關性或者基於樹的方法來找出其中的重要特徵。那麼,如何讓這些方法變得更有結構呢?為何要進行特徵選擇?
  • 特徵選擇怎麼做?這篇文章告訴你
    圖 1:分類器性能和維度之間的關係特徵選擇有許多不同的方法可用於特徵選擇。其中最重要的是:過濾方法=過濾我們的數據集,只取包含所有相關特徵的子集(例如,使用 Pearson 相關的相關矩陣)。遵循過濾方法的相同目標,但使用機器學習模型作為其評估標準(例如,向前/向後/雙向/遞歸特徵消除)。我們將一些特徵輸入機器學習模型,評估它們的性能,然後決定是否添加或刪除特徵以提高精度。因此,這種方法可以比濾波更精確,但計算成本更高。
  • 特徵選擇—對壞屬性說不
    特徵選擇是從原始數據中選擇對於預測Pipeline而言最好的特徵的過程,更正式地說,給定n個特徵,搜索其中包括k個特徵的子集來改善機器學習Pipeline的性能。特徵選擇嘗試剔除數據中的噪聲。特徵選擇的方法包括基於統計和基於模型的特徵選擇。
  • 數據挖掘:基於機器學習方法的POI品類推薦算法
    如何使用這些已校準的POI數據,挖掘出有價值的信息,本文進行了一些嘗試:利用機器學習方法,自動標註缺失品類的POI數據。例如,門店名稱為「好再來牛肉拉麵館」的POI將自動標註「小吃」品類。機器學習解決問題的一般過程:
  • 謝國彤:疾病預測的機器學習、深度學習和經典回歸方法
    基於機器學習方法的疾病預測儘管傳統的回歸方法在疾病預測方面有廣泛的應用,但這些方法在預測準確度和模型可解釋方面,都仍有提升的空間。近年來,機器學習領域的特徵選擇和有監督學習建模方法越來越多地用於疾病預測問題。一些機器學習方法可以提高預測模型的可解釋性,例如決策樹方法。
  • 機器學習數據降維方法:PCA主成分分析
    PCA在機器學習中很常用,是一種無參數的數據降維方法。PCA的推導PCA通過線性變換將原始數據變換為一組各維度線性無關的表示,可用於提取數據的主要特徵分量,常用於高維數據的降維。我們知道PCA是一種數據降維的方法,在降低維度的過程中,我們當然想要保留更多的特徵,PCA就是經過數學推導,保留最多特徵同時降維的方法。
  • 專欄 | 基於 Jupyter 的特徵工程手冊:特徵選擇(四)
    :特徵選擇(一)專欄 | 基於 Jupyter 的特徵工程手冊:特徵選擇(二)專欄 | 基於 Jupyter 的特徵工程手冊:特徵選擇(三)數據預處理後,我們生成了大量的新變量(比如獨熱編碼生成了大量僅包含0或1的變量)。
  • 機器學習|特徵工程 - 人人都是產品經理
    特徵工程指的是把原始數據轉變為模型的訓練數據的過程,它的目的就是獲取更好的訓練數據特徵,使得機器學習模型逼近這個上限。數據清洗的步驟:預處理在數據預處理過程主要考慮兩個方面,如下:選擇數據處理工具:關係型資料庫或者Python查看數據的元數據以及數據特徵:一是查看元數據,包括欄位解釋、數據來源等一切可以描述數據的信息;