改進遺傳算法的支持向量機特徵選擇解決方案介紹

2020-12-06 電子產品世界

支持向量機是一種在統計學習理論的基礎上發展而來的機器學習方法[1],通過學習類別之間分界面附近的精確信息,可以自動尋找那些對分類有較好區分能力的支持向量,由此構造出的分類器可以使類與類之間的間隔最大化,因而有較好的泛化性能和較高的分類準確率。由於支持向量機具有小樣本、非線性、高維數、避免局部最小點以及過學習現象等優點,所以被廣泛運用於故障診斷、圖像識別、回歸預測等領域。但是如果缺少了對樣本進行有效地特徵選擇,支持向量機在分類時往往會出現訓練時間過長以及較低的分類準確率,這恰恰是由於支持向量機無法利用混亂的樣本分類信息而引起的,因此特徵選擇是分類問題中的一個重要環節。特徵選擇的任務是從原始的特徵集合中去除對分類無用的冗餘特徵以及那些具有相似分類信息的重複特徵,因而可以有效降低特徵維數,縮短訓練時間,提高分類準確率。

本文引用地址:http://www.eepw.com.cn/article/155439.htm

  目前特徵選擇的方法主要有主成分分析法、最大熵原理、粗糙集理論等。然而由於這些方法主要依據繁複的數學理論,在計算過程中可能存在求導和函數連續性等客觀限定條件,在必要時還需要設定用來指導尋優搜索方向的搜索規則。遺傳算法作為一種魯棒性極強的智能識別方法,直接對尋優對象進行操作,不存在特定數學條件的限定,具有極好的全局尋優能力和並行性;而由於遺傳算法採用概率化的尋優方法,所以在自動搜索的過程中可以自主獲取與尋優有關的線索,並在加以學習之後可以自適應地調整搜索方向,不需要確定搜索的規則。因此遺傳算法被廣泛應用在知識發現、組合優化、機器學習、信號處理、自適應控制和人工生命等領域。

  基於改進遺傳算法的特徵選擇

  遺傳算法是一種新近發展起來的搜索最優化算法[2~5]。遺傳算法從任意一個的初始生物種群開始,通過隨機的選擇、交叉和變異操作,產生一群擁有更適應自然界的新個體的新一代種群,使得種群的進化趨勢向著最優的方向發展。圖1中所示的是標準的遺傳算法的流程框圖。

  傳統的遺傳算法存在早熟收斂、非全局收斂以及後期收斂速度慢的缺點,為此本文提出了一種能夠在進化過程中自適應調節變異率,以及利用模擬退火防止早熟的改進遺傳算法,同時該算法利用敏感度信息可以有效地控制遺傳操作。圖2是改進遺傳算法的流程框圖。

  染色體編碼和適應度函數

  所謂編碼是指將問題的解空間轉換成遺傳算法所能處理的搜索空間。在特徵選擇問題中,常常使用二進位的編碼形式,使得每個二進位就是一個染色體,其位數長度等於特徵的個數。每一位代表一個特徵,每位上的1表示選中該特徵,0則表示不選中。每一代種群都由若干個染色體組成。

  適應度函數是整個遺傳算法中極為重要的部分[6],好的適應度函數能使染色體進化到最優個體,它決定了在整個尋優過程中是否能夠合理地協調好過早收斂和過慢結束這對矛盾。由於本文針對的是支持向量機的特徵選擇問題,所以考慮以分類正確率和未選擇的特徵個數這兩個參數作為函數的自變量,將分類正確率作為主要衡量標準,未選擇的特徵個數為次要標準。由此建立以下的適應度函數:

  式中C為分類正確率,為未選擇的特徵個數,a是調節係數,用來平衡分類正確率和未選擇的特徵個數對適應度函數的影響程度,同時該係數也體現了用最少的特徵得到較大分類正確率的原則,在本文中a取0.00077。由上式可知,分類正確率越高,未選的特徵個數越多,染色體的適應度就越大。

  選擇操作

  選擇操作需要按照一定的規則從原有的種群中選擇部分優秀個體用來交叉和變異。選擇原則建立在對個體適應度進行評價的基礎上,目的是避免基因損失,提高全局收斂性和計算效率。本文首先將整個種群中最優的前40%的個體保留下來,以確保有足夠的優良個體進入下一代,對剩下的60%的個體採用輪盤算法進行選擇,這樣做可以彌補保留前40%個體而帶來的局部最優解不易被淘汰的不利影響,有利於保持種群的多樣性。

 基於敏感度信息量的交叉、變異操作

  獨立敏感度信息量Q(i)指的是對在所有特徵都被選中時計算所得到的適應度值Allfitness以及只有特徵i未被選中時計算得到的適應度值Wfitness(i)按式(2)進行計算得到的數值。獨立敏感度信息量刻畫了適應度對特徵i是否被選擇的敏感程度。

  互敏感度信息量R(i,j)由(3)式可得,互敏感度信息量體現了特徵i與特徵j之間對適應度的近似影響程度。


相關焦點

  • 改進遺傳算法的支持向量機特徵選擇解決方案
    但是如果缺少了對樣本進行有效地特徵選擇,支持向量機在分類時往往會出現訓練時間過長以及較低的分類準確率,這恰恰是由於支持向量機無法利用混亂的樣本分類信息而引起的,因此特徵選擇是分類問題中的一個重要環節。特徵選擇的任務是從原始的特徵集合中去除對分類無用的冗餘特徵以及那些具有相似分類信息的重複特徵,因而可以有效降低特徵維數,縮短訓練時間,提高分類準確率。
  • 一個簡單的案例帶你了解支持向量機算法(Python代碼)
    介紹掌握機器學習算法並不是一個不可能完成的事情。大多數的初學者都是從學習回歸開始的。是因為回歸易於學習和使用,但這能夠解決我們全部的問題嗎?當然不行!因為,你要學習的機器學習算法不僅僅只有回歸!把機器學習算法想像成一個裝有斧頭,劍,刀,弓箭,匕首等等武器的軍械庫。你有各種各樣的工具,但你應該學會在正確的時間和場合使用它們。
  • 智能財務風險預警方法—支持向量機
    本文介紹智能財務風險預警方法:支持向量機(Support Vector Machine,簡稱SVM),該方法是Cortes和Vapnik於1995年首先提出的一種線性分類,它在解決小樣本、非線性及高維模式識別中表現出許多特有的優勢,並能夠推廣應用到函數擬合等其他機器學習問題中。
  • 25道題檢測你對支持向量機算法的掌握程度
    介紹在我們學習機器算法的時候,可以將機器學習算法視為包含刀槍劍戟斧鉞鉤叉的一個軍械庫。你可以使用各種各樣的兵器,但你要明白這些兵器是需要在合適的時間合理的地點使用它們。作為類比,你可以將「回歸算法」想像成能夠有效切割數據的劍,但無法處理高度複雜的數據。
  • 從零推導支持向量機 (SVM) | 雷鋒網
    本文旨在從零構建支持向量機,涵蓋從思想到形式化,再簡化,最後實現的完整過程,並展現其完整思想脈絡和所有公式推導細節。本文力圖做到邏輯清晰而刪繁就簡,避免引入不必要的概念、記號等。此外,本文並不需要讀者有凸優化的基礎,以減輕讀者的負擔。對於用到的優化技術,在文中均有介紹。
  • 如何學習SVM(支持向量機)以及改進實現SVM算法程序 - 雷鋒網
    雷鋒網 AI 科技評論按,本文為韋易笑在知乎問題如何學習SVM(支持向量機)以及改進實現SVM算法程序下面的回覆,雷鋒網 AI 科技評論獲其授權轉載。以下為正文:學習 SVM 的最好方法是實現一個 SVM,可講理論的很多,講實現的太少了。
  • 「研究」支持向量機和其它類人工神經網絡的聯繫及區別
    1992年,Boser,Guyon和Vapnik等人在《A Training Algorithm for Optimal Margin Classifers》一書中提出了最優邊界分類器算法,也即SVM算法的最初模型,1993年,Comes和Vapnik在《The Soft Margin Classifier》一書中進一步討論了非線性情況下的最優邊界分類問題。
  • 一種改進操作算子的加速收斂遺傳算法
    摘 要:針對基本遺傳算法效率低和易早熟的缺陷,提出了一種改進操作算子的遺傳算法。該算法在種群初始化、選擇、交叉、變異等基本算子的基礎上加以改進,使算法具有更好的適應性。對3組不同函數的測試表明,改進算法較傳統的遺傳算法具有在種群很小的情況下收斂速度快穩定性高的優點,同時能有效地避免早熟現象。
  • 支持向量機其實沒那麼玄乎
    在機器學習中,支持向量機也是一種常見的算法。支持向量機的原理是,在兩類的樣本中,尋找到能最好劃分類別的超平面。如果在平面中找不到,那就進入更多維度的空間,直至某個維度的空間能夠劃分出最合適的支持向量。兩條支持向量中間的那個超平面就是機器能夠利用的判斷邏輯。
  • 超詳細支持向量機知識點,面試官會問的都在這裡了
    它的基本思想是在特徵空間中尋找間隔最大的分離超平面使數據得到高效的二分類,具體來講,有三種情況(不加核函數的話就是個線性模型,加了之後才會升級為一個非線性模型):當訓練樣本線性可分時,通過硬間隔最大化,學習一個線性分類器,即線性可分支持向量機;當訓練數據近似線性可分時,引入鬆弛變量,通過軟間隔最大化,學習一個線性分類器,即線性支持向量機;當訓練數據線性不可分時,通過使用核技巧及軟間隔最大化
  • 遺傳算法全接觸(一)
    ,TSP問題(在以後的章節裡面將做詳細介紹。),生產調度問題,人工生命模擬等。直到最後看到一個非 常有趣的比喻,覺得由此引出的袋鼠跳問題(暫且這麼叫它吧),既有趣直觀又直達遺傳算法的本質,確實非常適合作為初學者入門的例子。 問題的提出與解決方案 讓我們先來考慮考慮下面這個問題的解決辦法。
  • 機器學習|劉老師專欄—從邏輯回歸到支持向量機(一)
    劉老師專欄,今天分享的是從邏輯回歸到支持向量機解決分類問題的思路,算法理論知識固然重要,但更值得學習的是解決問題的思考方式,仔細欣賞劉老師的分享吧~需要複習邏輯回歸?請戳:機器學習|劉老師專欄——機器的「是非觀」機器學習|劉老師專欄——機器學習與是非題(二)機器學習|劉老師專欄——關於邏輯回歸的更多思考支持向量機是解決分類問題的另一個重要方法,關於這個方法的具體內容,因為我覺得插入公式和圖片都很麻煩,所以不再贅述。而且,相比於教材來說,贅述也不過是一種重複。
  • 機器學習特徵選擇常用算法
    2.2.2 啟發式搜索(1)序列前向選擇( SFS , Sequential Forward Selection )算法描述:特徵子集X從空集開始,每次選擇一個特徵x加入特徵子集X,使得特徵函數J( X)最優。簡單說就是,每次都選擇一個使得評價函數的取值達到最優的特徵加入,其實就是一種簡單的貪心算法。
  • 支持向量機+sklearn繪製超平面
    核函數4.SVM 應用實例1.快速了解SVM 支持向量機(support vector machines,SVM)是一種二類分類模型。它的基本模型是定義在特徵空間上的間隔最大的線性分類器,間隔最大使它有別於感知機;而且SVM還支持核技巧,能夠對非線形的數據進行分類,其實就是將非線形問題變換為線性問題,通過解變換後的線性問題來得到原來非線形問題的解。舉個例子來說明支持向量機是來幹什麼的吧!
  • 配電網絡重構的改進混合遺傳算法
    本文提出一種基於改進的混合遺傳算法的配電網重構算法,在算法中使用可操作開關支路的整數編號的排列順序來表示染色體一個大型的配網包含眾多的節點和支路,因此圖中支撐樹的組合數目極大,若窮舉所有的樹,算法將非常的低效。  遺傳算法具有全局收斂性、無可微性要求、具有很好的魯棒性等優點,特別適合於求解組合優化問題。另外,與一般的隨機搜索方法進行的盲目無向搜索不同,遺傳算法進行的是高效有向的全局搜索,能夠逐步地逼近並收斂於全局最優解。因此,遺傳算法在配網重構中得到越來越廣泛的應用。
  • 如何使用支持向量機學習非線性數據集
    支持向量機(SVM)什麼是支持向量機呢?支持向量機是監督機器學習模型,可對數據進行分類分析。實際上,支持向量機算法是尋找能將實例進行分離的最佳超平面的過程。如果數據像上面那樣是線性可分離的,那麼我們用一個線性分類器就能將兩個類分開。
  • 遺傳算法原理以及在量化投資的應用
    什麼是遺傳算法 1.介紹遺傳算法的概念 遺傳算法是一種進化策略的算法,模擬生物基因遺傳。遵循物競天擇,適者生存,劣者淘汰的自然規律進化。 遺傳算法優化 1.容易局部收斂的問題 遺傳算法的局部搜索很強,所以一般容易收斂用以下解決方案,具體情況具體對待。 擴大搜索空間 提高種群的數量、增加數據種類和數量、增加算子。
  • 【優化】遺傳算法介紹
    [2]葛繼科,邱玉輝,吳春明,蒲國林.遺傳算法研究綜述[J].計算機應用研究,2008(10):2911-2916.[3]雷德明.多維實數編碼遺傳算法[J].控制與決策,2000(02):239-241.[4]臧文科. DNA遺傳算法的集成研究與應用[D].山東師範大學,2018.
  • 回歸算法及SOC估計實例
    其他回歸算法除了上面的回歸模型,常見的還有嶺回歸、LASSO回歸、ElasticNet回歸等,都是前述回歸算法的改進和組合。3 過擬合和欠擬合選擇的回歸方法是否合適,主要是觀察擬合結果,實驗數據點與函數曲線的貼合程度越高,說明擬合效果越好。在網上看到兩張圖,看一眼就明白什麼是欠擬合、過擬合、恰當的擬合,盜圖一用。觀察下面三幅圖。