Algorytmy grupowania danych

Slides:



Advertisements
Podobne prezentacje
Wprowadzenie do budowy usług informacyjnych
Advertisements

C++ wykład 2 ( ) Klasy i obiekty.
C++ wykład 4 ( ) Przeciążanie operatorów.
Wstęp do programowania
Programowanie obiektowe
Jarosław Kuchta Semafory.
Klasa listy jednokierunkowej Przekazywanie parametrów do funkcji
Programowanie obiektowe PO PO - LAB 4 Wojciech Pieprzyca.
Standardowa biblioteka języka C++
1 Dzisiejszy wykład Wzorce funkcji Wzorce klas. 2 Wzorce Często pojawia się konieczność pisania podobnych funkcji lub klas operujących na argumentach.
Wskaźniki repetytorium Wskaźniki int Y = 1, X = 2; X = 5; int *p = &X; Y X p 4 4 p = &Y; *p = 4; 5.
Klasy i obiekty.
Sztuczna Inteligencja Reprezentacja wiedzy I Logika przybliżona
Algorytmy rastrowe Algorytmy konwersji Rysowanie odcinków
6. Układy kształtujące funkcje odcinkami prostoliniowymi
Programowanie I Rekurencja.
Static, const, volatile.
Generics w .NET 2.0 Łukasz Rzeszot.
Obiektowe metody projektowania systemów Design Patterns STRATEGY.
Filip Andrzejewski Remigiusz Chiluta
Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
typy całkowite (całkowitoliczbowe)
W królestwie czworokątów
Sposoby implementacji asocjacji
Implementacja ekstensji klasy
Sztuczna Inteligencja Reprezentacja wiedzy I Logika przybliżona
Nguyen Hung Son Uniwersytet Warszawski
CLUSTERING Metody grupowania danych Plan wykładu Wprowadzenie Dziedziny zastosowania Co to jest problem klastrowania? Problem wyszukiwania optymalnych.
Programowanie liniowe całkowitoliczbowe
Funkcje Modularyzacja : program główny , funkcje Funkcje :
DZIEDZICZENIE · klasy bazowe i klasy pochodne WyświetlAutora( ) Autor
Algorytm Rochio’a.
Grupowanie.
Czytanie, pisanie i rysowanie – cd.. Jeszcze jeden strumyk PrintStream działa jak PrintWriter, ale: Używa domyślnego (systemowego) kodowania Nie wyrzuca.
Tablice tablica jest sekwencją elementów tego samego typu (prostego lub obiektowego) w Javie tablice są obiektami, a zmienne tablicowe przechowują referencję
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
Podstawy informatyki (4)
Zbiór do posortowania mieści się w pamięci
Podstawy informatyki 2012/2013
formalnie: Algorytmy genetyczne i wstęp do algorytmów ewolucyjnych
Podstawy programowania w języku C i C++
Algorytmy rekurencyjne - przykład
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Andrzej Repak Nr albumu
Programowanie obiektowe Wykład 3 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Dariusz Wardowski.
Programowanie obiektowe Wykład 7 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski.
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Przykładowy algorytm geometryczny (geometria płaska)
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Metody matematyczne w inżynierii chemicznej Wykład 3. Całkowanie numeryczne.
Iteracje w C# Informatyka Cele lekcji: Wiadomości: Uczeń potrafi:
Kurs języka C++ – wykład 4 ( )
K URS JĘZYKA C++ – WYKŁAD 1 ( ) Łagodne wprowadzenie do języka C++
1 Zagadnienia na egzamin. 2 Język C podsumowanie Struktura programu w języku C Zmienne, Stałe Operacje arytmetyczne Operatory logiczne Priorytety operatorów.
OKNO Eksploracja danych: kolokwium I VIII EKSPLORACJA DANYCH 1234 Spójrz gdzie siedzisz. Zadania oznaczone tym numerem są przeznaczone dla Ciebie. DRZWI.
Algorytmy równoległe Algorytm równoległy pozwala na wykonywanie w danej chwili więcej niż jednej operacji. EREW - wyłączny odczyt i wyłączny zapis; CREW.
Dziedziczenie Wykład 7 Dziedziczenie sekwencyjne
PO13-1 / 19 Wykład 13 Wyjątki i ich zgłaszanie Wyłapywanie wyjątków Obsługa wyjątków Wykorzystanie polimorfizmu Filtrowanie wyjątków Błędy w konstruktorach.
Wykład 8 Polimorfizm 1.Funkcje polimorficzne 2.Czyste funkcje wirtualne i klasy abstrakcyjne PO8-1 / 38.
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka Podstawy.
ALGORYTMY I STRUKTURY DANYCH
Asocjacja,Kompozycja,Agregacja
K URS JĘZYKA C++ – WYKŁAD 3 ( ) Przenoszenie Składowe statyczne Funkcje wbudowane Argumenty domyślne.
(według:
Przykładowy algorytm geometryczny (geometria płaska)
Język C++ Typy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Sztuczna Inteligencja Reprezentacja wiedzy I Logika przybliżona
Tworzenie wątków w Javie
Zapis prezentacji:

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:

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.

OZNACZENIA ORAZ POJĘCIA

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

DWIE KLASY – ICH BRZEG I DOLNE APROKSYMACJE

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

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

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

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

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);