易燃物匯聚 YouTube 有聲書與書評
特徵工程入門與實踐 封面

特徵工程入門與實踐

錫南·厄茲代米爾 迪夫婭·蘇薩拉

5057人在讀
16.5萬字總字數
¥29.99定價

有聲書與視頻解讀 YouTube有聲書 1

內容簡介

本書將帶你瞭解特徵工程的完整過程,使機器學習更加系統、高效。你會從理解數據開始學習,機器學習模型的成功正是取決於如何利用不同類型的特徵,例如連續特徵、分類特徵等。你將瞭解何時納入一項特徵、何時忽略一項特徵,以及其中的原因。你還會學習如何將問題陳述轉換爲有用的新特徵,如何提供由商業需求和數學見解驅動的特徵,以及如何在自己的機器上進行機器學習,從而自動學習數據中的特徵。

讀者書評

★★★★★

數據的預處理一直是模型訓練的難點,相當於是給模型種糧食,業內稱之爲八二定律,概括爲80%的數據+20%的模型,可見數據組織對於模型質量的重要。 本書的主題是特徵工程。着重於清洗和組織數據的過程,爲機器學習流水線服務。特徵提取不僅僅是找出現有的好屬性(特徵),很多時候更是需要搜尋計算出數據表格中最具表達力的屬性。比如,數據是定量的,還是定性的?定量數據本質上是數值,應該是衡量某樣東西的數量。定性數據本質上是類別,應該是描述某樣東西的性質。再比如,數據4的個等級與數學運算的對應關係:1、定類數據,純粹的分類標籤,沒有任何順序、大小或高低之分。能做的運算:計數、求衆數。2、定序數據,有明確的先後順序或等級。能做的運算:排序、求中位數、百分位數。可視化:柱狀圖、餅圖等。3、定距數據,不僅有順序,且相鄰數值之間的間距是相等的、有意義的,可加減。但它沒有絕對的零點(人爲規定的一個基準點)。可視化:直方圖、散點圖等。4、定比數據,擁有定距數據的所有特徵,並且存在真正的絕對零點。能做的運算:加、減、乘、除。最高級的數據類型,可以進行所有的統計分析。等等,諸如此類的特徵提取相關邏輯,背後都涉及統計學的知識,所以說統計學是機器學習的基礎。 另外,書中的舉例都是機器學習的經典場景。比如,縮放、PCA、LDA和KNN的組合是按照順序執行的,縮放->PCA->LDA->分類器。這個最優的流水線,充分體現了模型設計時,核心邏輯與模型狀態參數的解耦的思想。

★★★★★

《特徵工程入門與實踐》拆解 作者:錫南·厄茲代米爾、迪夫婭·蘇薩拉 一、一句話概括 機器學習模型的上限往往不只由算法決定,更取決於能否正確理解、清洗、編碼、構造、選擇和轉換數據,讓原始信息變成模型真正能夠利用的特徵。 二、核心邏輯 全書圍繞特徵工程的六個環節展開: 1. 特徵理解:明確數據代表什麼、屬於什麼類型和測量等級。2. 特徵增強:處理缺失值、異常尺度和數據質量問題。3. 特徵構建:從原始字段生成模型可使用的新特徵。4. 特徵選擇:刪除無效、冗餘或有害特徵。5. 特徵轉換:通過數學方法改變特徵空間。6. 特徵學習:讓模型從數據中自動學習表示。 整體路徑可以概括爲: 理解問題與數據 → 建立基準模型 → 逐步改造特徵 → 在驗證集上比較 → 將有效步驟組成可復現流水線 特徵工程不是訓練前一次性完成的數據整理,而是與建模、評估和業務理解不斷循環的實驗過程。 三、核心內容 1. 特徵工程決定模型能夠“看見”什麼 模型只能利用輸入中已經表達出來的信息。 例如,同一個時間字段可以只作爲字符串存在,也可以被拆解爲小時、星期、是否節假日和距離某事件的時間。原始信息沒有改變,但後者更容易讓模型發現規律。 特徵工程的作用,是把現實問題翻譯成合適的數學表示。一個更復雜的模型無法自動彌補完全錯誤的數據含義和輸入表達。 2. 首先要分清定量數據與定性數據 定量數據表示數量,例如年齡、價格和距離;定性數據表示類別或屬性,例如顏色、城市和產品類型。 數字形式不一定代表定量數據。郵政編碼、員工編號和電話號碼雖然由數字組成,卻不適合直接計算大小和平均值。 同樣,類別變量也可能包含順序。正確理解字段含義,是選擇編碼、統計方法和模型的前提。 3. 四種數據等級決定可以進行什麼運算 本書使用四種測量等級理解數據: 定類數據:只有類別差異,沒有順序,如城市或血型。定序數據:存在順序,但等級間距未必相等,如滿意度等級。定距數據:差值具有意義,但零點不代表絕對不存在,如攝氏溫度。定比數據:差值和比例都有意義,並具有真實零點,如長度、重量和收入。 不能因爲數據可以用數字表示,就隨意進行加減乘除。數據等級決定了哪些統計量、距離和變換具有實際意義。 4. 缺失值本身也可能包含信息 缺失值可能來自不同原因: 隨機遺漏;採集系統故障;用戶拒絕填寫;字段不適用於該對象;缺失與目標變量或其他特徵有關。 常見處理方式包括刪除記錄、使用均值或中位數填補、按類別填補、用模型預測缺失值,以及增加“是否缺失”的指示特徵。 沒有一種填補方法永遠正確。關鍵是理解缺失機制,並在訓練數據內部學習填補參數,避免使用驗證集或測試集信息。 5. 標準化與歸一化解決尺度差異 不同特徵可能處於完全不同的量級,例如年齡是幾十,收入是幾十萬,距離可能只有小數。 基於距離、梯度或正則化的算法容易受到尺度影響。常用變換包括: 標準化:減去均值,再除以標準差;最小—最大歸一化:把數據映射到固定區間;對數等非線性變換:減弱偏態分佈和極端值影響。 樹模型通常對單調尺度變化不太敏感,但線性模型、K近鄰、支持向量機、神經網絡和PCA往往更需要尺度處理。 6. 類別變量必須根據含義選擇編碼方式 機器學習模型通常不能直接處理字符串類別,因此需要進行編碼。 無序類別常使用獨熱編碼,讓每個類別成爲一個二元特徵。具有明確順序的類別,可以映射爲符合業務含義的有序數值。 直接把“北京、上海、廣州”編碼爲1、2、3,可能讓模型誤以爲城市之間存在大小和距離關係。 高基數類別還會造成維度膨脹,可能需要頻次編碼、哈希、目標編碼或嵌入等方法。使用目標編碼時必須特別防止數據泄漏。 7. 新特徵來自業務知識與數學組合 特徵構建可以把原始字段轉換爲更接近問題機制的變量。 常見方法包括: 從日期提取週期信息;計算兩個數值的比率或差值;對連續變量分箱;添加交互項和多項式項;匯總歷史行爲;統計頻次、最近一次行爲和變化趨勢;從文本中提取詞頻和TF-IDF特徵。 構造新特徵並不是越多越好。每個特徵都應對應合理假設,並通過驗證確認是否真正改善模型。 8. 文本需要被轉換爲數值表示 文本不能直接輸入大多數傳統機器學習模型。 詞袋模型把文檔表示爲詞語出現次數,但忽略詞序;TF-IDF進一步降低常見詞的權重,突出對具體文檔更有區分力的詞語。 N-gram可以保留有限的局部順序,詞向量則把詞映射到連續空間,使語義相近的詞具有接近的表示。 書中介紹的文本方法是自然語言處理的重要基礎。現代大模型採用更復雜的上下文表示,但“把語言轉換爲可計算特徵”的問題並沒有消失。 9. 特徵選擇能夠降低噪聲和複雜度 加入更多特徵不一定提高效果。無關、重複和高噪聲特徵可能增加過擬合風險、訓練成本和解釋難度。 特徵選擇方法大致分爲: 過濾法:根據方差、相關性或統計檢驗獨立評估特徵;包裝法:反覆訓練模型,比較不同特徵子集;嵌入法:在模型訓練過程中完成選擇,如L1正則化和樹模型的重要性。 選擇方法應與任務、模型和數據規模匹配。特徵選擇必須在交叉驗證的訓練折內完成,否則會高估模型效果。 10. 必須先建立基準模型 如果沒有基準,就無法判斷特徵工程是否產生了真實價值。 基準流水線應包含明確的數據劃分、預處理步驟、模型、評價指標和隨機種子。之後每次只改變有限環節,對比驗證結果、訓練成本、穩定性與解釋性。 特徵工程的目標不是讓訓練集得分越來越高,而是提高模型對未見數據的泛化能力。 11. PCA和LDA以不同目標轉換特徵空間 主成分分析(PCA)是一種無監督方法。它尋找數據中方差最大的方向,把相關特徵壓縮成較少的主成分。 線性判別分析(LDA)是一種監督式降維方法。它利用類別標籤,尋找最能區分類別的投影方向。 兩種方法都會生成新的組合特徵,因此可解釋性通常低於直接選擇原始特徵。使用前也往往需要進行尺度處理。 12. 特徵學習讓模型自動發現表示 傳統特徵工程依賴人手設計,而特徵學習讓算法從數據中自動提取表示。 書中介紹受限玻爾茲曼機、伯努利RBM和詞向量等方法,展示如何把學習到的表示接入機器學習流水線。 深度學習進一步擴大了自動特徵學習的能力,在圖像、語音和文本任務中減少了部分人工設計。但它沒有消除數據清洗、目標定義、樣本選擇和評估設計的重要性。 13. 流水線是防止數據泄漏的關鍵工具 填補缺失值、計算均值方差、選擇特徵和降維都需要從數據中學習參數。 如果先在全部數據上完成這些步驟,再劃分訓練集和測試集,測試集信息就會提前進入模型,造成數據泄漏。 正確方法是把預處理和模型封裝成統一流水線: 只在訓練數據上擬合預處理參數 → 對驗證或測試數據應用相同變換 → 再進行預測與評估 流水線同時提高了實驗的可復現性,並減少訓練和部署之間處理邏輯不一致的問題。 14. 案例展示完整的特徵工程循環 書中通過面部識別和酒店評論主題預測,把數據理解、清洗、轉換、降維和模型評估串聯起來。 案例的重點不在於某一個算法,而在於完整工作方式: 明確任務和指標;檢查數據結構;建立基準結果;選擇適當預處理;逐步實驗新特徵;比較泛化效果;固化爲可復現流程。 這套方法可以遷移到分類、迴歸、文本和圖像等不同任務。 四、本書最值得關注的核心觀點 本書最值得關注的觀點是: 特徵工程本質上是把業務知識轉化爲模型可以驗證的假設。 計算年齡、消費頻率或行爲變化趨勢,並不只是技術操作。每一個新特徵背後都隱含着一個判斷:這個因素可能與預測目標有關。 好的特徵工程師不僅會使用編碼、縮放和降維工具,還會持續追問: 這個字段在現實中代表什麼?它是在預測發生前產生的嗎?缺失是隨機的,還是一種行爲信號?這個變換符合業務機制嗎?它在新數據上仍然成立嗎?改善來自真實規律,還是數據泄漏? 特徵工程因此是數據理解、業務理解、統計推理和軟件工程的交叉工作。 五、一段話總結 《特徵工程入門與實踐》系統介紹了把原始數據轉化爲機器學習有效輸入的完整過程:先區分定量、定性及不同測量等級,理解每個字段的真實含義;再處理缺失值、尺度差異和類別編碼,從日期、數值關係與文本中構造新特徵;隨後使用過濾法、包裝法和嵌入法刪除無效或冗餘變量,並通過PCA、LDA、RBM和詞向量等方法轉換或學習新的表示。全書最重要的方法不是堆疊技巧,而是先建立可復現的基準流水線,把所有預處理限制在訓練數據內部,通過交叉驗證判斷每次特徵改造是否真正提高泛化能力。部分特徵學習技術已有年代感,但“理解數據、提出假設、防止泄漏、持續驗證”的核心原則仍然適用於今天的機器學習與大模型應用。

★★★★★

書名:特徵工程入門與實踐 作者:錫南·厄茲代米爾 迪夫婭·蘇薩拉 譯者:莊嘉盛 出版社:人民郵電出版社 出版時間:2019-05-27 ISBN:9787115511645 品牌方:人民郵電出版社有限公司 字數:16.5萬字 評價:76.9% 【作者簡介】 錫南·厄茲代米爾 (Sinan Ozdemir) 數據科學家、數學家、約翰·霍普金斯大學講師,Kylie.ai公司聯合創始人、CTO,在應用數據挖掘、功能分析和算法開發做出基於數據和知識的決策方面擁有豐富的經驗。   迪夫婭·蘇碎拉 (Divya Susarla) 在利用數據方面經驗豐富,在包括投資管理、社會企業諮詢和紅酒營銷的各個產業和領域裏實現並應用過相應的策略。Kylie.ai公司產品經理,目前專注於自然語言處理和生成技術。 【內容簡介】 本書的主題是特徵工程。特徵工程是數據科學和機器學習流水線上的重要一環,包括識別、清洗、構建和發掘數據的新特徵,爲進一步解釋數據並進行預測性分析做準備。 第1章,特徵工程簡介 這一章介紹特徵工程的基本術語,簡要闡釋本書涉及的各類問題。 第2章,特徵理解:我的數據集裏有什麼 這一章介紹我們在實際中會遇見的各類數據,並說明如何處理這些數據。 第3章,特徵增強:清洗數據 這一章介紹填充缺失值的各種方法,以及爲何某些處理方法會使機器學習性能變差。 第4章,特徵構建:我能生成新特徵嗎 這一章介紹如何使用已有的特徵構建新特徵,以擴大數據集。 第5章,特徵選擇:對壞屬性說不 這一章介紹定量的選擇方法,用於判斷哪些特徵值得在數據流水線中保留。 第6章,特徵轉換:數學顯神通 這一章介紹如何使用線性代數和高等數學方法增強數據的剛性結構,從而提升流水線的性能。 第7章,特徵學習:以AI促AI 這一章介紹如何利用最先進的機器學習和人工智能算法,發現人類難以理解的特徵。 第8章,案例分析 這一章介紹了一系列鞏固特徵工程思想的案例。 【讀書筆記】 一、特徵理解 理解特徵的核心是理解數據。包括: ❏ 結構化數據與非結構化數據:簡單來說,結構化數據常用以表格形式呈現,列表示屬性(特徵),行是屬性的對應值(觀察值)。而非結構化數據多爲文本,大部分可以通過一些方法轉化爲結構化數據。 ❏ 定量數據與定性數據:定量數據最好理解,就是觀察值爲數字,用於衡量數量。而定性數據本質上是類別,用於描述性質。 ❏ 數據的4個等級: ①定類等級(nominal level):數據只能用於分類,是定性的,數學上只能做計數操作 ②定序等級(ordinal level):數據可以進行排序,不過數據屬性仍然是類別。數學操作可以進行排序和比較,可以計算中位數和百分位數。 ③定距等級(interval level):數據不光可以排序,還可以進行加減操作。 ④定比等級(ratio level):數據的最高等級,引入絕對零點的概念後,可以做乘除計算。 【①和②爲定性數據,③和④爲定量數據。簡單舉例來說,男和女爲定類數據;酒店的星級如五星、四星爲定序數據;人類的身高、體重、年齡等爲定距數據;工資爲定比數據。】 二、特徵增強 特徵增強的核心是數據清洗,包括: ❏ 識別數據中的缺失值:遍歷數據集,統計每列/每行的空值比例,判斷是否需要刪除或填充。 ❏ 刪除有害數據:對於缺失比例過高、信息量極少或含有明顯錯誤的行(樣本)或列(特徵),直接從數據集中剔除。 ❏ 輸入(填充)缺失值:對仍保留的缺失單元格,採用均值、中位數、衆數或模型預測等方法進行填充。 ❏ 對數據進行歸一化/標準化:選用合適的特徵縮放器(如 Min-Max、Z-Score、Robust Scaler 等)將數值特徵統一到同一尺度。 ①z分數標準化,計算公式爲 z= (x- μ) / σ 在這個公式中: ❏ z是新的值(z分數); •x是單元格原來的值; •μ是該列的均值; •σ是列的標準差。 ②min-max標準化,計算公式爲 m=(x-xmin)/(xmax-xmin) 在這個公式中: •m是新的值; •x是單元格原來的值; •xmin是該列的最小值; •xmax是該列的最大值。 ③行歸一化 對任一樣本 x,若選用 L2 範數,則歸一化操作爲 x̂ = x / ‖x‖₂, 其中 ‖x‖₂ = √(Σ xᵢ²)。經過除法,新向量的長度被縮放成 1。 三、特徵構建 ❏ 檢查數據集; ❏ 填充分類特徵; ❏ 編碼分類變量; ❏ 擴展數值特徵; ❏ 針對文本的特徵構建。 四、特徵選擇 ❏ 在特徵工程中實現更好的性能; •提升模型性能:在刪除冗餘數據後,基於噪聲和不相關數據做出錯誤決策的情況會減少,而且模型可以在重要的特徵上練習,提高預測性能。 •減少訓練和預測時間:因爲擬合的數據更少,所以模型一般在擬合和訓練上有速度提升,讓流水線的整體速度更快。 ❏ 創建基準機器學習流水線; •邏輯迴歸; •K最近鄰(KNN); •決策樹; •隨機森林。 •皮爾遜相關係數(是Pandas默認的)會測量列之間的線性關係。該係數在-1~1變化,0代表沒有線性關係。相關性接近-1或1代表線性關係很強。 ❏ 特徵選擇的類型; 基於統計和基於模型的特徵選擇是特徵工程中兩種核心方法,其核心差異與實現邏輯如下: 一、基於統計的特徵選擇(過濾式方法) 1、核心邏輯 獨立評估每個特徵與目標變量的統計相關性,不依賴具體機器學習模型。 2、常用方法 •相關係數法:計算特徵與目標變量的線性相關性(如皮爾遜係數)。 •信息增益法:衡量特徵對目標變量的信息貢獻度(基於熵)。 •卡方檢驗法:檢驗分類特徵與目標變量的獨立性。 3、特點 •優點:計算高效,可並行處理特徵,適合高維數據預處理。 •侷限:忽略特徵間的相互作用(如冗餘特徵可能同時被保留)。 二、基於模型的特徵選擇(包裹式/嵌入式方法) 1、核心邏輯 利用機器學習模型的內在機制評估特徵重要性。 2、實現方式 •包裹式(Wrapper):將特徵選擇視爲搜索問題(如遞歸特徵消除RFE),通過訓練模型評估特徵子集性能。 例如:用決策樹訓練數據,根據feature_importances_排序特徵。 •嵌入式(Embedded):在模型訓練過程中自動進行特徵選擇(如正則化、樹模型)。 例如:L1正則化使無關特徵係數壓縮至0;隨機森林通過基尼重要性打分。 3、特點 •優點:捕捉特徵交互,選擇更優子集(如模型能識別非線性關係)。 •侷限:計算成本高(需多次訓練模型),可能過擬合訓練數據。 三、方法對比與選擇 計算效率 高(獨立評估) 低(需模型訓練) 特徵交互 無法捕捉 可捕捉(如樹模型、SVM) 適用場景 高維數據降維、快速篩選 模型性能敏感場景 典型工具 SelectKBest、卡方檢驗 RFE、L1正則化、feature_importances_ 四、實踐建議 1、優先嚐試基於統計方法:作爲快速預處理步驟,減少特徵維度。 2、結合模型驗證效果:通過交叉驗證比較不同特徵子集的模型性能(如準確率、AUC)。 3、混合策略:先用統計方法粗篩,再用模型方法精調(如先卡方檢驗後RFE)。 ✦關鍵結論:兩種方法本質是互補——統計方法提供高效性,模型方法提供上下文感知能力。實際應用中需根據數據規模、計算資源及模型需求權衡選擇。 ❏ 選用正確的特徵選擇方法。 下面是一些經驗,可以在判斷特徵選擇方法的優劣時參考。 •如果特徵是分類的,那麼從SelectKBest開始,用卡方或基於樹的選擇器。 •如果特徵基本是定量的(例如本例),用線性模型和基於相關性的選擇器一般效果更好。 •如果是二元分類問題,考慮使用SelectFromModel和SVC,因爲SVC會查找優化二元分類任務的係數。 •在手動選擇前,探索性數據分析會很有益處。不能低估領域知識的重要性。

★★★★★

1. 框架清晰,圍繞特徵工程,從數據分析、特徵理解、特徵增強、特徵構建、特徵選擇、特徵轉換、特徵學習進行介紹,最後給出了兩個綜合型的案例,對特徵工程的範圍進行全面介紹; 2. 對數學和理論介紹較少,側重於實際應用,給出了思路清晰的python代碼,主演基於sklearn庫,也涉及到了一些文本和圖片處理的庫; 3. 對機器學習流水線pipeline進行多次應用,可以基於sklearn自定義數據處理類,加入到pipeline中進行處理,有助於對數據的整體處理,避免數據泄露,同時也可以提高效率。

★★★★★

本書對於統計和機器學習老手相對容易,比較完善地介紹了特徵工程各個模塊(特徵選擇,特徵構建,特徵轉換,特徵學習等)的內容以及相應的典型技術/算法/模型/操作,部分算法比較“老”,但畢竟經典,瞭解一下沒啥害處。由於並不主用Python作pipeline實現,所以看地比較快。

★★★★☆

特徵工程入門與實踐 瑕不掩瑜,講述特徵工程的少有的入門好書,從最基本的特徵選擇到特徵轉換都有通俗易懂的講解與例子展示。對流水線加深了一些理解,更好的規範整個特徵工程流程。 配合github上的相應項目食用效果更佳。 這個Packt組織的項目真多呀,機器學習,深度學習,強化學習,自然語言處理,計算機視覺,爬蟲,TensorFlow ,應有盡有,相應的資料都很不錯,齊全且容易獲取,是學習CS的絕佳資料,五星推薦,還有什麼比暢快的學習使我更快樂呢。

★★★★★

數據特徵工程的基礎,目前只是大概通讀了一遍,至少對數據預處理的重要性和方式方法,有一個清晰的認知。後續可以結合機器學習再次精讀下。

★★★★★

只是大概閱讀了下,先從數據清洗、評價開始,再到數據的預處理、數據特徵的提取,每一步環環相扣,對數據處理流水線有了概念上的瞭解。需要按照最後一章按照數據進行實操,效果更好。

★★★★★

特徵工程(feature engineering)是這樣一個過程:將數據轉換爲能更好地表示潛在問題的特徵,從而提高機器學習性能

★★★★☆

本書內容可能更適合小規模數據,實際生產環境中已經不再通過相似性算法進行特徵篩選了,也不會進行通過主成分分析去壓縮特徵,完全是由算法人工憑經驗選擇,剩下全都交給模型去學,去調超參,甚至構建automl

書籍信息

作者錫南·厄茲代米爾 迪夫婭·蘇薩拉
譯者莊嘉盛
出版社人民郵電出版社
出版時間2019-05-27
ISBN9787115511645
分類科學技術-工業技術
格式EPUB
完結狀態連載中
章節數60