在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

通過強化學習策略進行特征選擇

穎脈Imgtec ? 2024-06-05 08:27 ? 次閱讀

來源:DeepHub IMBA


特征選擇是構建機器學習模型過程中的決定性步驟。為模型和我們想要完成的任務選擇好的特征,可以提高性能。
如果我們處理的是高維數據集,那么選擇特征就顯得尤為重要。它使模型能夠更快更好地學習。我們的想法是找到最優數量的特征和最有意義的特征。

在本文中,我們將介紹并實現一種新的通過強化學習策略的特征選擇。我們先討論強化學習,尤其是馬爾可夫決策過程。它是數據科學領域的一種非常新的方法,尤其適用于特征選擇。然后介紹它的實現以及如何安裝和使用python庫(FSRLearning)。最后再使用一個簡單的示例來演示這一過程。


強化學習:特征選擇的馬爾可夫決策問題

強化學習(RL)技術可以非常有效地解決像游戲解決這樣的問題。而強化學習的概念是基于馬爾可夫決策過程(MDP)。這里的重點不是要深入定義而是要大致了解它是如何運作的,以及它如何對我們的問題有用。

強化學習背后的想法是,代理從一個未知的環境開始。采取行動來完成任務。在代理在當前狀態和他之前選擇的行為的作用下,會更傾向于選擇一些行為。在每到達一個新狀態并采取行動時,代理都會獲得獎勵。以下是我們需要為特征選擇而定義的主要參數:狀態、行動、獎勵、如何選擇行動首先,狀態是數據集中存在的特征的子集。例如,如果數據集有三個特征(年齡,性別,身高)加上一個標簽,則可能的狀態如下:

[] --> Empty set
[Age], [Gender], [Height] --> 1-feature set
[Age, Gender], [Gender, Height], [Age, Height] --> 2-feature set
[Age, Gender, Height] --> All-feature set

在一個狀態中,特征的順序并不重要,我們必須把它看作一個集合,而不是一個特征列表。

對于動作,我們可以從一個子集轉到任何一個尚未探索的特性的子集。在特征選擇問題中,動作就是是選擇當前狀態下尚未探索的特征,并將其添加到下一個狀態。以下是一些可能的動作:

[Age] -> [Age, Gender]
[Gender, Height] -> [Age, Gender, Height]

下面是一個不可能動作的例子:

[Age] -> [Age, Gender, Height]
[Age, Gender] -> [Age]
[Gender] -> [Gender, Gender]

我們已經定義了狀態和動作,還沒有定義獎勵。獎勵是一個實數,用于評估狀態的質量。

在特征選擇問題中,一個可能的獎勵是通過添加新特征而提高相同模型的準確率指標。下面是一個如何計算獎勵的例子:

[Age] --> Accuracy = 0.65
[Age, Gender] --> Accuracy = 0.76
Reward(Gender) = 0.76 - 0.65 = 0.11

對于我們首次訪問的每個狀態,都會使用一組特征來訓練一個分類器(模型)。這個值存儲在該狀態和對應的分類器中,訓練分類器的過程是費時費力的,所以我們只訓練一次。因為分類器不會考慮特征的順序,所以我們可以將這個問題視為圖而不是樹。在這個例子中,選擇“性別”作為模型的新特征的操作的獎勵是當前狀態和下一個狀態之間的準確率差值。

6cec0106-22d2-11ef-bd4a-92fbcf53809c.jpg

在上圖中,每個特征都被映射為一個數字(“年齡”為1,“性別”為2,“身高”為3)。我們如何從當前狀態中選擇下一個狀態或者我們如何探索環境呢?

我們必須找到最優的方法,因為如果我們在一個有10個特征的問題中探索所有可能的特征集,那么狀態的數量將是

10! + 2 = 3 628 802

這里的+2是因為考慮一個空狀態和一個包含所有可能特征的狀態。我們不可能在每個狀態下都訓練一個模型,這是不可能完成的,而且這只是有10個特征,如果有100個特征那基本上就是無解了。

但是在強化學習方法中,我們不需要在所有的狀態下都去訓練一個模型,我們要為這個問題確定一些停止條件,比如從當前狀態隨機選擇下一個動作,概率為epsilon(介于0和1之間,通常在0.2左右),否則選擇使函數最大化的動作。對于特征選擇是每個特征對模型精度帶來的獎勵的平均值。

這里的貪心算法包含兩個步驟:

1、以概率為epsilon,我們在當前狀態的可能鄰居中隨機選擇下一個狀態

2、選擇下一個狀態,使添加到當前狀態的特征對模型的精度貢獻最大。為了減少時間復雜度,可以初始化了一個包含每個特征值的列表。每當選擇一個特性時,此列表就會更新。使用以下公式,更新是非常理想的:

6d0a6920-22d2-11ef-bd4a-92fbcf53809c.jpg

AORf:特征“f”帶來的獎勵的平均值

K:f被選中的次數

V(F):特征集合F的狀態值(為了簡單描述,本文不詳細介紹)

所以我們就找出哪個特征給模型帶來了最高的準確性。這就是為什么我們需要瀏覽不同的狀態,在在許多不同的環境中評估模型特征的最全局準確值。

因為目標是最小化算法訪問的狀態數,所以我們訪問的未訪問過的狀態越少,需要用不同特征集訓練的模型數量就越少。因為從時間和計算能力的角度來看,訓練模型以獲得精度是最昂貴方法,我們要盡量減少訓練的次數。

最后在任何情況下,算法都會停止在最終狀態(包含所有特征的集合)而我們希望避免達到這種狀態,因為用它來訓練模型是最昂貴的。

上面就是我們針對于特征選擇的強化學習描述,下面我們將詳細介紹在python中的實現。


用于特征選擇與強化學習的python庫

有一個python庫可以讓我們直接解決這個問題。但是首先我們先準備數據

我們直接使用UCI機器學習庫中的數據:

#Get the pandas DataFrame from the csv file (15 features, 690 rows)
australian_data = pd.read_csv('australian_data.csv', header=None)

#DataFrame with the features
X = australian_data.drop(14, axis=1)

#DataFrame with the labels
y = australian_data[14]

然后安裝我們用到的庫

pip install FSRLearning

直接導入

from FSRLearning import Feature_Selector_RL

Feature_Selector_RL類就可以創建一個特性選擇器。我們需要以下的參數

feature_number (integer): DataFrame X中的特性數量

feature_structure (dictionary): 用于圖實現的字典

eps (float [0;1]): 隨機選擇下一狀態的概率,0為貪婪算法,1為隨機算法

alpha (float [0;1]): 控制更新速率,0表示不更新狀態,1表示經常更新狀態

gamma (float[0,1]): 下一狀態觀察的調節因子,0為近視行為狀態,1為遠視行為

nb_iter (int): 遍歷圖的序列數

starting_state (" empty "或" random "): 如果" empty ",則算法從空狀態開始,如果" random ",則算法從圖中的隨機狀態開始

所有參數都可以機型調節,但對于大多數問題來說,迭代大約100次就可以了,而epsilon值在0.2左右通常就足夠了。起始狀態對于更有效地瀏覽圖形很有用,但它非常依賴于數據集,兩個值都可以測試。

我們可以用下面的代碼簡單地初始化選擇器:

fsrl_obj = Feature_Selector_RL(feature_number=14, nb_iter=100)

與大多數ML庫相同,訓練算法非常簡單:

results = fsrl_obj.fit_predict(X, y)

下面是輸出的一個例子:

6d2489ea-22d2-11ef-bd4a-92fbcf53809c.jpg

輸出是一個5元組,如下所示:

DataFrame X中特性的索引(類似于映射)

特征被觀察的次數

所有迭代后特征帶來的獎勵的平均值

從最不重要到最重要的特征排序(這里2是最不重要的特征,7是最重要的特征)

全局訪問的狀態數

還可以與Scikit-Learn的RFE選擇器進行比較。它將X, y和選擇器的結果作為輸入。

fsrl_obj.compare_with_benchmark(X, y, results)

輸出是在RFE和FSRLearning的全局度量的每一步選擇之后的結果。它還輸出模型精度的可視化比較,其中x軸表示所選特征的數量,y軸表示精度。兩條水平線是每種方法的準確度中值。

6d47de36-22d2-11ef-bd4a-92fbcf53809c.jpg

Average benchmark accuracy : 0.854251012145749, rl accuracy : 0.8674089068825909
Median benchmark accuracy : 0.8552631578947368, rl accuracy : 0.868421052631579
Probability to get a set of variable with a better metric than RFE : 1.0
Area between the two curves : 0.17105263157894512

可以看到RL方法總是為模型提供比RFE更好的特征集。

另一個有趣的方法是get_plot_ratio_exploration。它繪制了一個圖,比較一個精確迭代序列中已經訪問節點和訪問節點的數量。

6d674186-22d2-11ef-bd4a-92fbcf53809c.jpg

由于設置了停止條件,算法的時間復雜度呈指數級降低。即使特征的數量很大,收斂性也會很快被發現。下面的圖表示一定大小的集合被訪問的次數。

6d8878e2-22d2-11ef-bd4a-92fbcf53809c.jpg

在所有迭代中,算法訪問包含6個或更少變量的狀態。在6個變量之外,我們可以看到達到的狀態數量正在減少。這是一個很好的行為,因為用小的特征集訓練模型比用大的特征集訓練模型要快。


總結

我們可以看到RL方法對于最大化模型的度量是非常有效的。它總是很快地收斂到一個有趣的特性子集。該方法在使用FSRLearning庫的ML項目中非常容易和快速地實現。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 人工智能
    +關注

    關注

    1792

    文章

    47497

    瀏覽量

    239194
  • 機器學習
    +關注

    關注

    66

    文章

    8428

    瀏覽量

    132834
  • 強化學習
    +關注

    關注

    4

    文章

    268

    瀏覽量

    11273
收藏 人收藏

    評論

    相關推薦

    反向強化學習的思路

    強化學習的另一種策略(二)
    發表于 04-03 12:10

    深度強化學習實戰

    一:深度學習DeepLearning實戰時間地點:1 月 15日— 1 月18 日二:深度強化學習核心技術實戰時間地點: 1 月 27 日— 1 月30 日(第一天報到 授課三天;提前環境部署 電腦
    發表于 01-10 13:42

    將深度學習強化學習相結合的深度強化學習DRL

    深度強化學習DRL自提出以來, 已在理論和應用方面均取得了顯著的成果。尤其是谷歌DeepMind團隊基于深度強化學習DRL研發的AlphaGo,將深度強化學習DRL成推上新的熱點和高度,成為人工智能歷史上一個新的里程碑。因此,深
    發表于 06-29 18:36 ?2.8w次閱讀

    斯坦福提出基于目標的策略強化學習方法——SOORL

    為了達到人類學習的速率,斯坦福的研究人員們提出了一種基于目標的策略強化學習方法——SOORL,把重點放在對策略的探索和模型選擇上。
    的頭像 發表于 06-06 11:18 ?5434次閱讀
    斯坦福提出基于目標的<b class='flag-5'>策略</b><b class='flag-5'>強化學習</b>方法——SOORL

    什么是強化學習?純強化學習有意義嗎?強化學習有什么的致命缺陷?

    強化學習是人工智能基本的子領域之一,在強化學習的框架中,智能體通過與環境互動,來學習采取何種動作能使其在給定環境中的長期獎勵最大化,就像在上述的棋盤游戲寓言中,你
    的頭像 發表于 07-15 10:56 ?1.8w次閱讀
    什么是<b class='flag-5'>強化學習</b>?純<b class='flag-5'>強化學習</b>有意義嗎?<b class='flag-5'>強化學習</b>有什么的致命缺陷?

    如何使用深度強化學習進行機械臂視覺抓取控制的優化方法概述

    針對提高視覺圖像特征與優化控制之間契合度的問題,本文提出一種基于深度強化學習的機械臂視覺抓取控制優化方法,可以自主地從與環境交互產生的視覺圖像中不斷學習特征提取,直接地將提取的
    發表于 12-19 15:23 ?22次下載
    如何使用深度<b class='flag-5'>強化學習</b><b class='flag-5'>進行</b>機械臂視覺抓取控制的優化方法概述

    對NAS任務中強化學習的效率進行深入思考

    在一些情況下,我們會用策略函數(policy, 總得分,也就是搭建的網絡在測試集上的精度(accuracy),通過強化學習(Reinforcement Learning)這種通用黑盒算法來優化。然而,因為強化學習本身具有數據利用
    的頭像 發表于 01-28 09:54 ?5080次閱讀

    深度強化學習到底是什么?它的工作原理是怎么樣的

    深度學習DL是機器學習中一種基于對數據進行表征學習的方法。深度學習DL有監督和非監督之分,都已經得到廣泛的研究和應用。
    的頭像 發表于 06-13 11:39 ?6096次閱讀

    強化學習在智能對話上的應用介紹

    本文主要介紹深度強化學習在任務型對話上的應用,兩者的結合點主要是將深度強化學習應用于任務型對話的策略學習上來源:騰訊技術工程微信號
    的頭像 發表于 12-10 19:02 ?1066次閱讀

    機器學習中的無模型強化學習算法及研究綜述

    根據真實環境的狀態轉移數據來預定義環境動態模型,隨后在通過環境動態模型進行策略學習的過程中無須再與環境進行交互。在無模型
    發表于 04-08 11:41 ?11次下載
    機器<b class='flag-5'>學習</b>中的無模型<b class='flag-5'>強化學習</b>算法及研究綜述

    模型化深度強化學習應用研究綜述

    深度強化學習(DRL)作為機器學習的重要分攴,在 Alphago擊敗人類后受到了廣泛關注。DRL以種試錯機制與環境進行交互,并通過最大化累積獎賞最終得到最優
    發表于 04-12 11:01 ?9次下載
    模型化深度<b class='flag-5'>強化學習</b>應用研究綜述

    當機器人遇見強化學習,會碰出怎樣的火花?

    Control of Bipedal Robots)為題,已被機器人國際學術頂會 ICRA 收錄。 通過強化學習,它能自己走路,并能進行自我恢復。在現實世界中,通過反復試
    的頭像 發表于 04-13 09:35 ?2467次閱讀
    當機器人遇見<b class='flag-5'>強化學習</b>,會碰出怎樣的火花?

    基于強化學習的壯語詞標注方法

    符號構建標注詞典,通過依存句法分析融合語義特征,并以長短期記憶網絡為策略網絡,利用循環記憶完善部分觀測信息。在此基礎上,引入強化學習框架,將目標詞性作為環境反饋,
    發表于 05-14 11:29 ?14次下載

    使用Matlab進行強化學習電子版資源下載

    使用Matlab進行強化學習電子版資源下載
    發表于 07-16 11:17 ?0次下載

    如何使用 PyTorch 進行強化學習

    強化學習(Reinforcement Learning, RL)是一種機器學習方法,它通過與環境的交互來學習如何做出決策,以最大化累積獎勵。PyTorch 是一個流行的開源機器
    的頭像 發表于 11-05 17:34 ?341次閱讀
    主站蜘蛛池模板: 高清视频在线观看+免费| 亚洲精品第三页| 免费一级欧美片在线观免看| 日日噜噜夜夜狠狠久久丁香| 色www| 欧美综合久久| 特黄特色的视频免费播放| 免费二级c片观看| h黄色| 国产看片视频| 日韩天天干| 国产精品成人观看视频国产奇米 | 亚洲成色www久久网站| 久久精品国产精品亚洲婷婷| 樱桃磁力bt天堂| 色多多网址| 狠狠se| 亚洲精品综合网在线8050影院| 国产大乳喷奶水在线看| 侵犯希崎中文字幕在线| 黄色美女网址| 天天射夜夜操| 天天爽天天狼久久久综合| 久久手机看片你懂的日韩1024| 欧美成人午夜毛片免费影院| 在线视频免费视频网站| 欧美日韩亚洲一区| 五月婷婷六月合| 欧美xxxx色视频在线观看| 日本经典在线三级视频| 色婷婷欧美| 色婷婷色99国产综合精品| 久青草国产在线视频_久青草免 | 男人操女人视频在线观看| 99热网站| 亚洲色图21p| 亚洲a在线观看| 我想看三级特黄| 四虎国产精品4hu永久| 色婷婷色丁香| 国产亚洲视频在线播放大全|