數值數據的特徵工程

2021-01-12 計算機與AI

數據饋送機器學習模型,越多越好,對嗎?好吧,有時數字數據不太適合提取,因此,本文將介紹多種方法,可以將原始數字轉換為更可口的東西。

數值數據幾乎是福氣。為什麼差不多?好吧,因為它已經採用了機器學習模型可以攝取的格式。但是,如果我們將其翻譯成與人類相關的術語,僅僅因為博士級別的教科書是用英語寫的(我會說,讀和寫英語),並不意味著我有足夠的理解能力來獲得有用的見解。使教科書對我有用的是,如果它以一種考慮我的心理模型假設的方式來概括最重要的信息,例如「數學是神話」(順便說一句,自從我以後就不再是我的觀點了)真的開始享受它)。同樣,良好的功能應代表數據的顯著方面,並採用由機器學習模型做出的假設的形式。

特徵工程是從原始數據中提取特徵並將其轉換為可由機器學習模型攝取的格式的過程。通常需要進行轉換以減輕建模的難度並提高模型的結果。因此,設計數值數據類型的技術是數據科學家(無論是機器學習工程師)還是其炮兵的基本工具。

「數據就像 機器學習的原油一樣 ,這意味著必須將其精煉為 特徵(預測變量)才能對訓練模型有用。」 — 威爾·科森

在我們努力精通掌握的過程中,重要的是要指出,僅僅知道一種機制為什麼起作用以及它可以做什麼還遠遠不夠。Mastery知道如何做某事,對基本原理有直覺,並具有神經連接,使得面對挑戰時,繪製正確的工具成為無縫的過程。這不是從閱讀本文中得出的,而是從本文的有意實踐中提供的技術直覺為您打開了大門,使您可以理解這些技術的使用方式和時間。

數據中的功能將直接影響您使用的預測模型和可獲得的結果。」 — 傑森·布朗利( Jason Brownlee)

有時可能會在累積的要素上收集數據,從而具有無限的上限。這種連續數據的示例可能是跟蹤系統,該系統監視我的所有博客帖子每天收到的訪問次數。這種類型的數據很容易吸引異常值,因為可能會有一些不可預測的事件影響到我的文章所累積的總流量。當可以快速,大量地收集數據時,很可能其中包含一些需要工程設計的極端值。

一些處理此實例的方法是:

量化

此方法通過將值分組到bin中來包含數據的規模。因此,量化將連續值映射為離散值,並且從概念上講,這可以認為是有序的bin序列。要實現這一點,我們必須考慮我們創建的垃圾箱的寬度,其解決方案分為兩類:固定寬度垃圾箱或自適應垃圾箱。

注意:這對於線性模型特別有用。在基於樹的模型中,這是沒有用的,因為基於樹的模型會自行進行拆分。

在固定寬度方案中,該值是自動或自定義設計的,可將數據分割為離散的bin-它們也可以線性縮放或指數縮放。一個流行的示例是按十年間隔將人們的年齡劃分為多個分區,以使bin 1包含0–9歲,bin 2具有10–19歲,依此類推。

請注意,如果值跨較大的數值範圍,則更好的方法可能是將值分組為常數的冪,例如10:0–9、10–99、100–999、1000的冪–9999。請注意,bin寬度呈指數增長,因此,在1000–9999的情況下,bin寬度為O(10000),而0–9為O(10)。取計數的日誌以從計數映射到數據的bin。

當計數中的間隙較大時,自適應垃圾箱更適合。當計數值之間有較大的邊距時,某些固定寬度的紙槽將為空。

要進行自適應裝倉,我們可以利用數據的分位數-將數據劃分為相等部分(例如中位數)的值。

動力轉換

我們已經看到了這樣一個例子:對數變換是方差穩定變換族(稱為冪變換)的一部分。Wikipedia將冪變換描述為 「用於穩定方差,使數據更像正態分布,提高關聯度量(例如變量之間的Pearson相關性以及其他數據穩定程序)的有效性的技術」。

為什麼我們要轉換數據以適合正態分布?好問題!您可能要使用參數模型(一種對數據進行假設的模型)而不是非參數模型。當數據呈正態分布時,參數模型將很強大。但是,在某些情況下,我們需要的數據可能需要幫助才能顯示出正態分布的漂亮鐘形曲線。例如,數據可能會偏斜,因此我們應用冪變換來幫助使我們的特徵看起來更呈高斯分布。

下面的代碼利用了諸如pandas,scipy和numpy之類的數據科學框架來演示冪轉換,並使用Plotly.py框架對交互式繪圖進行可視化。所使用的數據集是 Kaggle 的 房屋價格:高級回歸技術。

注意:Box-cox轉換僅在數據為非負數時起作用

「其中哪一個最好?您無法事先知道。您必須嘗試它們,並評估結果以實現算法和性能指標。」 — 傑森·布朗利

功能縮放

顧名思義,要素縮放(也稱為要素歸一化)與更改要素的縮放比例有關。當數據集的特徵在比例上差異很大時,對輸入特徵的比例敏感的模型(即線性回歸,邏輯回歸,神經網絡)將受到影響。確保功能在相似的範圍內勢在必行。而基於樹的模型(即決策樹,隨機森林,梯度增強)之類的模型並不關心規模。

縮放特徵的常用方法包括最小-最大縮放,標準化和L標準化。以下是python的簡要介紹和實現。

最小-最大縮放 -將特徵縮放到固定範圍(通常在0–1之間),這意味著我們將減少標準偏差,因此可以抑制離群值對特徵的影響。其中x是實例的個體值(特徵1,特徵2),max(x),min(x)是特徵的最大值和最小值—請參見下圖。有關此的更多信息,請參見 sklearn文檔。

最小-最大縮放比例的公式

標準化-將對特徵值進行重新縮放,以使其適合均值為0且標準偏差為1的正態分布的屬性。為此,我們從所有實例中減去特徵的均值-在所有實例中功能實例值,然後除以方差—參見下圖。 有關標準化,請參閱sklearn文檔。

標準化公式

L2歸一化 -此技術將原始特徵值除以L2範數(也是歐幾裡德距離)下圖中的第二個等式。L範數取所有實例中特徵集中值的平方和。請參考sklearn 文檔 中的L2範數(請注意,也可以通過將norm參數設置為「 L1」來進行L1歸一化)。

可視化特徵縮放的效果將更好地顯示正在發生的事情。為此,我使用了可以從sklearn數據集導入的wine數據集。

原始功能和各種縮放實現的圖

功能互動

我們可以使用要素之間成對交互的乘積來創建邏輯AND函數。在基於樹的模型中,這些交互是隱式發生的,但是在假定要素相互獨立的模型中,我們可以顯式聲明要素之間的交互,以改善模型的輸出。

考慮一個簡單的線性模型,該模型使用輸入要素的線性組合來預測輸出y:

線性模型的公式

我們可以擴展線性模型以捕獲要素之間發生的相互作用。

擴展線性模型

注意:線性函數使用起來很昂貴,並且具有成對交互作用的線性模型的評分和訓練會從O(n)到O(n)。但是,您可以執行特徵提取來克服此問題(特徵提取不在本文討論範圍之內,但是我將在以後的文章中進行討論)。

讓我們用python編寫代碼,我將利用scitkit-learn PolynomialFeatures類,您可以在文檔中了解更多信息

這篇文章的靈感來自《面向機器學習的特徵工程:面向數據科學家的原理和技術》一書 ,我絕對建議閱讀。儘管它於2016年發布,但即使對於沒有數學背景的人,它仍然非常有用,而且解釋清楚。

結論

在本文中,我們討論了用於處理數字特徵的技術,例如量化,冪轉換,特徵縮放和交互特徵(可應用於各種數據類型)。這絕不是功能工程的千篇一律,而且每天都有很多東西要學習。特徵工程是一門藝術,需要實踐,因此,有了直覺,您就可以開始練習了。

相關焦點

  • 數值數據的特徵預處理
    特徵預處理是數據挖掘中最重要的步驟。在這篇文章中,我將向你介紹特徵預處理的概念,它的重要性,不同的機器學習模型下的數值特徵的不同特徵預處理技術。模型的質量在很大程度上取決於輸入模型的數據。當從數據挖掘過程中收集數據時,會丟失一些數據(我們將其稱為丟失值)。此外,它很容易受到噪音的影響。
  • 不會做特徵工程的 AI 研究員不是好數據科學家!上篇 - 連續數據的...
    然而面對實際問題時,收集到的數據往往不是像數據集中那樣整理好的,直接用來跑模型會帶來各種各樣的問題。這時候我們就開始回憶起「特徵工程」這一組容易被忽略但解決問題時不可或缺的硬功夫。數據科學家 Dipanjan Sarkar 近日就發布了兩篇長博客介紹了一些基本的特徵工程知識和技巧。這篇為上篇,主要介紹連續型數值數據的特徵工程處理方法。雷鋒網 AI 科技評論全文編譯如下。
  • 不會做特徵工程的 AI 研究員不是好數據科學家!下篇 - 離散數據的...
    Dipanjan Sarkar 在 Medium 上發布的「特徵工程」博客下篇,給領域內的研究人員補充特徵工程的相關知識,不論學術研究、數據競賽還是解決商業問題都必不可少。在上篇中,作者介紹了連續型數值數據的特徵工程處理方法。本篇為下篇,主要介紹離散數據的除了方法。雷鋒網(公眾號:雷鋒網) AI 科技評論對原文進行了編譯。
  • 特徵工程方法—數據離散化
    數據離散化定義離散化是把無限空間中有限的個體映射到有限的空間中去,以此提高算法的時空效率。通俗地講,離散化是在不改變數據相對大小的條件下,對數據進行相應的縮小,但是離散化僅適用於只關注元素之間的大小關係而不關注元素本身的值。
  • 2.2w字長文詳解推薦系統之數據與特徵工程,碼起來慢慢看
    具體來說,我們會從推薦算法建模的一般流程、推薦系統依賴的數據源介紹、數據處理與特徵工程簡介、常用推薦算法之數據與特徵工程、推薦系統數據與特徵工程未來趨勢等5個部分來介紹相關知識點,期望本文的講解能夠讓讀者更加深入地理解推薦系統依賴的數據源的特點、數據預處理方法以及基於這些數據之上的特徵工程方法與技巧。
  • 特徵工程自動化 時間序列的數據是關鍵
    利用像XGBoost等這樣的先進算法甚至線性模型,通常需要大量的數據準備和特徵工程,例如,創建滯後特徵,去除目標以及檢測周期性。在需要預測未來多個時間點窗口的常見情況下,所需的預處理變得更加困難。因此,大多數實踐者都依賴傳統的方法,如ARIMA或趨勢分析,這些方法具有時間意識,但表達能力較差。
  • 機器學習|特徵工程 - 人人都是產品經理
    特徵工程指的是把原始數據轉變為模型的訓練數據的過程,它的目的就是獲取更好的訓練數據特徵,使得機器學習模型逼近這個上限。簡單來說就是算法的前期處理階段,經過特徵工程處理後的數據是無法直接通過肉眼辨別處理的好換,只有通過算法的結果反推特徵工程處理的好壞,如果模型任何效果不好,任何一個模型的效果都不好,八成是特徵工程不好,需要重新做特徵工程。
  • 機器學習中數據特徵的處理 歸一化vs標準化,哪個更好
    眾所周知,特徵工程是將原始數據轉換為數據集的過程。 有各種可用的功能工程技術。兩種最廣泛使用且最容易混淆的特徵工程技術是:標準化歸一化今天我們將探討這兩種技術,並了解數據分析師在解決數據科學問題時所做出的一些常見假設。
  • LabVIEW的數值型數據對象
    在前面窗口中,數值型數據控制項位於「新式→數值」控制項子選板,如圖1所示。其中包括數值輸入/顯示控制項,時間標識輸入/顯示控制項,垂直/水平填充/指針滑動,垂直/水平進度條,旋鈕,儀表,液罐,溫度計,垂直/水平滾動條等。
  • 相對數值在數據分析中的運用
    編輯導語:在進行數據對比時,我們會用到相對數值的概念,相對數值可以明確我們在不同對象之間的關係;所以在數據分析中,我們經常會用到相對數值;本文作者分享了關於相對數值在數據分析中的運用,我們一起來看一下。
  • 專欄 | 基於 Jupyter 的特徵工程手冊:特徵選擇(四)
    作者:陳穎祥、楊子晗
  • 5個特徵選擇算法,讓你的數據處理得心應手
    全文共5462字,預計學習時長11分鐘圖片來源:https://unsplash.com/@seefromthesky數據科學是研究算法的學問。本文將會介紹一些處理數據時最常用的特徵選擇技術。維數的詛咒——過擬合維數的詛咒:隨著特徵空間維數的增加,配置數量將會以指數級增長,因此觀測量會下降如果數據中的列數多於行數,就能完美匹配訓練數據,但這卻並不適用於新樣本。因此這樣什麼也沒學到。2. 奧卡姆剃刀原理模型應當簡單易懂。
  • 氣象錦囊——人工智慧賦能數值天氣預報
    天氣預報需要大量的、多種多樣的資料,而人工智慧天生就是處理大數據的工具;現有資料的時空數據密度均不夠,而人工智慧技術卻具有根據不完全不確定信息推斷的能力;人工智慧不僅可以總結專家知識經驗,提高平均預測水平,還可以充分利用統計與數值模式中無法利用的抽象預報知識。那麼人工智慧技術是如何在數值天氣預報中實現的呢?首先讓我們說說人工智慧的概念。1、什麼是人工智慧?
  • 圖像特徵工程:HOG特徵描述子介紹
    介紹在機器學習算法的世界裡,特徵工程是非常重要的。實際上,作為一名數據科學家,這是我最喜歡的方面之一!從現有特徵中設計新特徵並改進模型的性能,這就是我們進行最多實驗的地方。世界上一些頂級數據科學家依靠特徵工程來提高他們在競賽排行榜得分。我相信你甚至會在結構化數據上使用各種特徵工程技術。
  • 數據分析實踐入門(三):數值操作
    作者 | CDA數據分析師我們把菜品挑選出來以後,就可以開始切菜了。比如要做涼拌黃瓜絲,吧黃瓜找出來以後,你就可以把黃瓜切成絲了。一、數值替換數值替換就是將數值A替換成B,可以用在異常值替換處理、缺失值填充處理中。主要有一對一替換、多對一替換、多對多替換三種替換方法。
  • 機器學習處理數據為什麼把連續性特徵離散化
    機器學習處理數據為什麼把連續性特徵離散化 易水寒 發表於 2018-11-17 09:31:41 在學習機器學習中,看過挺多案例,看到很多人在處理數據的時候,經常把連續性特徵離散化。
  • 「首席架構師推薦」數值計算庫一覽表
    triinos致力於為解決大規模、複雜的多物理工程和科學問題開發算法和實現技術。它是包的集合。Math.NET Numerics 旨在為科學、工程和日常應用中的數值計算提供方法和算法。涵蓋的主題包括特殊函數,線性代數,概率模型,隨機數,插值,積分變換等。麻省理工學院/X11許可下的自由軟體。Measurement Studio是一個商業集成套件UI控制項和類庫,用於開發測試和測量應用程式。
  • 建設工程監理合同有什麼特徵,建設工程監理合同的特徵是什麼?
    建設工程監理合同文件中除在合同履行中雙方共同籤署的合同補充與修正文件外,其他部分的內容基本上是確定,尤其使用建設工程委託監理合同示範文本的情況下,更是這樣。那麼建設工程監理合同有什麼特徵,建設工程監理合同的特徵是什麼?
  • 高通第二代超聲波屏下指紋技術發布 生物特徵數據抓取數值增長1.7倍
    高通第二代超聲波屏下指紋技術發布  當地時間周一(11日),高通在2021年CES消費電子展上正式發布第二代超聲波屏下指紋識別器3D Sonic Sensor Gen 2,較第一代指紋識別面積增大77%,生物特徵數據抓取數值增長1.7倍,最重要的是,識別速度提高了50%。
  • VisualFortran常用數值算法集(圖)
    本書共有數值計算中常用的Visual Fortran子過程近200個。內容包括:解線性代數方程組、插值、數值積分、特殊函數、函數逼近、隨機數、排序、特徵值問題、數據擬合、方程求根和非線性方程組求解、函數的極值和最優化、傅立葉變換譜方法、數據的統計描述、解常微分方程組、兩點邊值問題的解法和解偏微分方程組。每一個子程序都包括功能、方法、使用說明、子程序和例子五部分。本書的所有子過程都在Visual Fortran5.0版本上進行過驗證,程序都能正確運行。