智能优化算法应用:基于麻雀搜索优化K-means图像分割算法 - 附代码
智能優化算法應用:基于麻雀搜索優化K-means圖像分割算法 - 附代碼
文章目錄
- 智能優化算法應用:基于麻雀搜索優化K-means圖像分割算法 - 附代碼
- 1.K-means原理
- 2.基于麻雀搜索算法的Kmeans聚類
- 3.算法實驗結果
- 4.Matlab代碼
摘要:基于麻雀搜索優化K-means圖像分割算法。
1.K-means原理
K-Means算法是一種無監督分類算法,假設有無標簽數據集:
X=[x1,x2,...,xn](1)X = [x_1,x_2,...,x_n] \tag{1} X=[x1?,x2?,...,xn?](1)
該算法的任務是將數據集聚類成kkk簇C=C1,C2,...,CkC = C_1,C2,...,C_kC=C1?,C2,...,Ck?,最小化損失函數為:
E=∑i=1k∑x∈Ci∣∣x?ui∣∣2(2)E = \sum_{i=1}^k\sum_{x\in C_i}||x-u_i||^2 \tag{2} E=i=1∑k?x∈Ci?∑?∣∣x?ui?∣∣2(2)
其中uiu_iui?為簇的中心點:
ui=1∣Ci∣∑x∈Cix(3)u_i = \frac{1}{|C_i|}\sum_{x\in C_i}x \tag{3} ui?=∣Ci?∣1?x∈Ci?∑?x(3)
要找到以上問題的最優解需要遍歷所有可能的簇劃分,K-Mmeans算法使用貪心策略求得一個近似解,具體步驟如下:
1.在樣本中隨機選取kkk個樣本點充當各個簇的中心點{u1,u2,...,uk}\{u_1,u_2,...,u_k\}{u1?,u2?,...,uk?}
2.計算所有樣本點與各個簇中心之間的距離dist(xi,uj)dist(x_i,u_j)dist(xi?,uj?),然后把樣本點劃入最近的簇中xi∈unearestx_i \in u_{nearest}xi?∈unearest?
3.根據簇中已有的樣本點,重新計算簇中心
ui=1∣Ci∣∑x∈Cixu_i = \frac{1}{|C_i|}\sum_{x\in C_i}x ui?=∣Ci?∣1?x∈Ci?∑?x
4.重復2、3
K-means算法得到的聚類結果嚴重依賴與初始簇中心的選擇,如果初始簇中心選擇不好,就會陷入局部最優解.因此初始簇中心的選擇非常重要。本文利用麻雀優化算法對初始簇中心進行優化,改進其容易陷入局部最優的特點。
2.基于麻雀搜索算法的Kmeans聚類
麻雀搜索算法的具體原理參考博客:https://blog.csdn.net/u011835903/article/details/108830958
適應度函數:利用麻雀搜索算法改進kmeans時,以聚類中心作為麻雀算法的優化變量,適應度函數設計如下:
fitness=∑i=1k∑x∈Ci∣∣x?ui∣∣2fitness = \sum_{i=1}^k\sum_{x\in C_i}||x-u_i||^2 fitness=i=1∑k?x∈Ci?∑?∣∣x?ui?∣∣2
該適應度函數與kmeans的最小損失函數一致。
算法的具體流程如下:
1.隨機抽樣待分類數據點,作為麻雀搜索聚類候選點。
2.利用麻雀搜索算法搜索最小損失的的聚類點。
3.將這些聚類點作為kmeans算法的初始聚類點。
4.利用kmeans獲得最終的聚類點。
3.算法實驗結果
將基于麻雀搜索優化的Kmeans算法用于圖像的分割實驗。對于圖像,選取10%的像素點作為聚類候選點。
對于灰度圖像聚類個數2,3,4的結果如下圖所示:
對于彩色圖像的聚類效果如下圖所示:
收斂曲線:
4.Matlab代碼
個人資料介紹
總結
以上是生活随笔為你收集整理的智能优化算法应用:基于麻雀搜索优化K-means图像分割算法 - 附代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux+v4l2自动设置相机曝光时间
- 下一篇: IOS开发之协议和代理