🏦 Detektor prania pieniędzy — klasteryzacja DBSCAN na żywo
Obserwuj, jak prawdziwy algorytm klasteryzacji DBSCAN oparty na gęstości skanuje na żywo symulowane sieci transakcji, oznaczając podejrzane, ściśle powiązane klastry kont, które pominęłaby prosta reguła progowa.
O tej symulacji
Ta symulacja wykonuje prawdziwy przebieg DBSCAN (przestrzennej klasteryzacji opartej na gęstości dla danych z szumem) nad symulowaną siecią transakcji: każde symulowane konto bankowe staje się punktem w 3D przestrzeni cech zbudowanej z częstotliwości jego transakcji, średniej kwoty transakcji i centralności konta w sieci. Dla każdego punktu algorytm oblicza jego rzeczywiste ε-sąsiedztwo, sprawdza je względem progu gęstości minPts, aby zdecydować, czy punkt jest punktem rdzeniowym, a następnie rozszerza klastry na zewnątrz poprzez prawdziwą gęstościową osiągalność — dokładnie ten sam algorytm z pracy Estera, Kriegela, Sandera i Xu z 1996 roku, a nie stylizowaną kulę o stałym promieniu czy przemianowany k-means.
🔬 Co pokazuje
Około 110 symulowanych kont znajduje się w 3D sześcianie rozpiętym przez częstotliwość, logarytmicznie skalowaną kwotę i centralność. Garstka kont jest zasiana jako ścisłe, wysokogęste pierścienie „strukturyzacji” — podobne kwoty, podobna częstotliwość, wysoka centralność — obok luźniejszych, codziennych klastrów klientów i rozproszenia jednorazowych nieregularnych kont. DBSCAN klasyfikuje na żywo każdy punkt jako punkt rdzeniowy (lite, gęste wnętrze), punkt brzegowy (gęstościowo osiągalny z punktu rdzeniowego, ale sam niegęsty) lub szum (wartość odstająca nieosiągalna z żadnego klastra). Klastry, które okazują się niezwykle gęste i zwarte, są dodatkowo oznaczane na czerwono jako potencjalne pierścienie prania pieniędzy.
🎮 Jak korzystać
Przeciągnij suwak ε (epsilon), aby zmienić, jak daleko każdy punkt szuka sąsiadów, oraz minPts, aby zmienić, ilu sąsiadów potrzebuje punkt, by uznać go za gęsty. Obserwuj, jak klastry łączą się, rozpadają lub rozpuszczają w szumie w czasie rzeczywistym podczas przesuwania dowolnego suwaka. Włączaj i wyłączaj otoczki klastrów, kliknij „Regeneruj sieć”, aby uzyskać nowy losowy scenariusz, przeciągaj, aby obracać scenę 3D, i kliknij dowolną sferę, aby sprawdzić surowe cechy danego konta oraz jego bieżącą klasyfikację rdzeń/brzeg/szum.
💡 Czy wiesz, że?
Kluczowa sztuczka DBSCAN polega na tym, że nigdy nie trzeba mu podawać, ile klastrów istnieje — parametr, którego z góry wymaga każdy algorytm w stylu k-means. Właśnie dlatego tak dobrze pasuje do analityki oszustw: śledczy rzadko wiedzą z góry, ile pierścieni prania pieniędzy, jeśli w ogóle jakieś, ukrywa się wewnątrz sieci transakcji, a kategoria szumu DBSCAN daje każdemu zwykłemu kontu miejsce, w którym może się znaleźć, bez wymuszania przypisania do klastra.
Najczęściej zadawane pytania
Czym jest DBSCAN i czym różni się od k-means?
DBSCAN (przestrzenna klasteryzacja oparta na gęstości dla aplikacji z szumem, Ester i in., 1996) grupuje punkty, które są ściśle skupione w przestrzeni cech, oznaczając punkty w obszarach o niskiej gęstości jako szum. W przeciwieństwie do k-means, DBSCAN nie wymaga wcześniejszego wyboru liczby klastrów, potrafi znajdować klastry o dowolnym kształcie, a nie tylko okrągłe skupiska, i jawnie tworzy kategorię wartości odstających zamiast wymuszać przypisanie każdego punktu do jakiegoś klastra. Dzięki temu doskonale nadaje się do wykrywania oszustw i anomalii, gdzie liczba podejrzanych grup jest nieznana, a większość kont to po prostu zwykły szum tła.
Czym są punkty rdzeniowe, brzegowe i szumowe?
Dla wybranego promienia epsilon (ε) i minimalnej liczby sąsiadów minPts, punkt jest punktem rdzeniowym, jeśli w jego ε-sąsiedztwie znajduje się co najmniej minPts punktów (łącznie z nim samym) — oznacza to, że leży on w naprawdę gęstym obszarze. Punkt brzegowy sam nie spełnia tego progu gęstości, ale leży w ε-sąsiedztwie jakiegoś punktu rdzeniowego, więc jest gęstościowo osiągalny i dołącza do klastra tego punktu rdzeniowego. Każdy punkt, który nie jest ani punktem rdzeniowym, ani gęstościowo osiągalnym z takiego punktu, jest oznaczany jako szum — wartość odstająca, która nie należy do żadnego klastra.
Co kontrolują epsilon (ε) i minPts i jak zmieniają wynik?
Epsilon ustala promień sąsiedztwa przeszukiwanego wokół każdego punktu; minPts ustala, ilu sąsiadów (łącznie z samym punktem) jest wymaganych, aby punkt uznać za wystarczająco gęsty, by był punktem rdzeniowym. Zwiększenie ε lub zmniejszenie minPts ułatwia spełnienie progu gęstości, więc klastry rosną i łączą się, a mniej punktów kończy jako szum. Zmniejszenie ε lub zwiększenie minPts zaostrza próg, więc jako klastry przetrwają tylko najściślejsze grupy, a wszystko luźniejsze zostaje przeklasyfikowane jako szum lub rozpada się na mniejsze klastry.
Dlaczego DBSCAN dobrze nadaje się do wykrywania pierścieni prania pieniędzy w porównaniu z prostą regułą progową?
Prosta reguła w rodzaju „oznacz każde konto z więcej niż N transakcjami tygodniowo” traktuje każde konto niezależnie i ignoruje to, jak konta są ze sobą powiązane. Pierścienie prania pieniędzy zwykle ujawniają się jako niewielki zbiór kont, które są niezwykle ściśle skupione jednocześnie wokół kilku cech — podobna częstotliwość transakcji, podobna kwota (często tuż poniżej progu raportowania, wzorzec zwany strukturyzacją) i wysoka centralność w sieci — pozostając przy tym indywidualnie niepozornymi. DBSCAN wykrywa dokładnie to: zwartą, niezwykle gęstą grupę wzajemnie bliskich punktów, której progi oparte na pojedynczej cesze nie widzą, ponieważ żadna pojedyncza wartość cechy nie jest sama w sobie ekstremalna.
Czym jest gęstościowa osiągalność i gęstościowa spójność?
Punkt q jest bezpośrednio gęstościowo osiągalny z punktu rdzeniowego p, jeśli q leży w ε-sąsiedztwie p. Gęstościowa osiągalność jest przechodnim domknięciem tej relacji — q jest gęstościowo osiągalny z p, jeśli istnieje łańcuch punktów rdzeniowych p = p1, p2, ..., pn = q, gdzie każdy jest bezpośrednio gęstościowo osiągalny z poprzedniego. Dwa punkty p i q są gęstościowo spójne, jeśli istnieje jakiś punkt rdzeniowy o, z którego zarówno p, jak i q są gęstościowo osiągalne. Klastry DBSCAN to dokładnie maksymalne zbiory gęstościowo spójnych punktów; to łańcuchowanie pozwala pojedynczemu klastrowi wić się przez niewypukłe, nieregularne obszary, zamiast tworzyć wyłącznie okrągłe skupiska.
Jakie są ograniczenia DBSCAN?
DBSCAN używa jednego globalnego ε i minPts dla całego zbioru danych, więc ma trudności, gdy klastry mają bardzo różną gęstość — ustawienie dostrojone do ścisłego pierścienia prania pieniędzy może pochłonąć luźny, zwykły klaster jako szum, albo odwrotnie (algorytmy takie jak OPTICS i HDBSCAN rozwiązują to podejściem ze zmienną gęstością). Skaluje się on też z grubsza kwadratowo względem liczby punktów bez indeksu przestrzennego, takiego jak drzewo k-d, a jego wyniki zależą od wyboru sensownej metryki odległości i skalowania cech, ponieważ cechy o bardzo różnych skalach mogą zniekształcać to, które punkty są uznawane za „bliskie”.
Prawdziwy przebieg DBSCAN — rzeczywiste zapytania o ε-sąsiedztwo, testy gęstości minPts i rozszerzanie klastrów przez gęstościową osiągalność — działa na żywo nad symulowaną 3D przestrzenią cech transakcji, klasyfikując każde konto jako rdzeniowe, brzegowe lub szumowe i oznaczając niezwykle gęste klastry jako potencjalne pierścienie prania pieniędzy.
3D · renderer Three.js / WebGL · cel 60 FPS · działa w całości po stronie klienta, bez instalacji