獨家 | 一文帶你讀懂特徵工程
來自專欄大數據の譯讀賞學
7 人贊了文章
本文約1800字,建議閱讀7分鐘。
本文描述了一個典型的基於跨行業標準流程的標準機器學習管道,作為數據挖掘行業的標準過程模型。
無論它的規模和大小如何,數據已經成為現代企業、公司和組織的一流資產。任何一個智能系統都需要數據驅動,無論它多複雜。每個智能系統的核心,均有一個或多個基於某種數據學習方法的演算法,例如機器學習、深度學習或統計方法,它們利用這些數據來生成知識,並在一段時間內提供智能洞察。
演算法本身是非常通用的,但無法在普通原始數據上有效發揮作用。因此,需要從原始數據中提取有意義的特徵,我們才能夠理解和使用這些數據。
任何一個智能數據洞察系統基本上都由端到端的管道組成:
- 先是獲取原始數據;
- 然後利用數據處理技術,從這些數據中獲取、處理和提取有意義的特徵和屬性;
- 最後,通常利用統計模型或機器學習模型等技術對這些特徵進行建模。
如果有必要的話,還需要根據手頭要解決的問題部署該模型以供將來使用。

獲取原始數據後,直接在數據之上構建模型是魯莽的,因為我們無法從普通原始數據中獲得想要的結果或性能,而且演算法本身也不會自動從中提取有意義的特徵。在上圖中指出的數據準備方面,在對原始數據進行必要的清洗、預處理分析之後,便可以採用多種方法從中提取有意義的屬性或特徵。特徵工程是一門藝術,也是一門科學,這也是為什麼數據科學家在建模之前通常會把70%的時間花在數據準備上。
「特徵工程是將原始數據轉化為特徵的過程,這些特徵可以更好地向預測模型描述潛在問題,從而提高模型對未見數據的準確性。」
-Jason Brownlee博士
這讓我們深入了解了為什麼特徵工程是一個將數據轉化成作為機器學習模型輸入的特徵的過程,換句話說,高質量的特徵有助於提高模型整體的性能和準確性。特徵在很大程度上與基本問題相關聯。
因此,即使機器學習任務在不同的場景中可能是相同的,比如將物聯網事件分類為正常和異常行為,或者將客戶情緒分類,但每個場景中提取的特徵都會有很大的不同。
什麼是特徵?
特徵通常是建立在原始數據之上的特定表示,它是一個單獨的可測量屬性,通常用數據集中的列表示。對於一個通用的二維數據集,每個觀測值由一行表示,每個特徵由一列表示,對於每一個觀測具有一個特定的值。

因此,就像上圖中的例子一樣,每行通常表示一個特徵向量,所有觀察到的全部特徵集形成一個二維特徵矩陣,也稱為特徵集。這類似於用來表示二維數據的數據框或電子表格。機器學習演算法通常與這些數值矩陣或張量一起工作,因此絕大多數特徵工程技術都是將原始數據轉換為一些數值表達,以便演算法理解。
基於數據集的特徵可以分為兩大類:
- 固有的原始特徵是直接從數據集獲得的,沒有額外的數據操作。
- 派生特徵通常是從特徵工程中獲得的,是從現有的數據屬性中提取出來的特徵。
舉一個簡單的例子:通過將當前日期減去訂單日期,可以從包含「訂單日期」的訂單數據集中創建一個新的「訂單履行日期」。另一方面,在特定的深度學習演算法中,特徵通常比較簡單,因為演算法本身會內部轉化數據。這種方法需要的數據量會比較大,並以犧牲解釋性為代價。然而,在圖像處理或自然語言處理用例中,這樣的折中方法往往是值得的。
對於公司面臨的大多數其他用例,例如預測分析,特徵工程是將數據轉換成機器學習所需要的格式。特徵的選擇對模型的解釋性和性能都至關重要。如果沒有特徵工程,今天的大公司就無法部署精確的機器學習系統。
特徵工程
數值數據通常以標量值的形式描述觀測、記錄或測量數據。在這裡,我們所說的數值數據是指連續數據,而不是通常用來表示分類數據的離散數據。數值數據也可以是向量值,其中向量中的每個值或實體都可以表示一個特定的特徵。整數和浮點數是連續數值數據中最常見和最廣泛使用的數值數據類型。
即使數值數據可以直接輸入機器學習模型,在構建模型之前,仍然需要設計與場景、問題和領域相關的特徵。因此,對特性工程的需求仍然存在。
原文標題:Feature Engineering
原文鏈接:https://dzone.com/articles/feature-engineering-1
作者:Bhalchandra Madhekar
翻譯:陳之炎
推薦閱讀:
※嗨客案例 | 使用隨機森林進行紅酒品質分類
※圖解機器學習:如何用learning curve動態識別模型的病症和選擇合適改進措施
※軟間隔SVM與表現定理(Representer Theorem)
※特徵工程之特徵表達
※ITEC 智旅鏈:人工智慧時代的「我的旅遊我做主」
