MATLAB er en industri-standard softwarepakke til analyse af en række tekniske og videnskabelige data. En underliggende mål for mange analysemetoder er at genkende mønstre i de underliggende data . Ofte dette indebærer opdeling af data i forskellige grupper eller klynger . Et hyppigt anvendte clustering algoritme er fuzzy c -means clustering , udviklet af Dunn i 1973 og forbedret af Bezdek i 1981. Overblik
fuzzy c -means clustering eller FCM kan datapunkter tilhøre mere end én klynge. En iterativ algoritme minimerer en objektiv funktion til at finde den optimale klynge medlemskab for hvert punkt i de data, der klynger . Iteration af clustering algoritme vil stoppe, når den objektive funktion når et lokalt minimum eller sadel point . FCM kan kombineres med andre søgealgoritmer , for at sikre et optimalt resultat
objektive funktion
FCM objektive funktion J_M er lig med: .
< P > sum ( i = 1 ... N) [ sum ( j = 1 ... C) [ u_ij ^ m norm ( x_i - c_j ) ^ 2 ]]
målet funktion betragtes i reelle værdier af m mellem 1. og positiv uendelighed. Værdien u_ij er medlemskabet af datapunkt x_i i j'te klynge , centreret på c_j
Algoritme
FCM optimeringsalgoritmen har fire trin. :
1. . Initialiser matricen U_0 = [ u_ij ] .2 . Beregn klyngen centre C_k = [ c_j ] fra u_k , hvor k er et helt tal lig iteration af algorithm.3 . Opdatering u_ ( k +1) fra den nye C_k.4 . Beregne værdien af J_k . Hvis den nye stoppe forårsagede J_k at stige , stop , ellers tilbage til trin 2. .
MATLAB Brug
MATLAB implementerer fuzzy c -means clustering i FCM () funktion . Fuzzy Logic værktøjskasse som kræves for anvendelsen af FCM ( ) funktion . Den kaldende syntaks er : Hej
[ centre , U, objFun ] = fcm ( my_data , n_clusters )
my_data variabel er input-data , hvor hver række repræsenterer et datapunkt. Den n_clusters variabel er antallet af klynger for at gruppere data i . Den centrene output er matrix af optimale klyngecentre . U er den optimale fuzzy partition eller medlemskab matrix. Den objFun variabel er den endelige værdi af den objektive funktion .