機器學習--稀疏學習

前置知識:

通常學習一次模型的過程如下:我們普遍為了獲取更好的模型效果,直接對原始數據學習,會造成過擬合、需要特征提取;

而若特征提取完后依舊有很多特征,還是會容易過擬合。這時候就需要特征降維和特征選擇。

其中:

特征降維:相當于將高維數據映射到低維空間(會改變數據的表示,低維空間映射后的特征不容易解釋)

特征選擇:根據特征的重要權重,不會改變維度,單純提取部分更合適的特征來使用。(是一種舍棄不重要特征)

特征:

有關特征: 對學習任務有用的特征(保留);

無關特征: 對學習任務無用的特征(舍棄);

特征選擇目的:

1. 減輕特征災難,2. 降低學習難度

特征選擇的常用方法:

1. 前向搜索:先確定一個特征集合和最優子集,依次從特征集合中選出最優特征,將最優特征移入最優子集,迭代此過程直到當前特征不再優于上一輪最優子集結束。

2. 后向搜索:先將整個特征集合作為候選子集,依次去除不相關特征;直到當特征子集不再優于上輪子集結束。

3.?雙向搜索:前向和后向結合;在每輪迭代中,一次選出最優和最差特征,將最優特征移入最優子集,最差特征從候選子集去掉。

子集評價

核心:屬性子集的信息增益:

當我們不斷的往最優子集追加特征時,我們需要不斷的計算是否帶來了信息增益:

例如:我們判斷一個人成績是否合格,當沒有任何特征時,是最混亂的,我們無從猜測。(也就是Ent(D)信息熵值最大),當我們引入了他對這門課程的累計投入學習時長(特征)時,我們就有了一定的了解(降低了我們的混亂程度)。隨著不斷的引入其他特征,我們愈發的能更大概率的確認該學生是否成績合格。

其中:D^v是特征子集,|D|是權重。Ent(D)是當前子集劃分下的信息熵;?Gain(A)是信息增益。v是特征子集對結果的劃分集合;

特征選擇

過濾式

過濾式方法是一種將特征選擇與學習器訓練相分離的特征選擇技術。

????????1)、先將相關特征挑選出來;

????????2)、再使用選擇出的數據子集來訓練學習器。

選擇--Relief算法:

為解決二分類問題

算法思想:

????????使用一個“相關統計量”來度量特征的重要性,該統計量是一個向量,其中每個分量代表著相應特征的重要性,因此我們最終可以根據這個統計量各個分量的大小來選擇出合適的特征子集。

????????對于數據集中的每個樣例xi,首先找出與xi同類別的最近鄰與不同類別的最近鄰,分別稱為猜中近鄰(near-hit)與猜錯近鄰(near-miss),接著便可以分別計算出相關統計量中的每個分量。對于j分量:

\delta ^j = \sum _{i} -diff(x_i^j, x_{i,nh}^j)^2 +diff(x_i^j, x_{i,nm}^j)^2

直觀上理解:對于猜中近鄰,兩者j特征屬性的距離越小越好,對于猜錯近鄰,j屬性距離越大越好。更一般地,若xi為離散屬性diff取海明距離,即相同取0,不同取1;若xi為連續屬性,則diff為曼哈頓距離,即取差的絕對值,Xa在屬性j三的取值均規范化到[0,1],分別計算每個分量,最終取平均便得到了整個相關統計量。

迭代選取xi過程m次,根據\delta ^j更新j權重,最后得到各特征的平均權重。特征值越大的分類能力越強。

算法特點:時間開銷隨采樣次數以及原始數據特征線性增長,運行效率高。

Relief-F:多分類問題

對于j分量,新的計算公式如下:

\delta ^j = \sum _i -diff(x_i^j, x_{i,nh}^j)^2 +\sum_{l\neq k} (pl \times diff(x_i^j, x_{i,l,nm}^j)^2 )

其中pl表示第l類樣本在數據集中所占的比例權重,易知兩者的不同之處在于:標準Relief 只有一個猜錯近鄰,而Relief-F有多個猜錯近鄰。

Relief算法只是在數據集上采樣計算,而不是針對整個訓練集估計特征權重,屬于是高效的過濾式特征選擇算法。

包裹式選擇

直接把最終將要學習的學習器的性能作為特征子集的評價準則。(將特征選擇和模型訓練融合)

包裹方法是一種為給定學習器選擇最有利于其性能的特征子集量身定做)。

比過濾式的特征選擇效果更好。

LVW包裹式算法:拉斯維加斯框架下采用隨機策略進行子集搜索,以最終很累起的誤差為特征自己的評價準則;

LVW拉斯維加斯方法蒙特卡羅方法
算法思路??

1. 隨機產生特征子集;

2. 使用交叉驗證推斷當前子集誤差

3. 多次循環,選擇誤差最小的子集作為最終子集。

1. 基于概率的方式,隨機從特征池中選取一定數量特征

2. 訓練模型,得到模型的性能

3. 選取新的隨機特征,以獲取最佳特征子集。

有時間限制下可能給出也可能不給出解一定有解
無時間限制下有解有解
解的特點采樣越多,越有機會得到最優解,有解必最優采樣越多,解越優,不一定得出最優解
算法特點????????訓練開銷大容易過擬合,訓練開銷大

嵌入式

過濾式中特征選擇與后續學習器完全分離;包裹式則是使用學習器作為特征選擇的評價準則

嵌入式選擇:一種將特征選擇與學習器訓練完全融合的特征選擇方法,即將特征選擇融入學習器的優化過程中。

機器學習的核心任務就是:在模型簡單的基礎上保證模型的契合度(經驗風險指的是模型與訓練數據的契合度,結構風險則是模型的復雜程度)。

嶺回歸ridge regression:

加上了L2范數的最小二乘法,有效地解決了奇異矩陣、過擬合等諸多問題,下面的嵌入式特征選擇則是在損失函數后加上了L2范數。

\min _w \sum_{i=1}^{m} (y_i-w^Tx_i)^2+\lambda ||w||_2^2

而加上了L1范數

\min _w \sum_{i=1}^{m} (y_i-w^Tx_i)^2+\lambda ||w||_1

L1范數會趨向產生少量的特征(稀疏解),其求得的w會有更少的非零分量;

L2會選擇更多的特征,這些特征的權值都會接近于0;

這樣L1范數在特征選擇上就十分有用,而L2范數則具備較強的控制過擬合能力。可以從下面兩個方面來理解:

(1)下降速度:L1范數按照絕對值函數來下降,L2范數按照二次函數來下降。因此在0附近,L1范數的下降速度大于L2范數,故L1范數能很快地下降到0,而L2范數在0附近的下降速度非常慢,因此較大可能收斂在0的附近。

(2)空間限制:L1范數與L2范數都試圖在最小化損失函數的同時,讓權值W也盡可能地小。我們可以將原優化問題看做為下面的問題,即讓后面的規則都小于某個閾值。這樣從圖中可以看出:L1范數相比L2范數更容易得到稀疏解。

稀疏表示與字典學習

稀疏性表現1:數據集D矩陣中,去除很多表示特征的列;

稀疏性表現2:數據集D矩陣中存在很多0元素,且沒有出現在同一列中;

當樣本數據是一個稀疏矩陣時,對學習任務來說會有不少的好處,例如很多問題變得線性可分,儲存更為高效等。這便是稀疏表示與字典學習的基本出發點。

稀疏編碼(sparse coding)/字典學習(dictionary learning)/碼書(codebook)學習:對于一個給定的稠密矩陣,若能通過某種方法找到其合適的稀疏(恰當稀疏)表示,則可以使得學習任務更加簡單高效.

給定一個數據集,字典學習/稀疏編碼指的便是通過一個字典將原數據轉化為稀疏表示,因此最終的目標就是求得字典矩陣B及稀疏表示α,書中受LASSO的啟發,使用變量交替優化的策略能較好地求解。

字典學習:

稀疏學習側重于對樣本進行稀疏性表達的過程;

字典學習側重于學得字典的過程;

壓縮感知

從長度為M的離散信號x, 用奈奎斯特采樣定理采樣得到長度為N的信號y。N<<M時不能還原x。

但是若存在某種線性變化滿足:x = \psi y?時,即可以近乎完美的還原x。

壓縮感知關注的問題:

????????利用信號本身的稀疏性,從部分觀測樣本y中恢復原始信號x。

擴展:形象易懂講解算法II——壓縮感知 - 知乎

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

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

相關文章

[leetcode 前綴和]

525. 連續數組 M :::details 給定一個二進制數組 nums , 找到含有相同數量的 0 和 1 的最長連續子數組&#xff0c;并返回該子數組的長度。 示例 1: 輸入: nums [0,1] 輸出: 2 說明: [0, 1] 是具有相同數量 0 和 1 的最長連續子數組。示例 2: 輸入: nums [0,1,0] 輸出: …

笙默考試管理系統-MyExamTest----codemirror(48)

笙默考試管理系統-MyExamTest----codemirror&#xff08;48&#xff09; 目錄 笙默考試管理系統-MyExamTest----codemirror&#xff08;48&#xff09; 一、 笙默考試管理系統-MyExamTest----codemirror 二、 笙默考試管理系統-MyExamTest----codemirror 三、 笙默考試管…

C/C++端口復用SO_REUSEADDR(setsockopt參數),test ok

端口復用最常用的用途應該是防止服務器重啟時之前綁定的端口還未釋放或者程序突然退出而系統沒有釋放端口。這種情況下如果設定了端口復用&#xff0c;則新啟動的服務器進程可以直接綁定端口。如果沒有設定端口復用&#xff0c;綁定會失敗&#xff0c;提示ADDR已經在使用中——…

前端學習--React(5)

一、useReducer 管理相對復雜的狀態數據 定義一個reducer函數&#xff0c;根據action值的不同返回不同的狀態 在組件中調用useReducer并傳入reducer函數和狀態的初始值 事件發生時&#xff0c;通過dispatch函數分派一個對象&#xff0c;即通知reducer具體返回哪個狀態對應的操…

STM32 寄存器配置筆記——USART DMA發送

一、DMA介紹 直接存儲器存取(DMA)用來提供在外設和存儲器之間或者存儲器和存儲器之間的高速數據傳 輸。無須 CPU 干預&#xff0c;數據可以通過 DMA 快速地移動&#xff0c;這就節省了 CPU 的資源來做其他操作。當產品對于時序要求較嚴格時&#xff0c;外設使用DMA的方式能夠減…

深入了解Java 8日期時間新玩法:DateTimeFormatter與ZoneOffset的使用

推薦語 在這篇文章中&#xff0c;我們將深入探討Java中的DateTimeFormatter和ZoneOffset類的功能和使用方法。這些類是在Java 8中引入的新的日期時間API的一部分&#xff0c;它們為我們提供了更靈活、更易用的日期和時間處理能力。盡管這些類在Java 8中已經出現&#xff0c;但…

ELK(六)—Filebeat安裝部署

目錄 一、介紹1.1特點1.2使用原因1.3結構圖1.4工作流程 二、安裝部署2.1下載2.2啟動2.3監控日志文件2.4自定義字段 三、連接Elasticsearch四、工作原理 一、介紹 Filebeat是一個輕量級的日志和文件數據收集器&#xff0c;屬于Elastic Stack&#xff08;ELK Stack&#xff09;中…

近期Chrome瀏覽器 不知哪個版本升級后原先http強制跳轉到https,導致服務端302強制跳轉到http也沒反應

關于Chrome更新http強制跳轉到https解決方法 近期Chrome瀏覽器 不知哪個版本升級后原先http強制跳轉到https&#xff0c;導致服務端302強制跳轉到http也沒反應一、F12檢查加載的Response Headers中有沒有Non-Authoritative-Reason二、找了資料后得到解決方案&#xff1a;三、找…

云原生數據庫是什么?它的作用是啥?

目前來說&#xff0c;各廠商的云原生數據庫在演進路線上分成了兩個略有不同的路徑來解決不同的問題。 一種是各大公有云廠商選擇的&#xff0c;優先保證上云兼容性的路線&#xff0c;就是基于存算分離架構對傳統數據庫進行改造的路線&#xff1a;通過把大量的日志操作放到后臺…

插入排序——直接插入排序和希爾排序(C語言實現)

文章目錄 前言直接插入排序基本思想特性總結代碼實現 希爾排序算法思想特性總結代碼實現 前言 本博客插入排序動圖和希爾排序視頻參考大佬java技術愛好者&#xff0c;如有侵權&#xff0c;請聯系刪除。 直接插入排序 基本思想 直接插入排序是一種簡單的插入排序法&#xff…

圖空圖床圖片外鏈系統源碼-支持自定義權限策略-圖片大小格式

含視頻搭建教程。 大致功能&#xff1a; 支持本地等多種第三方云儲存 AWS S3、阿里云 OSS、騰訊云 COS、七牛云、又拍云、SFTP、FTP、WebDav、Minio多種數據庫驅動支持&#xff0c;MySQL 5.7、PostgreSQL 9.6、SQLite 3.8.8、SQL Server 2017支持配置使用多種緩存驅動&#xff…

車聯網軟件定義汽車安全攻擊示例

目錄 導言 名詞解釋 TBox QNX介紹 ADB 威脅分析

Flameshot的安裝、配置及使用

概要&#xff1a;本篇主要介紹在Ubuntu22.04環境下&#xff0c;截圖軟件Flameshot的安裝、配置及使用。 一、安裝 推薦命令行安裝 sudo apt install flameshot 二、修改gdm3配置文件 這一步是為了解決截圖時沒有光標的問題&#xff0c;解決方法我是從這里學到的解決flam…

【hugging face】bitsandbytes中8 bit量化的理解

8 位量化使數十億參數規模的模型能夠適應更小的硬件&#xff0c;而不會降低性能。 8 位量化的工作原理如下&#xff1a; 1.從輸入隱藏狀態中按列提取較大值&#xff08;離群值&#xff09;。 2.對 FP16 中的離群值和 int8 中的非離群值執行矩陣乘法。 3.改變非異常值結果以將值…

unity中:搭建在線AR應用

使用Imagine WebAR - Image Tracker插件部署WebGL應用 在使用Imagine WebAR - Image Tracker插件進行WebGL應用開發時&#xff0c;有兩個關鍵知識點需要掌握&#xff1a; 1. 部署到支持HTTPS的服務器 由于WebGL應用需要訪問用戶的攝像頭&#xff0c;因此必須在支持HTTPS的服…

微前端 模塊聯邦技術

目錄 介紹 基本使用 演示用法 初始化配置文件 remote 項目 host 項目 為什么講這個呢&#xff0c;很多人覺得他不是微前端&#xff0c;也有人定義它也是微前端&#xff0c;看怎么理解了&#xff0c;我覺得他是一個去中心化技術&#xff0c;它可以讓多個獨立構建的應用…

【力扣100】9.和為k的子數組

添加鏈接描述 class Solution:def subarraySum(self, nums: List[int], k: int) -> int:# 思路是從第一個元素開始遍歷&#xff0c;加到爆&#xff0c;就把指針向前移一位result0for i in range(len(nums)):# 如果爆了&#xff0c;就向后移一位if i!len(nums)-1:ji1sumnums…

高并發爬蟲用Python語言適合嗎?

不管你用什么語言沒在進行高并發前&#xff0c;有幾點是需要考慮清楚的&#xff0c;&#xff1b;例如&#xff1a;數據集大小&#xff0c;算法、是否有時間和性能方面的制約&#xff0c;是否存在共享狀態&#xff0c;如何調試&#xff08;這里指的是日志、跟蹤策略&#xff09;…

C#云LIS系統源碼 B/S架構,SaaS模式,可擴展性強

基于B/S架構的云LIS檢驗系統源碼&#xff0c;整個系統的運行基于WEB層面&#xff0c;只需要在對應的工作臺安裝一個瀏覽器軟件有外網即可訪問。全套系統采用云部署模式&#xff0c;部署一套可支持多家醫院檢驗科共同使用。 采用.Net Core新的技術框架、DEV報表、前端js封裝、分…

騰訊云CentOS8 jenkins war安裝jenkins步驟文檔

騰訊云CentOS8 jenkins war安裝jenkins步驟文檔 一、安裝jdk 1.1 上傳jdk-11.0.20_linux-x64_bin.tar.gz 1.2 解壓jdk安裝包文件 tar -zxvf jdk*.tar.gz 1.3 在/usr/local 目錄下創建java目錄 cd /usr/local mkdir java 1.4 切到java目錄&#xff0c;把jdk解壓文件改名為jd…