PSO-LSSVM算法及其MATLAB代码
挺完整的一篇博客,這里轉載記錄一下。
原文鏈接:PSO-LSSVM算法及其MATLAB代碼
一、PSO
1.概念
粒子群優化算法(PSO:Particle swarm optimization)是一種進化計算技術。它的基本思想:通過群體中個體之間的協作和信息共享來尋找最優解。
2.算法的原理和實現步驟
2.1算法原理
PSO初始化為一群隨機粒子(隨機解),然后通過迭代找到最優解。在每一次的迭代中,粒子通過跟蹤兩個“極值”(pbest,gbest)來更新自己。在找到這兩個最優值后,粒子通過下面的公式來更新自己的速度和位置。
PSO算法的主要公式2.2實現步驟
1)初始化一群微粒(群體規模為N),包括隨機位置和速度;
2)評價每個粒子的初始適應值;
3)將初始適應值作為當前每個粒子的最優值,并記錄當前的位置作為局部最優位置;
4)將最佳初始適應值作為當前全局最優值,并記錄當前位置;
5)依據上文提到的計算速度和位置公式進行計算(要注意最大速度限幅處理);
6)比較當前適應值與之前的適應值,如果更優則進行更新;
7)找到當前粒子群的全局最優;
8)重復5-7步直到達到最小誤差或者達到最大迭代次數;
9)輸出。
3.算法的優缺點
3.1優點:
1)需要調整的參數少,原理簡單,容易實現;
2)協同搜索,同時利用個體局部信息和群體全局信息進行指導搜索;
3)收斂速度快;
4)更容易飛躍局部最優信息。
3.2缺點:
1)算法局部搜索能力較差,搜索精度不高;
2)算法容易陷入局部最優,無法獲取全局最優近似解。
二、LSSVM(最小二乘支持向量機)
1.LSSVM介紹
最小二乘支持向量機是支持向量機的一種改進,它是將傳統支持向量機中的不等式約束改為等式約束,且將誤差平方和(SumSquaresError)損失函數作為訓練集的經驗損失,這樣就把解二次規劃問題轉化為求解線性方程組問題,提高求解問題的速度和收斂精度。
2.最小二乘支持向量機MATLAB工具箱
最小二乘支持向量機MATLAB工具箱下載地址見參考文獻[4],工具箱用于解決分類問題主要用到3個函數,trainlssvm函數用來訓練建立模型,simlssvm函數用于預估模型,plotlssvm函數是工具箱的專用繪圖函數。
LSSVM要求調整的參數有兩個:gam和sig2。其中gam是正則化參數,決定了適應誤差的最小化和平滑程度,sig2是RBF函數的參數。type有兩種類型,一種是classfication,用于分類,一種是function estimation,用于函數回歸。
三、PSO優化LSSVM實現多分類
PSO通過優化LSSVM的兩個參數gam和sig2,尋找參數的最優組合,從而提高分類精度。
LSSVM工具箱的trainlssvm函數和simlssvm函數一般用于二分類問題,多分類問題則需要構造多個二分類器。LSSVM工具箱的code函數可以將多分類任務編碼和解碼為多個二分類器。
首先使用code函數對多分類問題進行編碼,然后用trainlssvm函數和simlssvm函數分別對數據進行訓練和測試,再使用code函數對測試結果進行解碼。PSO優化LSSVM實現多分類的源代碼見參考文獻[6],分類的精確率能達到90%以上。
參考文獻
[1]粒子群優化算法(PSO)
[2]粒子群算法PSO詳解
[3]MATLBA中最小二乘支持向量機原理+實例分析
[4]最小二乘支持向量機算法及工具
[5]PSO-LSSVM的matlab實現
[6]PSO-LSSVM的MATLAB代碼
總結
以上是生活随笔為你收集整理的PSO-LSSVM算法及其MATLAB代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从其它地方复制的代码到VS 提示无法识别
- 下一篇: CSDN转载别人文章的详细步骤