Gegevenspunten clusteren

Gegevenspunten clusteren

Clusteren van gegevenspunten

DataPoint, Cluster en ClusterCollection vormen een kleine, algemene hiërarchisch-agglomeratieve clustering-toolkit die wordt meegeleverd met Aspose.PDF FOSS voor Python. Het betreft generieke primitive voor het groeperen van data — een coördinaat-en-labelpunt, een groep items en een verzameling groepen — en geen PDF-specifieke documentfunctie; deze module leest of schrijft geen PDF-inhoud. Gebruik ze wanneer je eigen code numerieke waarden moet groeperen (bijvoorbeeld metingen die je al uit een document hebt gehaald) in clusters en een cluster wilt samenvatten met zijn centroid.


Een gegevenspunt weergeven

DataPoint koppelt een identificerende name aan een value lijst van numerieke coördinaten. Beide worden na constructie beschikbaar gesteld als DataPoint.name en DataPoint.value.


Clustergroepen bouwen en kopiëren

Cluster verpakt een optionele lijst van items in één groep. Cluster.count geeft aan hoeveel items de cluster momenteel bevat, Cluster.contains() controleert of een bepaald item lid is, en Cluster.clone() levert een onafhankelijke kopie die zijn eigen itemlijst gebruikt. Cluster.empty() levert een gedeelde, singleton-empty-cluster-instantie in plaats van bij elke aanroep een nieuw exemplaar te maken.


Clustergroepen groeperen in een collectie

ClusterCollection verpakt een optionele lijst van Cluster-instanties in één collectie, waardoor je één object krijgt om rond te geven wanneer een functie meer dan één cluster tegelijk moet accepteren of retourneren.


Berekenen van een Clustercentroid

DataPoint.get_centroid() gemiddeld de coördinaten van elk datapunt in een Cluster, positie per positie, en retourneert een nieuw DataPoint dat de centroid vertegenwoordigt. Elk punt in de cluster moet in DataPoint.value hetzelfde aantal dimensies hebben zodat het gemiddelde betekenisvol is.


Tips en best practices

  • Zorg dat elke DataPoint.value-lijst dezelfde lengte heeft binnen een cluster — DataPoint.get_centroid() gemiddeld coördinaten positie per positie, waardoor niet-overeenkomende dimensies een misleidende centroid opleveren.
  • Gebruik Cluster.empty() voor een gedeelde, enkele lege cluster in plaats van een nieuw lege cluster te construeren wanneer je alleen een tijdelijke waarde nodig hebt.
  • Roep Cluster.clone() aan voordat je een cluster wijzigt waarvan je de originele elders nog nodig hebt — klonen kopieert de itemslijst in plaats van een alias te maken.
  • Gebruik ClusterCollection wanneer een functie meer dan één Cluster moet accepteren of retourneren als één enkele waarde.
  • Deze klassen zijn generieke hulpprogramma’s, geen PDF-parsefunctie — combineer ze met je eigen logica om de DataPoint-waarden uit documentgegevens te genereren.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
DataPoint.get_centroid() produceert een centroid met een onverwacht aantal waardenDatapunten in de cluster hebben DataPoint.value lijsten met verschillende lengtesZorg ervoor dat elke DataPoint die aan een Cluster wordt toegevoegd dezelfde dimensionaliteit heeft
Cluster.contains() geeft False terug voor een waarde waarvan je verwacht dat deze aanwezig isLidmaatschap wordt direct gecontroleerd tegen de opgeslagen itemobjecten, zodat twee afzonderlijk geconstrueerde DataPoint-instanties met dezelfde naam en waarde niet automatisch als gelijk worden beschouwd bij identiteitsgebaseerde zoekopdrachtenHerbruik dezelfde DataPoint instantie, of vergelijk op DataPoint.name en DataPoint.value voordat je lidmaatschap aanneemt
Het muteren van een gekloonde cluster wijzigt ook het origineelCluster.clone() werd overgeslagen en dezelfde Cluster-referentie werd gedeeld in plaats van gekopieerdRoep Cluster.clone() eerst aan wanneer een aanroeper een onafhankelijke kopie nodig heeft

FAQ

Wat is het verschil tussen Cluster en ClusterCollection?

Cluster bevat een lijst met items — meestal DataPoint-instanties — die tot één groep behoren. ClusterCollection bevat een lijst met Cluster-objecten: het groepeert clusters, niet individuele datapunten.

Wijzigt DataPoint.get_centroid() de cluster die het krijgt?

Nee. Het leest de items die al in de opgegeven Cluster staan en retourneert een nieuwe DataPoint voor het centroid; de broncluster en zijn items blijven ongewijzigd.

Is deze clusteringfunctionaliteit specifiek voor PDF-inhoud?

Nr. DataPoint, Cluster en ClusterCollection zijn generieke numerieke-clustering-primitieven die worden meegeleverd in het aspose_pdf-pakket. Ze lezen zelf geen pagina’s, tekst of andere PDF-structuren — ze werken uitsluitend met de waarden waarmee je ze aanmaakt.

Waarom geeft Cluster.empty() elke keer dezelfde instantie terug?

Cluster.empty() geeft een gedeelde singleton terug zodat herhaalde oproepen voor “no cluster” niet bij elke oproep een nieuw object toewijzen.


API Reference Samenvatting

Klasse/MethodeBeschrijving
DataPointEen benoemd punt dat een lijst met numerieke coördinaten bevat
DataPoint.nameDe identificerende naam van het punt
DataPoint.valueDe lijst met numerieke coördinaten van het punt
DataPoint.get_centroid()Retourneert een nieuwe DataPoint die de coördinaten van elk punt in een cluster gemiddeld
ClusterEen groep items, meestal DataPoint-instanties
Cluster.empty()Retourneert de gedeelde lege-cluster singleton
Cluster.contains()Controleert of een item zich in de cluster bevindt
Cluster.clone()Retourneert een onafhankelijke kopie van de cluster
Cluster.countHet aantal items dat zich momenteel in de cluster bevindt
ClusterCollectionVerpakt een lijst van Cluster-instanties in één collectie

Zie ook

 Nederlands