Algorytmy grupowania, również nazywane algorytmami klasteryzacji, pozwalają na podział danych na mniejsze zbiory, tzw. klastry, w taki sposób, aby elementy w obrębie danego klastra były bardziej podobne do siebie niż do elementów innych klastrów. Istnieje wiele różnych metod grupowania, które różnią się między sobą zarówno w podejściu do tworzenia klastrów, jak i w sposobie oceny skuteczności podziału. Poniżej przedstawiamy najważniejsze z nich: klasteryzacja ekskluzywna, nakładająca się, hierarchiczna oraz probabilistyczna.

Typowym przykładem zastosowania algorytmu klasteryzacji jest klasyfikacja preferencji zakupowych klientów. Załóżmy, że sklep spożywczy chce poznać liczbę osób, które regularnie kupują określony owoc, na przykład jabłka, ananasy, banany, gruszki czy winogrona, oraz ilość tych owoców, którą nabywają. W zależności od wyników badania i ankiet, sklep może podzielić swoich klientów na różne grupy, czyli klastry. Jest to typowy przykład klasteryzacji ekskluzywnej, gdzie każdy klient może należeć tylko do jednej grupy, bez żadnych nakładających się granic.

Klasteryzacja ekskluzywna

Algorytm klasteryzacji ekskluzywnej to tzw. "twarde" grupowanie, w którym każdy punkt danych przynależy wyłącznie do jednego klastra. Podstawowym przykładem tego typu klasteryzacji jest algorytm K-średnich (K-means), który dzieli dane na K klastrów, gdzie K jest liczbą z góry określoną przez użytkownika. Każdy punkt danych jest przypisywany do klastra na podstawie odległości od jego centroidu (czyli punktu środkowego klastra).

W procesie działania algorytmu K-średnich procedura wygląda następująco: początkowo losowo przypisuje się centroids do zbioru danych, a następnie punkty danych są przypisywane do najbliższego centroidu. Następnie dla każdej z grup oblicza się nowy centroid, który jest średnią wartości wszystkich punktów w danym klastrze. Proces ten powtarza się, aż centroidy przestaną się zmieniać, co oznacza, że model osiągnął stan optymalny.

Ważnym aspektem w klasteryzacji K-średnich jest znalezienie optymalnej liczby K, czyli liczby klastrów. Istnieją dwa popularne podejścia do wyznaczenia tej wartości: metoda łokcia oraz metoda sylwetki.

Metoda łokcia

Metoda łokcia jest jedną z najczęściej stosowanych metod w celu wyznaczenia wartości K. Polega ona na analizie sumy kwadratów odległości (SSD) pomiędzy punktami a ich przypisanymi centroidami w różnych wersjach K. Jeśli zwiększymy liczbę klastrów, SSD zwykle maleje, ale po osiągnięciu pewnego punktu zmiana staje się niewielka. Punkt, w którym zmniejszanie SSD wyraźnie zwalnia, uznaje się za optymalną liczbę K. Ten punkt na wykresie SSD przypomina łokieć, stąd nazwa metody.

Metoda sylwetki

Metoda sylwetki mierzy jakość podziału na klastry, biorąc pod uwagę zarówno spójność wewnętrzną klastra, jak i separację pomiędzy klastrami. Dla każdego punktu danych oblicza się wartość sylwetki, która wskazuje, jak dobrze punkt pasuje do swojego klastra w porównaniu do innych klastrów. Wyższy wynik sylwetki oznacza, że punkt jest dobrze przypisany do swojego klastra i jest oddzielony od innych klastrów. Metoda ta pozwala na lepszą ocenę jakości podziału niż tradycyjna suma odległości.

Klasteryzacja nakładająca się

Klasteryzacja nakładająca się to podejście "miękkie", w którym punkt danych może przynależeć do kilku klastrów jednocześnie, jednak w różnych stopniach. Przykład zastosowania tej metody to analiza członkostwa klientów w różnych klubach lojalnościowych, takich jak Costco, Sam's Club czy JB Club. Klient może być członkiem kilku klubów, a stopień jego przynależności do każdego z nich może się różnić. W tym przypadku punkty danych mogą mieć różne stopnie przynależności do różnych klastrów, co sprawia, że ta metoda jest bardziej elastyczna niż tradycyjna klasteryzacja ekskluzywna.

Hierarchiczna klasteryzacja

Klasteryzacja hierarchiczna tworzy hierarchię klastrów, które mogą być dzielone na mniejsze podklastry w ramach większych zbiorów. Istnieją dwa główne podejścia: aglomeracyjne (rozpoczyna się od pojedynczych punktów i łączy je w grupy) oraz dzielące (rozpoczyna się od jednego dużego klastra i dzieli go na mniejsze grupy). Klasteryzacja hierarchiczna jest użyteczna, gdy chcemy uzyskać wielopoziomową strukturę danych, na przykład w analizie organizacji lub w badaniach ewolucyjnych.

Probabilistyczna klasteryzacja

W przypadku klasteryzacji probabilistycznej, dane są traktowane jako rozkłady prawdopodobieństwa, a każdy punkt należy do klastra z pewnym prawdopodobieństwem. Algorytmy takie jak mieszane modele Gaussa (GMM) pozwalają na określenie prawdopodobieństwa przynależności punktu do każdego z klastrów, co sprawia, że model jest bardziej elastyczny w przypadku danych, które mogą wykazywać cechy należące do kilku grup jednocześnie.

Praktyczne zastosowania klasteryzacji

Wszystkie opisane metody mają swoje konkretne zastosowania. Klasteryzacja ekskluzywna znajduje szerokie zastosowanie w analizie danych rynkowych, np. do segmentacji klientów, gdzie każdy klient może być przypisany tylko do jednej grupy. Z kolei klasteryzacja nakładająca się może być wykorzystywana w analizie danych z zakresu biomedycyny, gdzie jeden obiekt (np. pacjent) może mieć cechy przypisane do różnych grup chorobowych. Klasteryzacja hierarchiczna bywa używana w badaniach naukowych, gdzie interesuje nas zrozumienie złożonych zależności pomiędzy różnymi poziomami danych, a probabilistyczna klasteryzacja jest cenna w sytuacjach, gdy dane są niepełne lub mają duży poziom niepewności.

Rozumienie tych podstawowych algorytmów oraz ich zastosowań w praktyce pozwala na skuteczne analizowanie danych w różnych dziedzinach, od marketingu po badania naukowe.

Jak działają reguły asocjacyjne: wsparcie, ufność i lift na przykładzie sklepu spożywczego

Reguły asocjacyjne to metoda analizy danych, która pozwala odkrywać zależności pomiędzy różnymi elementami, np. produktami kupowanymi razem. Przykładem takiej reguły może być: jeśli klient kupuje sos pomidorowy i cebulę, to prawdopodobnie kupi również włoskie makarony. Reguły zapisujemy w formie A ⇒ B, gdzie A i B to zestawy elementów. Aby ocenić siłę takich reguł, stosuje się dwa kluczowe parametry – wsparcie (support) i ufność (confidence).

Wsparcie to stosunek liczby transakcji zawierających oba zestawy A i B do całkowitej liczby transakcji. Innymi słowy, wskazuje, jak często dany zestaw przedmiotów pojawia się razem w danych. Ufność jest z kolei warunkowym prawdopodobieństwem wystąpienia elementów B pod warunkiem, że występują elementy A. Mówi ona o tym, jak wiarygodna jest reguła – z jakim prawdopodobieństwem, gdy kupujemy A, kupujemy również B.

Aby zilustrować to na przykładzie, wyobraźmy sobie bazę danych małego supermarketu z czterema transakcjami i sześcioma produktami: cebula, sos pomidorowy, włoskie makarony, chleb, mleko i piwo. W tabeli każda transakcja jest opisana przez obecność (1) lub brak (0) danego produktu. Reguła {cebula, sos pomidorowy} ⇒ {włoskie makarony} ma wsparcie równą 0,25 (25%), ponieważ zestaw tych trzech produktów pojawia się w jednej na cztery transakcje. Ufność tej reguły wynosi 1,0 (100%), co oznacza, że za każdym razem, gdy ktoś kupuje cebulę i sos pomidorowy, kupuje również włoskie makarony.

Innym przykładem jest reguła {chleb} ⇒ {mleko} z ufnością 50%, co oznacza, że mleko jest kupowane w połowie przypadków, gdy kupowany jest chleb. To już wskazuje na słabszą, ale wciąż istotną zależność.

Kolejnym parametrem, który pomaga ocenić reguły asocjacyjne, jest lift. Lift informuje o sile zależności między zestawami produktów względem ich niezależności. Jeśli lift wynosi 1, to oznacza, że występowanie jednego zestawu nie wpływa na występowanie drugiego – są niezależne. Gdy lift jest większy niż 1, produkty współwystępują częściej niż można by się spodziewać przypadkowo, co oznacza silną zależność i potencjalną wartość predykcyjną reguły. Natomiast lift mniejszy niż 1 sugeruje, że produkty są substytutami, czyli obecność jednego zmniejsza prawdopodobieństwo obecności drugiego.

W praktyce, analiza reguł asocjacyjnych wymaga ustalenia minimalnych progów wsparcia i ufności, które określają, które reguły są interesujące i znaczące. Algorytm Apriori jest jednym z najpopularniejszych sposobów na znalezienie często współwystępujących zestawów elementów, który iteracyjnie rozszerza zestawy spełniające próg wsparcia, by znaleźć silne reguły.

Warto zrozumieć, że wsparcie mówi o popularności zestawu, ufność o wiarygodności reguły, a lift o sile i charakterze zależności między elementami. Samo wysokie wsparcie nie gwarantuje użytecznej reguły, jeśli ufność jest niska, podobnie jak wysoka ufność bez odpowiedniego wsparcia może oznaczać regułę mało reprezentatywną dla całego zbioru danych. Lift pomaga odróżnić reguły wartościowe od tych wynikających z przypadkowej korelacji.

Poza tym, dla osób zainteresowanych implementacją, warto zwrócić uwagę, że choć MATLAB nie posiada wbudowanego toolboxu do reguł asocjacyjnych, można korzystać z dostępnych narzędzi i funkcji wspierających uczenie nienadzorowane, takich jak klasteryzacja czy analiza skupień, które są dostępne w Statistics and Machine Learning Toolbox oraz Deep Learning Toolbox. To pokazuje, że metody te są często wykorzystywane komplementarnie, by wydobyć jak najwięcej informacji z danych.

Zrozumienie tych parametrów oraz ich wzajemnych zależności jest kluczowe do skutecznego wykorzystywania reguł asocjacyjnych w analizie danych handlowych, marketingowych czy zachowań konsumentów. Analiza ta pozwala nie tylko na poznanie wzorców zakupowych, ale również na optymalizację oferty, planowanie promocji oraz lepsze dostosowanie produktów do potrzeb klientów.

Jakie techniki i podejścia kodowania pomagają w tworzeniu profesjonalnych projektów AI z użyciem regresji?

W edukacji związanej z uczeniem maszynowym często zdarza się, że pewne strategie kodowania i techniki budowania modeli pozostają niedostępne dla uczniów. Takie podejście nie sprzyja zdobywaniu pełnej wiedzy ani praktycznych umiejętności, które są niezbędne w profesjonalnym środowisku. Aby zniwelować tę lukę, warto korzystać z trybu MATLAB Function, który pozwala użytkownikom na bardziej dogłębne zaangażowanie się w proces tworzenia modeli AI, umożliwiając pisanie bardziej szczegółowych funkcji kontrolnych oraz rozbudowany kod. To z kolei sprzyja zdobywaniu praktyki i rozumieniu działania algorytmów na poziomie implementacyjnym.

Praktycznym przykładem wykorzystania różnych modeli regresji nieliniowej jest projekt predykcji cen akcji na rynku giełdowym. Do budowy modeli używa się funkcji takich jak fitrensemble(), fitnlm() oraz TreeBagger(), które reprezentują różne podejścia do regresji nieliniowej. Po zbudowaniu modeli przeprowadza się testy walidacyjne, mające na celu potwierdzenie skuteczności predykcji. Następnie porównuje się wyniki działania poszczególnych algorytmów, aby wyłonić optymalną metodę przewidywania.

Ważne jest zrozumienie, że regresja jest narzędziem statystycznym pozwalającym na związek między zmienną zależną a jedną lub wieloma zmiennymi niezależnymi. Linearna regresja zakłada liniową zależność między tymi zmiennymi, podczas gdy regresja nieliniowa umożliwia modelowanie bardziej złożonych relacji, które nie są proste do uchwycenia prostą prostą linią. W tym kontekście reszty (ang. residuals) pełnią kluczową rolę — są to różnice pomiędzy wartościami rzeczywistymi a przewidywanymi przez model, co pozwala na ocenę jakości dopasowania modelu.

Drzewa decyzyjne stanowią popularne narzędzie w modelowaniu regresyjnym i klasyfikacyjnym. Są to hierarchiczne modele, które organizują proces podejmowania decyzji w formę przypominającą drzewo, gdzie gałęzie reprezentują różne możliwe decyzje i ich konsekwencje. Drzewa można podzielić na regresyjne i klasyfikacyjne, zależnie od zadania. Metoda random forest, czyli las losowy, jest rozszerzeniem techniki bagging i polega na budowie wielu drzew decyzyjnych, co skutkuje zwiększoną stabilnością i precyzją predykcji.

Podstawowe metody walidacji, takie jak walidacja krzyżowa (cross-validation), walidacja przez podział (holdout validation) oraz walidacja na podstawie ponownego użycia danych (resubstitution validation), służą do oceny, jak dobrze wytrenowany model będzie działał na nowych, nieznanych danych. Ich stosowanie jest niezbędne, aby uniknąć zjawiska przeuczenia (overfitting) i zapewnić, że model generalizuje się poprawnie.

Matlab dostarcza użytkownikom narzędzia takie jak Regression Learner App, które pozwala na interaktywne trenowanie i dostrajanie modeli regresji przy użyciu różnych algorytmów, zarówno automatycznie, jak i manualnie. Umożliwia to eksperymentowanie i porównywanie wyników różnych podejść, co jest kluczowe dla zrozumienia dynamiki modelowania regresyjnego.

Do popularnych funkcji regresji nieliniowej w Matlabie należą fit(), fitnlm() oraz nlinfit(). Warto zauważyć, że dobrze dobrany model regresji może być parametryczny, co oznacza, że jego kształt zależy od określonego zestawu parametrów. Do nieliniowych modeli regresyjnych można zaliczyć m.in. modele wielomianowe, modele wykładnicze, logarytmiczne czy modele oparte na transformacjach Fouriera.

Projektowanie modeli regresji na bazie rzeczywistych danych, takich jak ceny samochodów czy notowania giełdowe, wymaga nie tylko wyboru odpowiedniego algorytmu, ale także umiejętnego przygotowania danych, ich analizy oraz walidacji wyników. Przykładowo, korzystając z zestawu danych dotyczących sprzedaży samochodów, można za pomocą funkcji fitlm() lub fitrsvm() budować modele regresji liniowej bądź opartych na maszynach wektorów nośnych (SVM). Walidacja i analiza reszt potwierdza poprawność dopasowania modelu, a wskaźnik RMSE (Root Mean Square Error) pozwala ocenić dokładność przewidywań.

Ważne jest także, aby czytelnik zrozumiał, że samo narzędzie czy funkcja nie zapewniają sukcesu. Kluczem jest właściwe zrozumienie charakteru danych, relacji między zmiennymi oraz celów predykcji. W praktyce nie ma uniwersalnego modelu — konieczne jest testowanie i porównywanie różnych podejść, dostosowywanie hiperparametrów oraz zwracanie uwagi na interpretację wyników.

Zrozumienie i wykorzystanie różnorodnych algorytmów regresyjnych, zwłaszcza tych nieliniowych oraz zespołowych, jest fundamentem budowy efektywnych i wiarygodnych systemów predykcyjnych. Warto również docenić rolę praktycznych projektów, które pozwalają na łączenie teorii z praktyką, co jest niezbędne dla pełnego opanowania sztuki uczenia maszynowego.

Jak działa klasyfikacja wieloklasowa w algorytmach uczenia maszynowego z wykorzystaniem zbioru danych mieszanych?

Wykorzystanie algorytmów klasyfikacji w kontekście danych o różnych typach, czyli zbiorów danych mieszanych, zyskuje na popularności, szczególnie w przypadku problemów medycznych, takich jak klasyfikacja pacjentów z cukrzycą. Dane tego typu zawierają zarówno dane liczbowe, jak i tekstowe, co wymaga odpowiedniego podejścia do analizy. Zatem zmodyfikowanie klasycznych algorytmów klasyfikacyjnych, jak Naive Bayes czy ECOC (Error Correcting Output Code), staje się konieczne, aby poprawnie obsługiwały te zróżnicowane dane.

Załóżmy, że mamy zmodyfikowany zbiór danych związany z diagnozowaniem cukrzycy, który zawiera dane tekstowe, takie jak płeć pacjenta, oraz dane liczbowe, takie jak wiek, poziom glukozy czy cholesterol. Zbiór danych, który wykorzystywany jest w tym projekcie, to tzw. zbiór mieszany. Aby przeprowadzić klasyfikację na takich danych, należy dokonać kilku istotnych modyfikacji, które umożliwią prawidłowe przetwarzanie informacji.

Pierwszym krokiem w przetwarzaniu danych mieszanych jest konwersja kolumn tekstowych, takich jak „Płeć” (Gender), na typ kategoryczny. Jest to wymagane, ponieważ nie można przeprowadzić analizy tekstów w tradycyjny sposób. Zatem kolumna zawierająca płeć pacjenta, reprezentowana początkowo jako tekst (np. "Mężczyzna", "Kobieta"), musi zostać zamieniona na dane kategoryczne, aby mogły być odpowiednio przetwarzane przez algorytmy klasyfikacji.

Po przekształceniu danych tekstowych na kategorie, kolejny etap to podział danych na zestaw treningowy i testowy. Zestaw treningowy, wykorzystywany do nauki algorytmu, musi być przedstawiony w formie tabeli, a nie wektora czy macierzy. To ważne, ponieważ tradycyjne struktury danych w postaci wektora lub macierzy nie pozwalają na prawidłowe przetwarzanie danych mieszanych. Z kolei zestaw testowy, używany do weryfikacji wyników klasyfikacji, również musi być przekazany w formie tabeli.

Dzięki tym modyfikacjom możliwe staje się zastosowanie różnych algorytmów klasyfikacji. W tym przypadku używamy dwóch algorytmów: Naive Bayes (fitcnb) oraz ECOC (fitcecoc). Wyniki klasyfikacji obu algorytmów, uzyskane na zmodyfikowanym zbiorze danych, wykazują niewielkie różnice w skuteczności. Choć oba algorytmy wykazują podobne wyniki, to w przypadku algorytmu Naive Bayes, zastosowanego na danych mieszanych, uzyskuje się lepszą jakość klasyfikacji w porównaniu z algorytmem ECOC.

Kluczową kwestią, którą należy zapamiętać podczas pracy z danymi mieszanymi, jest fakt, że wszystkie kolumny tekstowe muszą zostać zamienione na typ kategoryczny, a same dane treningowe oraz testowe muszą być traktowane jako tabele. Te zmiany umożliwiają prawidłowe działanie klasyfikatorów, takich jak Naive Bayes czy ECOC, które mogą w ten sposób przetwarzać dane zarówno liczbowe, jak i tekstowe.

Ważne jest, by pamiętać, że różnorodność danych może wprowadzać pewne trudności przy stosowaniu tradycyjnych algorytmów. Na przykład, algorytmy klasyfikacyjne muszą być odpowiednio przystosowane do radzenia sobie z kategoriami, które nie są liczbami, ale reprezentują pewne klasyfikacje, jak na przykład płeć czy typ choroby.

Dodatkowe uwagi, które warto rozważyć:

Podczas pracy z danymi mieszanymi, zwłaszcza w kontekście problemów zdrowotnych, kluczowe jest również dokładne zrozumienie, jak różne algorytmy wpływają na ostateczne wyniki klasyfikacji. W szczególności, algorytm Naive Bayes, mimo że zakłada, iż cechy są niezależne, co jest założeniem silnym i często nie odpowiadających rzeczywistości, może okazać się bardzo skuteczny, zwłaszcza w przypadkach, gdy cechy są w istocie w dużej mierze niezależne. Z drugiej strony, podejście ECOC, bardziej elastyczne, może lepiej sprawdzać się w sytuacjach, gdy zależności między cechami są bardziej skomplikowane.

Nie mniej istotne jest również zrozumienie procesu przygotowania danych. Często, w praktyce, konieczne będzie dostosowanie danych do odpowiedniego formatu lub dokonanie ich wstępnej obróbki, aby zapewnić lepszą jakość klasyfikacji. Wiele algorytmów może być wrażliwych na niepoprawne lub niejednorodne dane wejściowe. Zatem właściwe przygotowanie danych, w tym konwersja tekstów na kategorie, jest niezbędnym etapem, który może znacząco wpłynąć na wydajność modelu klasyfikacyjnego.