Shlukování datových bodů

Shlukování datových bodů

Shlukování datových bodů

DataPoint, Cluster a ClusterCollection jsou malý, obecný nástroj pro hierarchické aglomerativní shlukování, který je součástí Aspose.PDF FOSS pro Python. Jedná se o obecné primitivy pro seskupování dat—bod ssouřadnicemi aštítkem, skupinu položek akolekci skupin—spíše než o funkci specifickou pro PDF dokument; tento modul nečte ani nezapisuje obsah PDF. Použijte je, když váš vlastní kód potřebuje seskupovat číselné hodnoty (například měření, která jste již z dokumentu extrahovali) do shluků a shrnout shluk pomocí jeho středu.


Reprezentace datového bodu

DataPoint spojuje identifikační name s value seznamem číselných souřadnic. Oba jsou po vytvoření zpřístupněni jako DataPoint.name a DataPoint.value.


Vytváření a kopírování shluků

Cluster zabaluje volitelný seznam položek do jedné skupiny. Cluster.count uvádí, kolik položek shluk aktuálně obsahuje, Cluster.contains() kontroluje, zda je daná položka členem, a Cluster.clone() vrací nezávislou kopii podporovanou vlastním seznamem položek. Cluster.empty() vrací sdílenou, jedinečnou instanci prázdného shluku místo alokace nové při každém volání.


Seskupování shluků v kolekci

ClusterCollection zabaluje volitelný seznam instancí Cluster do jedné kolekce, což vám poskytne jeden objekt k předání, když funkce potřebuje přijmout nebo vrátit více než jeden shluk najednou.


Výpočet centroidu shluku

DataPoint.get_centroid() průměruje souřadnice každého datového bodu v Cluster, pozice po pozici, a vrací nový DataPoint představující centroid. Každý bod v shluku musí mít stejný počet dimenzí v DataPoint.value, aby byl průměr smysluplný.


Tipy a osvědčené postupy

  • Udržujte každý seznam DataPoint.value ve shluku stejné délky — DataPoint.get_centroid() průměruje souřadnice pozice po pozici, takže nesoulad dimenzí vede k zavádějícímu centroidu.
  • Použijte Cluster.empty() pro sdílený, jedinečný prázdný shluk místo vytváření nového prázdného shluku, když potřebujete jen zástupnou hodnotu.
  • Zavolejte Cluster.clone() před změnou shluku, jehož originál potřebujete jinde — klonování zkopíruje seznam položek místo jeho aliasování.
  • Použijte ClusterCollection, když funkce potřebuje přijmout nebo vrátit více než jeden Cluster jako jedinou hodnotu.
  • Tyto třídy jsou obecné utility, ne funkce pro parsování PDF — spojte je se svou vlastní logikou pro vytváření hodnot DataPoint z dat dokumentu.

Časté problémy

ProblémPříčinaOprava
DataPoint.get_centroid() vytváří centroid s neočekávaným počtem hodnotData points in the cluster have DataPoint.value seznamy různých délekZajistěte, aby každý DataPoint přidaný do Cluster měl stejnou dimenzionalitu
Cluster.contains() vrací False pro hodnotu, kterou očekáváte, že bude přítomnaČlenství se kontroluje přímo proti uloženým objektům položek, takže dva samostatně vytvořené instance DataPoint se stejným názvem a hodnotou nejsou automaticky považovány za rovné při vyhledávání založeném na identitěZnovu použijte stejnou instanci DataPoint nebo porovnávejte pomocí DataPoint.name a DataPoint.value, než předpokládáte příslušnost
Mutace klonovaného clusteru také mění originál.Cluster.clone() byl přeskočen a místo kopírování byla sdílena stejná reference Cluster.Nejprve zavolejte Cluster.clone(), kdykoli volající potřebuje nezávislou kopii.

FAQ

Jaký je rozdíl mezi Cluster a ClusterCollection?

Cluster obsahuje seznam položek — typicky instancí DataPoint — které patří do jedné skupiny. ClusterCollection obsahuje seznam objektů Cluster: seskupuje shluky dohromady, nikoli jednotlivé datové body.

Mění DataPoint.get_centroid() shluk, který mu je předán?

Ne. Přečte položky, které již jsou v dodaném Cluster, a vrátí nový DataPoint pro centroid; zdrojový shluk a jeho položky zůstávají nezměněny.

Je tato funkce shlukování specifická pro obsah PDF?

Č. DataPoint, Cluster a ClusterCollection jsou obecné primitivy pro číselné shlukování dodávané v balíčku aspose_pdf. Nečtou samy stránky, text ani žádnou jinou strukturu PDF — fungují výhradně na hodnotách, které s nimi vytvoříte.

Proč Cluster.empty() vrací stejnou instanci pokaždé?

Cluster.empty() vrací sdílený singleton, aby opakovaná volání pro “no cluster” nealokovala nový objekt při každém volání.


API Reference Shrnutí

Třída/MetodaPopis:
DataPointPojmenovaný bod obsahující seznam číselných souřadnic.
DataPoint.nameIdentifikační název bodu
DataPoint.valueSeznam číselných souřadnic bodu
DataPoint.get_centroid()Vrátí nový DataPoint průměrující souřadnice všech bodů ve shluku
ClusterSkupina položek, typicky DataPoint instancí
Cluster.empty()Vrátí sdílený singleton prázdného shluku
Cluster.contains()Kontroluje, zda je položka ve shluku
Cluster.clone()Vrací nezávislou kopii clusteru
Cluster.countPočet položek aktuálně v clusteru
ClusterCollectionZabaluje seznam instancí Cluster do jedné kolekce

Viz také:

 Čeština