Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Algorytmy grupowania danych

Podobne prezentacje


Prezentacja na temat: "Algorytmy grupowania danych"— Zapis prezentacji:

1 Algorytmy grupowania danych

2 Grupowanie danych wokół medoidów przybliżone
– Rough k-medoids Clustering Gr

3 W klasycznym algorytmie grupowania wokół medoidów optymalizowana
jest wartość zwartości podziału (pogrupowania danych) definiowana jako: gdzie:

4

5 W przybliżonym algorytmie k-medoidów, standardowe pojęcie zwartości
pogrupowania zastąpione zostaje pojęciem przybliżonej zwartości pogrupowania danych. Przybliżona zwartość podziału – pogrupowania określa oddzielnie wpływ obiektów znajdujących się w dolnej aproksymacji klasy – skupienia od wpływu wywieranego przez obiekty znajdujące się na brzegu badanej klasy. Pojęcia dolnej i górnej aproksymacji oraz brzegu opierają się na pojęciach teorii zbiorów przybliżonych.

6 OZNACZENIA ORAZ POJĘCIA

7 ALGORYTM GRUPOWANIA DANYCH PRZYBLIŻONY WOKÓŁ MEDOIDÓW

8

9

10 DWIE KLASY – ICH BRZEG I DOLNE APROKSYMACJE

11 Jakość grupowania danych:
wskaźnik Davies-Bouldin

12 PRZYKŁADOWE DANE + KOLEJNE ITERACJE ALGORYTMU GRUPOWANIA
PRZYBLIŻONEGO WOKÓŁ MEDOIDÓW

13

14

15

16

17 cL – lista pozostałych obiektów
public void ChangeMedoidObject(int _m, int _d) { double[] d1 = (double[])medL[_m]; double[] d2 = (double[])cL[_d]; medL.RemoveAt(_m); medL.Insert(_m,d2); cL.RemoveAt(_d); cL.Insert(_d, d1); GetLowerUpper(); DisplayImageData(); double dd = getRCPC(); if (dd < rcpc) { _d1 = _d; _m1 = _m; rcpc = dd; } medL.RemoveAt(_m); medL.Insert(_m, d1); cL.RemoveAt(_d); cL.Insert(_d, d2); medL – lista medoidów cL – lista pozostałych obiektów getLowerUpper – przydzielenie punktów do klas – aproksymacje dolne i górne

18 public void GetGlobalRCPC()
{ rcpc = Double.MaxValue; for (int i = 0; i < C; i++) for (int j = 0; j < cL.Count; j++) ChangeMedoidObject(i, j); }

19 for (int j = 0; j < C; j++) { if (j == di) continue;
public void GetLowerUpper() { ClearClusters(); SetMedoids(); for (int i = 0; i < cL.Count; i++) int di = 0; double dm = Double.MaxValue; double[] d1 = (double[])cL[i]; double[] dist = new double[C]; for (int j = 0; j < C; j++) double[] d2 = (double[])medL[j]; double d3 = Distance.GetDistance(d1, d2); dist[j] = d3; if (dm > d3) dm = d3; di = j; } int changed = 0; for (int j = 0; j < C; j++) { if (j == di) continue; if (Math.Abs(dist[j] - dm) < eps) Cluster CL = (Cluster)mClusters[j]; CL.SetUpper(d1); } if (changed == 0) Cluster CL = (Cluster)mClusters[di]; CL.SetLower(d1);

20


Pobierz ppt "Algorytmy grupowania danych"

Podobne prezentacje


Reklamy Google