搜尋
首頁科技週邊人工智慧透過強化學習策略進行特徵選擇

透過強化學習策略進行特徵選擇

Jun 05, 2024 pm 01:00 PM
機器學習強化學習

特徵選擇是建立機器學習模型過程中的關鍵步驟。為模型和我們想要完成的任務選擇好的特徵,可以提高效能。

透過強化學習策略進行特徵選擇

如果我們處理的是高維度資料集,那麼選擇特徵就顯得特別重要。它使模型能夠更快更好地學習。我們的想法是找到最優數量的特徵和最有意義的特徵。

在本文中,我們將介紹並實現一種新的透過強化學習策略的特徵選擇。我們先討論強化學習,尤其是馬可夫決策過程。它是資料科學領域的一種非常新的方法,尤其適用於特徵選擇。然後介紹它的實作以及如何安裝和使用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

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

透過強化學習策略進行特徵選擇

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

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

10! + 2 = 3 628 802

这里的+2是因为考虑一个空状态和一个包含所有可能特征的状态。我们不可能在每个状态下都训练一个模型,这是不可能完成的,而且这只是有10个特征,如果有100个特征那基本上就是无解了。

但是在强化学习方法中,我们不需要在所有的状态下都去训练一个模型,我们要为这个问题确定一些停止条件,比如从当前状态随机选择下一个动作,概率为epsilon(介于0和1之间,通常在0.2左右),否则选择使函数最大化的动作。对于特征选择是每个特征对模型精度带来的奖励的平均值。

这里的贪心算法包含两个步骤:

1、以概率为epsilon,我们在当前状态的可能邻居中随机选择下一个状态

2、选择下一个状态,使添加到当前状态的特征对模型的精度贡献最大。为了减少时间复杂度,可以初始化了一个包含每个特征值的列表。每当选择一个特性时,此列表就会更新。使用以下公式,更新是非常理想的:

透過強化學習策略進行特徵選擇

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)

下面是输出的一个例子:

透過強化學習策略進行特徵選擇

输出是一个5元组,如下所示:

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

特征被观察的次数

所有迭代后特征带来的奖励的平均值

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

全局访问的状态数

还可以与Scikit-Learn的RFE选择器进行比较。它将X, y和选择器的结果作为输入。

fsrl_obj.compare_with_benchmark(X, y, results)

输出是在RFE和FSRLearning的全局度量的每一步选择之后的结果。它还输出模型精度的可视化比较,其中x轴表示所选特征的数量,y轴表示精度。两条水平线是每种方法的准确度中值。

透過強化學習策略進行特徵選擇

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。它绘制了一个图,比较一个精确迭代序列中已经访问节点和访问节点的数量。

透過強化學習策略進行特徵選擇

由于设置了停止条件,算法的时间复杂度呈指数级降低。即使特征的数量很大,收敛性也会很快被发现。下面的图表示一定大小的集合被访问的次数。

透過強化學習策略進行特徵選擇

在所有迭代中,算法访问包含6个或更少变量的状态。在6个变量之外,我们可以看到达到的状态数量正在减少。这是一个很好的行为,因为用小的特征集训练模型比用大的特征集训练模型要快。

总结

我们可以看到RL方法对于最大化模型的度量是非常有效的。它总是很快地收敛到一个有趣的特性子集。该方法在使用FSRLearning库的ML项目中非常容易和快速地实现。

以上是透過強化學習策略進行特徵選擇的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
從摩擦到流:AI如何重塑法律工作從摩擦到流:AI如何重塑法律工作May 09, 2025 am 11:29 AM

法律技術革命正在獲得動力,促使法律專業人員積極採用AI解決方案。 對於那些旨在保持競爭力的人來說,被動抵抗不再是可行的選擇。 為什麼技術採用至關重要? 法律專業人員

這就是AI對您的看法,對您的了解這就是AI對您的看法,對您的了解May 09, 2025 am 11:24 AM

許多人認為與AI的互動是匿名的,與人類交流形成了鮮明的對比。 但是,AI在每次聊天期間都會積極介紹用戶。 每個單詞的每個提示都經過分析和分類。讓我們探索AI Revo的這一關鍵方面

建立蓬勃發展的AI-Ready企業文化的7個步驟建立蓬勃發展的AI-Ready企業文化的7個步驟May 09, 2025 am 11:23 AM

成功的人工智能戰略,離不開強大的企業文化支撐。正如彼得·德魯克所言,企業運作依賴於人,人工智能的成功也同樣如此。 對於積極擁抱人工智能的組織而言,構建適應AI的企業文化至關重要,它甚至決定著AI戰略的成敗。 西蒙諾諮詢公司(West Monroe)近期發布了構建蓬勃發展的AI友好型企業文化的實用指南,以下是一些關鍵要點: 1. 明確AI的成功模式: 首先,要對AI如何賦能業務有清晰的願景。理想的AI運作文化,能夠實現人與AI系統之間工作流程的自然融合。 AI擅長某些任務,而人類則擅長創造力、判

Netflix New Scroll,Meta AI的遊戲規則改變者,Neuralink價值85億美元Netflix New Scroll,Meta AI的遊戲規則改變者,Neuralink價值85億美元May 09, 2025 am 11:22 AM

Meta升級AI助手應用,可穿戴式AI時代來臨!這款旨在與ChatGPT競爭的應用,提供文本、語音交互、圖像生成和網絡搜索等標準AI功能,但現在首次增加了地理位置功能。這意味著Meta AI在回答你的問題時,知道你的位置和正在查看的內容。它利用你的興趣、位置、個人資料和活動信息,提供最新的情境信息,這在以前是無法實現的。該應用還支持實時翻譯,這徹底改變了Ray-Ban眼鏡上的AI體驗,使其實用性大大提升。 對外國電影徵收關稅是對媒體和文化的赤裸裸的權力行使。如果實施,這將加速向AI和虛擬製作的

今天採取這些步驟以保護自己免受AI網絡犯罪的侵害今天採取這些步驟以保護自己免受AI網絡犯罪的侵害May 09, 2025 am 11:19 AM

人工智能正在徹底改變網絡犯罪領域,這迫使我們必須學習新的防禦技巧。網絡罪犯日益利用深度偽造和智能網絡攻擊等強大的人工智能技術進行欺詐和破壞,其規模前所未有。據報導,87%的全球企業在過去一年中都成為人工智能網絡犯罪的目標。 那麼,我們該如何避免成為這波智能犯罪的受害者呢?讓我們探討如何在個人和組織層面識別風險並採取防護措施。 網絡罪犯如何利用人工智能 隨著技術的進步,犯罪分子不斷尋找新的方法來攻擊個人、企業和政府。人工智能的廣泛應用可能是最新的一個方面,但其潛在危害是前所未有的。 特別是,人工智

共生舞蹈:人工和自然感知的循環共生舞蹈:人工和自然感知的循環May 09, 2025 am 11:13 AM

最好將人工智能(AI)與人類智力(NI)之間的複雜關係理解為反饋循環。 人類創建AI,對人類活動產生的數據進行培訓,以增強或複制人類能力。 這個AI

AI最大的秘密 - 創作者不了解,專家分裂AI最大的秘密 - 創作者不了解,專家分裂May 09, 2025 am 11:09 AM

Anthropic最近的聲明強調了有關尖端AI模型缺乏了解,引發了專家之間的激烈辯論。 這是一個真正的技術危機,還是僅僅是通往更秘密的道路上的臨時障礙

Sarvam AI的Bulbul-V2:印度最佳TTS模型Sarvam AI的Bulbul-V2:印度最佳TTS模型May 09, 2025 am 10:52 AM

印度是一個多元化的國家,具有豐富的語言,使整個地區的無縫溝通成為持續的挑戰。但是,Sarvam的Bulbul-V2正在幫助彌合其高級文本到語音(TTS)T

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能