1 / 20

Algorytmy grupowania danych

Algorytmy grupowania danych. Grupowanie danych wokół medoidów przybliżone – Rough k-medoids Clustering. Gr. W klasycznym algorytmie grupowania wokół medoidów optymalizowana jest wartość zwartości podziału (pogrupowania danych) definiowana jako:. gdzie:.

genera
Download Presentation

Algorytmy grupowania danych

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 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.

  5. OZNACZENIA ORAZ POJĘCIA

  6. ALGORYTM GRUPOWANIA DANYCH PRZYBLIŻONY WOKÓŁ MEDOIDÓW

  7. DWIE KLASY – ICH BRZEG I DOLNE APROKSYMACJE

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

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

  10. 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

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

  12. 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); } } }

More Related