1. 程式人生 > >特徵選擇方法學習筆記(二)

特徵選擇方法學習筆記(二)

     今天我們再換一個角度來看特徵選擇的問題。既然我們還沒有辦法很好的從微觀上定義每個特徵與目標的相似度以及特徵間的冗餘度,那麼我們何不單刀直入,從巨集觀上直接對所有特徵一起下手。也就是直接把所有特徵放到一起,構造一個目標函式,然後優化它求得最合適的特徵子集。那麼方法可以達到這樣的效果呢?其實單刀直入的一起優化不難理解,如果我們不要求選擇特徵子集,那麼訓練分類器所用到的目標函式(最小二乘的形式或者SVM的那個hinge loss的形式)就是把所有特徵放到一起來優化,在這個情況下我們需要求得的是每個特徵前面的權值。說到這兒,可能有的看官已經想到了,權值不就代表著特徵的重要程度嗎?如果按照權值的大小給特徵的重要性排個序,那麼不就選擇除了相對重要的特徵嗎?如果你想到了這一步,恭喜你具備了敏銳的觀察力和分析能力。如果你能繼續想到這樣做唯一的一個缺點就是如果粗暴的擷取排序在前的一部分特徵可能效果並不好,因為
特徵之間是相互影響的,後面雖然貢獻小的特徵但是可能組合起來貢獻就顯著了就更了不起了。記得我們在第一次筆記中說過的嗎?“the m best features are not the best m features”,這句話的確是做特徵選擇的聖經啊,一定要牢記。人總是聰明的,聰明的人總是有辦法的,我們又要單刀直入又要選擇好的特徵子集怎麼辦呢?如果讓排序靠後的特徵權重全都為0,也就是說毫無影響,那豈不就直接可以簡單粗暴的提取前一部分的特徵作為特徵子集了嗎?這個想法太好了,非常簡單和自然,而科學中越自然越簡單的東西往往效果也是越好的。那有什麼辦法來實現呢?還真有,那就是給目標函式加上一個權重的範數約束的正則項,而且是一範約束(L1)。L1約束說白了就是讓所有權重的絕對值相加儘可能的小。加了這樣一個約束後再去求最優化問題,得到的結果就有很多項為0了,約束前的引數可以控制約束的作用大小,如果引數去得打大就說明約束強,那麼大多數都是為0的項。這樣單刀直入的優化方法不但在特徵選擇中得到了很好的運用,其實在所有需要壓縮和選擇的地方都有著很好的運用。這也就是稀疏化的魅力,直接找到了最關鍵的,雖然稀疏但卻強壯。

相關推薦

特徵選擇方法學習筆記

     今天我們再換一個角度來看特徵選擇的問題。既然我們還沒有辦法很好的從微觀上定義每個特徵與目標的相似度以及特徵間的冗餘度,那麼我們何不單刀直入,從巨集觀上直接對所有特徵一起下手。也就是直接把所有特徵放到一起,構造一個目標函式,然後優化它求得最合適的特徵子集。那麼方法可以達到這樣的效果呢?其實單刀直入的一

特徵選擇方法學習筆記

     今天開始會持續學習一些state-of-art的特徵選擇方法,跟大家分享一下學習的心得和這些方法的主要思想,希望能對同志們的工作有所啟發。      首先我們看的是一篇2005年發表在PAMI(IEEE Transactions on Pattern Analys

麥肯錫工作方法學習筆記

絕大多數工作都是為了解決“某種問題”。 也就是說,“某種問題”是起點,“解決問題”是終點。 在保證品質和效率的前提下,解決問題,這就是專家們的工作。 採用麥肯錫解決問題的方式,採用的是“從零開始”的方法,目的在於分析“這個問題是不是真正的問題,問題是否存在

統計學習方法 學習筆記:感知機

相交 with open read move remove 由於 subset rip span 在這一篇筆記中,來了解一下感知機模型(perceptron),我們將要了解感知機的模型,感知機的學習策略和感知機的學習算法,並且使用Python編程來實現書中的例子。

JVM學習筆記--方法調用之靜態分配和動態分配

extends AD 找到 n! sse 運行時 面試 static sys 本篇文章從JVM的角度來理解Java學習中經常提到的重載和重寫。 方法調用:方法調用不等同於方法執行,在Java虛擬機中,方法調用僅僅是為了確定調用哪個版本的方法。方法調用分為解析調用和分派。解析

java學習筆記static方法以及static程式碼塊

一:static方法 1.靜態方法中可以直接呼叫同類中的靜態成員, 但不能直接呼叫非靜態成員。 如果希望在靜態方法中呼叫非靜態變數,可以通過建立類的物件, 然後通過物件來訪問非靜態變數 2.在普通成員方法中,則可以直接訪問同類的非靜態變數和靜態變數, 3.靜態方法中不能直接呼叫非靜態方法, 需要

java學習筆記--物件程式設計-類與方法

面向過程-程式設計正規化-c-行為 面向物件-能進行現實生活的抽象 面向介面程式設計 面向切面程式設計 函數語言程式設計正規化 -Scala,Koltin //lamdba表示式 ()-> { } 面向物件三大特徵: a.封裝        將客觀事物

CSS學習筆記 --CSS選擇

CSS學習筆記(二) --CSS選擇器 這章重點介紹CSS的選擇器 ,利用CSS可以建立易於修改和編輯的規則。 CSS規則結構: CSS規則=選擇器+宣告塊,宣告塊由*個宣告組成,每個宣告是一個鍵值對。 選擇器: 標籤選擇器:通過標籤名來進行匹配: p{

機器學習學習筆記-模型選擇與評估

緒論 模型評估與選擇(3) 線性模型 決策樹 神經網路 支援向量機 貝葉斯分類 整合學習 聚類 降維與度量學習 特徵選擇與稀疏學習 計算學習理論 半監督學習 概率圖模型 規則學習 強化學習 模型評估與選擇 2.1經驗誤差與過擬合 錯誤率:分類錯誤的樣本數

Windows Caffe 學習筆記提取特徵

這次的筆記是記錄如何從預先訓練的模型中提取特徵。仍然是由於Windows版本Caffe的問題,繞了一些彎路。 正文如下: 1.選擇執行的資料 在examples/下新建一個資料夾,命名為_te

HMM學習筆記:監督學習方法與Baum-Welch演算法

學習隱馬爾可夫模型(HMM),主要就是學習三個問題:概率計算問題,學習問題和預測問題。在前面講了概率計算問題:前後向演算法推導,這裡接著講學習問題,即求模型 λ

Java 多執行緒 學習筆記停止執行緒的幾種方法

1.異常法: package test; import exthread.MyThread; import exthread.MyThread; public class Run { pu

Effective Java學習筆記對於所有物件都通用的方法

Object是一個具體類,但是設計他主要是為了擴充套件,他所有的非final方法(equals,toString,hashCode,clone,finalize)都是要被覆蓋的,並且任何一個類覆蓋非final方法時都要遵守通用原則,以便其他遵守這些預定的類能夠一同運作,

J2EE系列之Struts2學習筆記---使用get/set方法自動獲取/設定引數值

上一篇部落格中講了struts2的配置以及實現了一個簡單的helloWorld程式。這一片部落格講一下如何使用get/set函式來自動獲取/設定引數值。 1.開啟eclipse,新建一個名為SecondLearnStruts2Chap02的Dynamic Web Proje

JQuery學習筆記——選擇

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-

黑馬程式設計師-IOS學習筆記常用關鍵字和方法

------Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流!------- 常用關鍵字和方法: 一.記憶體管理情況 1- autorelease,當用戶的程式碼在持續執行時,自動釋放池是不會被銷燬的,這段時間內使用者可以安全地使用自動釋放的物件。當

js學習筆記下拉選單項選擇並跳轉

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE>

php laravel框架學習筆記 數據庫操作

true 數據 mar sql show top 一行 ati del 原博客鏈接:http://www.cnblogs.com/bitch1319453/p/6810492.html mysql基本配置 你可用通過配置環境變量,使用cmd進入mysql,當然還有一種東

java學習筆記圖形用戶接口

star strong per getwidth cep runnable graphics s2d gb2 這個學期主要放在ACM比賽上去了,比賽結束了。不知不覺就15周了,這周就要java考試了,復習一下java吧。java的學習的目的還是讓我們學以致用,讓我們可以

數據結構學習筆記 線性表的順序存儲和鏈式存儲

出錯 初始化 node != test span 輸入 des val 線性表:由同類型數據元素構成有序序列的線性結構  --》表中元素的個數稱為線性表的長度  --》沒有元素時,成為空表  --》表起始位置稱表頭,表結束位置稱表尾 順序存儲:    1 package