機器學習的特征工程(特征構造、特征選擇、特征轉換和特征提取)詳解

特征工程是機器學習中至關重要的一步,它直接影響模型的性能和泛化能力。特征構造、特征選擇、特征轉換和特征提取——構成了特征工程的核心流程。下面我來系統地梳理一下它們的定義、方法和應用場景:

整理 by?Moshow鄭鍇@https://zhengkai.blog.csdn.net/

🏗? 特征工程總覽

特征工程的目標是從原始數據中提取出對模型有用的信息,使模型更容易學習、預測更準確。它包括以下幾個部分:

🔧 特征構造(Feature Construction)

定義:基于原始特征創建新的特征,以增強模型的表達能力。

方法示例

  • 數學組合:如 BMI = weight / height2

  • 時間衍生:從時間戳中提取“小時”、“星期幾”、“是否節假日”等

  • 文本處理:從文本中提取關鍵詞、情感分數、詞頻等

  • 分組統計:如每個用戶的平均購買金額、點擊次數等

特征類型方法名稱方法說明示例應用場景
數值型特征數學組合將多個數值特征進行加減乘除等組合,構造新特征BMI = 體重 / 身高2
分箱(Binning)將連續變量離散化為區間,如年齡分組年齡 → 青年/中年/老年
比率構造構造比例特征,反映相對關系銷售額 / 訪問量 → 轉化率
差值構造構造差異特征,捕捉變化趨勢當前價格 - 昨日價格
類別型特征頻率編碼用類別出現頻率替代原始類別用戶地區 → 地區訪問頻率
目標編碼(Target Encoding)用類別對應的目標變量均值進行編碼用戶類型 → 平均購買金額
組合特征將多個類別特征組合成新的交叉特征性別 + 地區 → 性別_地區組合
時間型特征時間衍生特征從時間戳中提取年、月、日、小時、星期幾等交易時間 → 是否周末、是否夜間
時間差值計算兩個時間點之間的間隔注冊時間與首次購買時間差
滾動窗口統計在時間序列中計算滑動窗口內的均值、最大值等最近7天平均點擊量
文本特征關鍵詞提取(TF-IDF)提取文本中的關鍵詞并量化其重要性評論文本 → 關鍵詞權重
情感分數分析文本情感傾向,構造情感強度特征評論 → 情感得分(正/負)
文本長度統計文本長度、詞數等作為特征評論 → 字符數、詞數
統計特征分組統計按某個類別分組后計算均值、最大值、標準差等用戶ID → 平均購買金額
排名特征在組內對某個數值特征進行排序,構造排名特征用戶在地區內的購買排名
聚合特征對多個相關特征進行聚合,如求和、均值多個商品評分 → 平均評分

🧠 特征選擇(Feature Selection)

特征選擇是為了去除冗余或無關特征,提升模型性能。嵌入方法(Embedded Methods) 是其中一種。

典型方法

  • Lasso 回歸(L1 正則化):會將部分特征系數壓縮為零

  • 決策樹/隨機森林:通過特征重要性(feature importance)進行選擇

  • 基于梯度提升(如 XGBoost)的特征評分

方法類別方法名稱原理簡述適用場景/模型示例
過濾法(Filter)方差選擇法(Variance Threshold)刪除方差低于閾值的特征,認為其信息量少預處理階段,適用于所有模型
相關系數法(Pearson/Spearman)計算特征與目標變量的相關性,選擇相關性高的特征回歸任務、線性模型
卡方檢驗(Chi-Square)評估特征與類別之間的獨立性,適用于分類任務分類任務,如樸素貝葉斯、KNN
信息增益(Information Gain)衡量特征對目標變量的信息貢獻決策樹、隨機森林
互信息(Mutual Information)衡量兩個變量之間的依賴關系分類與回歸任務
包裹法(Wrapper)遞歸特征消除(RFE)反復訓練模型并移除最不重要的特征,直到達到預期維度支持向量機、線性回歸等
前向/后向選擇從空集開始逐步添加或從全集開始逐步移除特征,評估模型性能變化小規模數據集,模型訓練成本高
嵌入法(Embedded)Lasso 回歸(L1 正則化)自動將部分特征系數壓縮為零,實現特征選擇線性模型、邏輯回歸
決策樹/隨機森林特征重要性利用樹模型的特征重要性評分進行選擇樹模型(如 XGBoost、LightGBM)
正則化的邏輯回歸/線性模型通過正則項控制特征數量,保留對目標影響大的特征高維稀疏數據

🔄 特征轉換(Feature Transformation)

定義:對特征進行數學變換,使其更適合模型學習。

常見方法

方法說明
歸一化(Min-Max)將特征縮放到 [0,1] 區間,適用于距離度量模型(如KNN)
標準化(Z-score)將特征轉換為均值為0、標準差為1的分布,適用于線性模型、SVM等
對數變換處理偏態分布,減少極端值影響,如將收入、點擊次數等取對數
Box-Cox / Yeo-Johnson更靈活的冪變換,適用于非正值數據

詳細方法

特征類型轉換方法名稱方法說明示例應用場景
數值型特征標準化(Standardization)將特征轉換為均值為0、標準差為1的分布適用于線性模型、SVM
歸一化(Min-Max Scaling)將特征縮放到固定區間(如0~1)圖像像素處理、神經網絡輸入
對數變換(Log Transform)緩解右偏分布,提高模型穩定性收入、交易金額等長尾分布
Box-Cox變換用于將非正態分布轉換為近似正態分布金融風險建模
Yeo-Johnson變換Box-Cox的擴展,支持負值含負值的數值特征
多項式擴展(Polynomial Features)構造高階特征以捕捉非線性關系回歸模型中提升擬合能力
類別型特征One-Hot編碼將每個類別轉換為一個獨立的二元特征決策樹、邏輯回歸
標簽編碼(Label Encoding)將類別映射為整數樹模型(如XGBoost)
二元編碼(Binary Encoding)將類別轉換為二進制形式,減少維度高基數類別特征
哈希編碼(Hashing Encoding)使用哈希函數將類別映射到固定維度空間文本分類、推薦系統
時間型特征周期性轉換(Sin/Cos Encoding)將時間特征轉換為正弦/余弦形式以保留周期性信息小時、星期幾等周期性時間特征
時間差轉換計算時間間隔作為新特征注冊時間與購買時間差
時間窗口聚合在時間序列中進行滑動窗口統計最近7天平均訪問量
文本特征TF-IDF轉換計算詞頻-逆文檔頻率,衡量詞的重要性評論分析、文本分類
Word Embedding(詞嵌入)將詞轉換為向量,保留語義關系NLP模型輸入
文本向量化(CountVectorizer)將文本轉換為詞頻向量基礎文本建模
其他轉換主成分分析(PCA)降維方法,保留主要信息減少冗余高維數據可視化、加速訓練
特征離散化將連續變量轉換為離散類別年齡 → 年齡段
分組統計轉換按類別分組后計算均值、最大值等統計量用戶ID → 平均購買金額

🧬 特征提取(Feature Extraction)

定義:從原始數據中提取出新的表示方式,通常用于高維數據降維。

常見方法

  • 主成分分析(PCA):線性降維,保留最大方差方向

  • 線性判別分析(LDA):用于分類任務的降維

  • 自編碼器(Autoencoder):通過神經網絡學習壓縮表示

  • t-SNE / UMAP:用于可視化的非線性降維方法

全部方法:

方法類別方法名稱方法說明應用場景示例
線性降維主成分分析(PCA)將高維數據投影到低維空間,保留最大方差方向的信息圖像壓縮、數據可視化
線性判別分析(LDA)尋找能最大化類別間距離、最小化類內距離的投影方向分類任務中的降維
非線性降維核主成分分析(Kernel PCA)在高維核空間中進行PCA,捕捉非線性特征關系非線性結構數據降維
t-SNE保留局部結構的非線性降維方法,常用于高維數據可視化NLP嵌入可視化、圖像聚類可視化
UMAP保留全局和局部結構的非線性降維方法,比t-SNE計算更快大規模數據可視化
矩陣分解奇異值分解(SVD)將矩陣分解為奇異向量和奇異值,提取主要成分潛在語義分析(LSA)、推薦系統
非負矩陣分解(NMF)分解成非負矩陣,適合可解釋性需求文本主題提取
統計特征傅里葉變換(FFT)將時域信號轉換到頻域,提取頻譜特征語音分析、振動信號檢測
小波變換(Wavelet Transform)提取不同時間尺度下的頻率信息時間序列分析、圖像壓縮
深度學習自編碼器(Autoencoder)通過神經網絡編碼-解碼結構學習低維表示圖像去噪、特征壓縮
卷積神經網絡特征(CNN Features)利用卷積層提取空間局部特征圖像識別、目標檢測
詞嵌入(Word Embedding)將詞語映射到連續向量空間,保留語義關系NLP任務(Word2Vec、GloVe、BERT)
嵌入方法圖嵌入(Graph Embedding)將圖結構映射到低維向量空間,保留節點關系社交網絡分析、知識圖譜
序列嵌入(Sequence Embedding)將時序/序列數據編碼為向量推薦系統、行為預測

💡 小貼士

  • 如果是高維稠密數值數據,PCA/LDA 是首選

  • 如果是非線性分布,可以試試 Kernel PCA、UMAP

  • 深度學習任務中,CNN/RNN 提取的高層特征往往比人工特征更具表現力

  • 文本類任務中,詞嵌入技術幾乎是標配

  • ?整理 by?Moshow鄭鍇@https://zhengkai.blog.csdn.net/

📊 特征工程性能評估指標

指標類別具體指標說明典型用途/場景
模型性能類準確率(Accuracy)正確預測占總樣本的比例分類任務,類別均衡時適用
精確率(Precision)預測為正的樣本中實際為正的比例正樣本代價高時(如詐騙檢測)
召回率(Recall)實際為正的樣本中被正確預測的比例追求漏報率低(如疾病篩查)
F1-Score精確率與召回率的調和平均平衡Precision與Recall
ROC-AUC衡量分類器對正負樣本的區分能力二分類、類別不均衡
RMSE/MAE回歸任務中預測值與真實值的偏差連續值預測(如房價預測)
特征質量類特征重要性(Feature Importance)模型輸出的各特征貢獻度決策樹、XGBoost、LightGBM
相關性(Correlation)與目標變量或其他特征的相關程度過濾冗余或多重共線性
信息增益(Information Gain)特征對類別區分的貢獻分類模型、樹模型
稀疏度(Sparsity)特征矩陣中零值的比例稀疏矩陣優化、文本特征
方差(Variance)特征取值的分散程度,低方差特征信息量少特征篩選前的快速過濾

💡 小貼士

  • 在評估特征工程效果時,應固定模型和數據集,只比較特征變化前后的指標差異,才能確保改進是由特征工程帶來的

  • 如果是高維稀疏特征,可以多看稀疏度、特征重要性等;如果是時序或非結構化數據,則可結合任務相關指標

  • 有時單個特征看起來不強,但和其他特征組合后效果更好,需要通過模型性能指標驗證

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/93297.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/93297.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/93297.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Force Dimension觸覺力反饋設備在外科手術機器人遙操作和訓練中的應用

觸覺力反饋設備通過傳感器-執行器-信號處理閉環系統,在外科手術機器人領域實現了從遠程手術操作到虛擬訓練的全流程革新。外科手術機器人外科醫生廣博的專業知識往往受限于他們的主要工具——手。機器人的精確度和靈活性遠遠超過人手。然而,目前機器人還…

【網絡與爬蟲 00】試讀

網絡爬蟲技術全棧指南:從入門到AI時代的數據采集革命 關鍵詞:網絡爬蟲、Python爬蟲、數據采集、反爬技術、分布式爬蟲、AI爬蟲、Scrapy框架、自動化數據提取、爬蟲架構設計 摘要:本專欄是最全面的網絡爬蟲技術指南,涵蓋從基礎框架…

[Chat-LangChain] 前端用戶界面 | 核心交互組件 | 會話流管理

鏈接:https://python.langchain.com/docs/tutorials/qa_chat_history/ Chat-LangChain技術棧 : LangChainLangGraphNext.jsWeaviate (向量存儲)OpenAI (嵌入模型) docs:chat-langchain Chat LangChain 是一個智能聊天機器人,專為解答Lang…

編寫和運行 Playbook

編寫和運行 Playbook Playbook 介紹 adhoc 命令可以作為一次性命令對一組主機運行一項簡單的任務。不過,若要真正發揮Ansible的能力,需要使用功能 playbook。 playbook 是一個文本文件,其中包含由一個或多個按特定順序運行的play組成的列表。…

uniapp手機端video標簽層級過高問題

當我們想以視頻作為背景時,其他dom通過定位顯示在視頻上方,h5頁面上調試發現可以正常使用,效果如下: 當放在手機上看,會發現,僅僅剩一個視頻,本應在視頻上層的元素不見了。 經過一番排查&#x…

【MyBatis批量更新實現】按照list傳入批量更新

學習目標&#xff1a; <update id"updateModelEngineeringSpatialNode" parameterType"com.mxpt.model.manage.domain.ModelEngineeringSpatialNode">update model_engineering_spatial_node<trim prefix"SET" suffixOverrides",&…

VOFA+ 顯示數據、波形

本篇&#xff0c;以最常用的串口通信作展示&#xff0c;示范如何通過VOFA顯示數據波形。 一、VOFA 下載 VOFA 是一款面向嵌入式開發的上位機軟件&#xff0c;專注于硬件數據實時可視化與調試。它通過高效協議&#xff08;如FireWater、JustFloat&#xff09;將原始字節流轉化為…

MySQL 插入數據提示字段超出范圍?一招解決 DECIMAL 類型踩坑

MySQL 插入數據提示字段超出范圍&#xff1f;一招解決 DECIMAL 類型踩坑 在日常數據庫操作中&#xff0c;我們經常會遇到各種字段類型相關的問題。今天就來聊聊一個常見的錯誤&#xff1a;插入數據時提示字段值超出范圍&#xff0c;以實際案例帶你搞懂 MySQL 中 DECIMAL 類型的…

一周學會Matplotlib3 Python 數據可視化-繪制誤差條形圖

鋒哥原創的Matplotlib3 Python數據可視化視頻教程&#xff1a; 2026版 Matplotlib3 Python 數據可視化 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili 課程介紹 本課程講解利用python進行數據可視化 科研繪圖-Matplotlib&#xff0c;學習Matplotlib圖形參數基本設置&…

JVM垃圾回收器

垃圾回收算法標記-復制缺點&#xff1a;內存利用率低&#xff0c;有一塊區域無法使用。標記-清除缺點&#xff1a;1. 效率問題 (如果需要標記的對象太多&#xff0c;效率不高)2. 空間問題&#xff08;標記清除后會產生大量不連續的碎片&#xff09;標記-整理分代收集根據對象存…

科研工具的一些注意事項

Origin Origin導入數據之后&#xff0c;可以考慮 [刪除數據連接器…] 導入數據之后&#xff0c;刪除數據連接&#xff0c;這樣當原來的文件移動之后&#xff0c;就不影響origin文件里面的數據。不然就會出現空白數據&#xff1a;當然&#xff0c;沒有數據了也可以加載出來&…

美國服務器環境下Windows容器工作負載智能彈性伸縮

在北美數據中心加速數字化轉型的今天&#xff0c;企業客戶日益重視Windows容器工作負載的智能化管理。本文將深入探討基于Azure Stack HCI&#xff08;混合云基礎設施&#xff09;的彈性伸縮方案如何突破傳統資源調度瓶頸&#xff0c;通過分析指標收集、策略配置、混合云聯動三…

歐姆龍CP系列以太網通訊實現上位機與觸摸屏監控

一、行業痛點在現代工業生產中&#xff0c;自動化生產線的控制系統的高效性與智能化程度對生產效率和產品質量有著至關重要的影響。然而&#xff0c;許多傳統工業生產線中使用的歐姆龍CP系列系列PLC以太網模塊&#xff0c;由于自身設計原因&#xff0c;并未配備以太網接口&…

【大語言模型 00】導讀

【大語言模型00】導讀&#xff1a;你的LLM全棧工程師進階之路關鍵詞&#xff1a;大語言模型、LLM、Transformer、深度學習、AI工程化、全棧開發、技術路線圖摘要&#xff1a;這是一份完整的大語言模型學習指南&#xff0c;涵蓋從數學基礎到商業落地的200篇深度文章。無論你是AI…

Business Magic

題目描述There are n stores located along a street, numbered from 1 to n from nearest to farthest. Last month, the storek had a net profit of rk . If rk is positive, it represents a profit of rk dollars; if rk is negative, it represents a loss of ?rk dolla…

在ubuntu系統上離線安裝jenkins的做法

作者&#xff1a;朱金燦 來源&#xff1a;clever101的專欄 1.安裝java環境和下載war包&#xff1a; Jenkins 依賴于 Java 環境&#xff08;OpenJDK 11 或更高版本&#xff09;&#xff1a; # 安裝OpenJDK 11和字體依賴 sudo dpkg -i openjdk-11-jre-headless_*.deb fontconfi…

圖像相似度算法匯總及Python實現

下面整理了一些圖像相似度算法&#xff0c;可根據不同的需求選擇不同的算法&#xff0c;對每種算法進行了簡單描述并給出Python實現&#xff1a; 1. 基于像素的算法&#xff1a; (1).MSE(Mean Squared Error)&#xff1a;均方誤差&#xff0c;通過計算兩幅圖像對應像素值差的平…

IO流與單例模式

單例模式 單例模式是指一個類只能有一個對象。 餓漢模式 在單例模式下&#xff0c;在程序開始&#xff08;main函數運行前&#xff09;的時候創建一個對象&#xff0c;這之后就不能再創建這個對象。 class HungryMan { public:static HungryMan* getinstance(){return &ins…

Java設計模式之依賴倒置原則使用舉例說明

示例1&#xff1a;司機駕駛汽車 問題場景&#xff1a;司機類直接依賴奔馳車類&#xff0c;新增寶馬車需修改司機類代碼。 // 未遵循DIP class Benz { public void run() { /*...*/ } } class Driver { public void drive(Benz benz) { benz.run(); } } // 遵循DIP&#xff1a;…

【Docker】openEuler 使用docker-compose部署gitlab-ce

docker-compose配置 services:gitlab:image: gitlab/gitlab-ce:latestcontainer_name: gitlabrestart: alwayshostname: gitlab.example.comenvironment:GITLAB_OMNIBUS_CONFIG: |# Add any other gitlab.rb configuration here, each on its own lineexternal_url https://gi…