Klastrowanie scipy

Klastrowanie scipy
Dla osób, które są nowe w językach programowania, koncepcja grupowania jest również dla nich nowa. Python jest jednym z najczęściej używanych języków na całym świecie. Ten język programowania wysokiego poziomu jest łatwiejszy i prostszy niż jakikolwiek inny język programowania na wysokim poziomie, który jest głównym powodem, dla którego początkujący programiści uczą się Pythona najpierw niż jakikolwiek inny język. W tym artykule badamy Scipy Library of Python Programming Language i próbujemy zrozumieć koncepcję grupowania w języku programowania.

Co to jest w języku programowania Pythona?

SCIPY to open source i bezpłatna biblioteka obliczeń naukowych dostarczana przez język programowania Python. Jest zbudowany na Numpy; Stąd rozszerza funkcjonalność biblioteki Numpy. SCIPY jest skrótem naukowego Pythona i zapewnia przydatne metody obsługi każdej aplikacji naukowej. Korzystając z biblioteki Scipy, możesz łatwo zarządzać dowolnym rodzajem matematycznego, naukowego, optymalizacji, przetwarzania obliczeniowego, sygnałowego lub problemów statystycznych w programie Python. Ponadto zapewnia różne przydatne techniki wizualizacji danych i manipulacji. Klastrowanie jest jedną z podstawowych metod biblioteki Scipy. Ten artykuł jest specjalnie poświęcony grupowaniu w języku programowania Pythona.

Co się skupia w języku programowania Pythona?

Klastrowanie - jak sama nazwa wskazuje - tworzy klastry danych. Podstawową koncepcją grupowania jest uczynienie klastrów danych o tych samych cechach. Krótko mówiąc, grupowanie to koncepcja tworzenia małych grup danych, które są charakterystyczne do dużej grupy danych. Wiele branż, takich jak opieka zdrowotna, finanse, detaliczne itp. Użyj koncepcji klastrowania do kilku zadań analitycznych.

Pojęcie grupowania w języku programowania Pythona jest taka sama jak ogólna koncepcja grupowania. Język programowania Python zapewnia kilka przydatnych i łatwych w użyciu narzędzi do przeprowadzania analizy klastra. Możesz wybrać z listy narzędzia, które najlepiej pasuje do twojego problemu. Oprócz tego musisz również zdać sobie sprawę, który algorytm działa lepiej i musisz być w stanie ocenić każdy algorytm, który można użyć do twojego problemu.

Aby ocenić wydajność algorytmu klastrowania, musisz znaleźć średnią odległość klastra od środka. Średnia odległość od środka klastra danych do każdej obserwacji określa zwartość klastra i jest to powszechnie znane jako Centroid. Jest to rozsądne, ponieważ wszystkie algorytmy grupowania Pythona generują ściśle zapakowane klastry danych. Im bliżej punktów danych w klastrze, tym lepsze wyniki algorytmu klastrowania. Aby ocenić wydajność algorytmu klastrowania, oznacza sumę odległości klastra spisanego w stosunku do całkowitej liczby klastrów.

Ogólnie rzecz biorąc, istnieją trzy techniki wykonywania grupowania w klastrowaniu modelu mieszanki Python, K,. Technika klastrowania K-Mean działa najlepiej w przypadku zadań o niskiej wymiaru z kilkoma liczbą danych wejściowych, podczas gdy technika klastrowania spektralnego jest dość odpowiednia dla problemów o wysokiej wymiaru z kilkoma tysiącami danych wejściowych. Przeciwnie, model mieszanki Gaussa leży między k-średnimi a technikami grupowania spektralnego. Jest to elastyczny i solidny model, który najlepiej działa z umiarkowanie skomplikowanymi zadaniami.

Co to jest grupowanie scipy?

Biblioteka Scipy w Python zapewnia dwa podstawowe moduły: moduł VQ i moduł hierarchii do tworzenia klastrów z programem Python. Moduł VQ oznacza kwantyzację wektorów, która jest najbardziej przydatna do kompresji, komunikacji, wykrywania celu, teorii informacji itp. Jednak obsługuje jedynie algorytmy kwantyzacji K-Mean i wektorów. Z drugiej strony moduł hierarchiczny najlepiej sprawdza się w wizualizacji klastrów za pomocą dendrogramów, obliczania statystyk na klastrach, generując hierarchiczne klastry z macierzy na odległość i wycinanie połączeń w celu wygenerowania płaskich klastrów. Co oznacza, że ​​jest najbardziej przydatny do klastrowania aglomeratywnego i hierarchicznego.

Kwantyzacja wektora i klasterowanie K-średnich

Kwantyzacja wektorowa lub algorytmy grupowania K-Maan w bibliotece Scipy są używane do znalezienia klastrów i środka klastrów w zestawie danych. Algorytmy te przyjmują zestaw wektorów obserwacyjnych i liczbę klastrów do wygenerowania jako wejście. Algorytm oblicza centroidy klastra i zwraca dla każdego z K klastrów. Biblioteka Scipy zapewnia pełną implementację algorytmu K-MANS za pośrednictwem pakietu klastra. Oto, w jaki sposób możesz użyć algorytmu VQ lub K-Man w swoim programie:

Przykład 1:

Pokazajmy przykład klastra.VQ, aby zrozumieć, w jaki sposób można go użyć w programie Python. Spójrz na następujący przykładowy kod:

od Scipy.grupa.VQ Import Kmeans, VQ
z Numpy Import VStack, tablica
od Numpy.losowy import rand
data = vstack ((Rand (10,3) + tablica ([.1,.2,.3]), Rand (10,3)))
Centr, _ = kmeans (dane, 3)
Drukuj (Centr)
CLX, _ = VQ (dane, Centr)
Drukuj (CLX)

Po pierwsze, scipy.grupa.VQ służy do importowania modułów KMeans i VQ. Następnie wezwana jest biblioteka Numpy, aby zaimportować vstack i tablicę w programie. Wreszcie Rand jest importowany do programu za pomocą Numpy.moduł losowy. Zmienna „danych” jest inicjowana i przekazywana do funkcji Kmeans () w celu znalezienia środka ciężkości danych. Oryginalne dane i obliczone środowisko danych są przekazywane do funkcji VQ. Zobacz wynik modułów KMeans i VQ w następującym wyjściu:

Hierarchiczne grupowanie

Hierarchiczne klastrowanie służy do tworzenia klastrów podobnych obiektów za pomocą algorytmów uczenia się bez nadzoru. Hierarchiczny algorytm klastrowania przypisuje klaster do każdego punktu danych na początku, a następnie łączy najbliższe klastry na każdej iteracji, co daje tylko jeden duży klaster. Jest to bardzo przydatne w odkrywaniu optymalnej liczby klastrów, prezentacji spostrzeżeń i interpretacyjnej wizualizacji. Aby wizualizować hierarchiczne klastry, wykorzystywane są dendrogramy.

Oto, w jaki sposób możesz użyć hierarchicznego grupowania w swoim programie Python:

Przykład 2:

Ten przykład poprowadzi Cię, jak wykonać hierarchiczne klaster w programie Python. Zobacz następujący przykładowy kod:

od Scipy.grupa.Hierarchia importowa dendrogram, powiązanie
z matplotlib import Pyplot jako PLT
X = [
[A]
dla A w [1, 5, 9, 4, 11, 2]]
Z = powiązanie (x, „Ward”)
Ryc = plt.Rysunek (rysunek = (5, 5))
dn = dendrogram (z)

Po pierwsze, scipy.grupa.Klasa hierarchii jest wywoływana w programie, aby tworzyć klastry hierarchii, a biblioteka Matplotlib jest importowana, aby wyświetlić dendrogram klastra hierarchii. Dane znajdują się w zmiennej „x”. Aby narysować dendrogram, dane są przekazywane do funkcji dendrogram (). Powstały dendrogram jest następujący:

Wniosek

Ten artykuł jest dedykowany, aby poznać koncepcję grupowania w języku programowania Python. Po pierwsze, nauczyliśmy się podstawowej koncepcji grupowania. Następnie zbadaliśmy, czym jest klaster w Python. Biblioteka Scipy zapewnia dwa moduły klastra - VQ i hierarchia. Badaliśmy oba moduły, a przy przykładzie każdego modułu nauczyliśmy się, jak używać i tworzyć klastry w programie Python.