Adatpontok klaszterezése

Adatpontok klaszterezése

Adatpontok klaszterezése

DataPoint, Cluster és ClusterCollection egy kis, általános célú hierarchikus agglomeratív klaszterező eszközkészlet, amely a Aspose.PDF FOSS csomag részeként érhető el a Python számára. Általános adatcsoportosító primitíveket biztosít — egy koordináta-és-címke pontot, egy elemekből álló csoportot és egy csoportgyűjteményt — nem PDF-specifikus dokumentumfunkcióként; ebben a modulban semmi nem olvas vagy ír PDF tartalmat. Használd őket, amikor a saját kódodnak numerikus értékeket kell csoportosítania (például már egy dokumentumból kinyert méréseket) klaszterekbe, és egy klasztert a középpontjával szeretnéd összefoglalni.


Adatpont ábrázolása

DataPoint egy azonosító name elemet párosít egy value numerikus koordinátákat tartalmazó listával. Mindkettő DataPoint.name és DataPoint.value néven érhető el a létrehozás után.


Klaszterek építése és másolása

Cluster egy opcionális elemlistát egyetlen csoportba csomagolja. Cluster.count visszaadja, hogy a klaszter jelenleg hány elemet tartalmaz, Cluster.contains() ellenőrzi, hogy egy adott elem tagja-e, és Cluster.clone() egy független másolatot ad vissza, amely saját elemlistával rendelkezik. Cluster.empty() egy megosztott, egyetlen példányú üres klaszter-instanciát ad vissza, ahelyett, hogy minden hívásnál új példányt allokálna.


Klaszterek csoportosítása egy gyűjteményben

ClusterCollection egy opcionális Cluster példányok listáját egyetlen gyűjteménybe csomagolja, így egy objektumot kapunk, amit átadhatunk, ha egy függvénynek egyszerre több klasztert kell elfogadnia vagy visszaadnia.


Klaszter középpontjának kiszámítása

DataPoint.get_centroid() minden adatpont koordinátáit egy Cluster esetén pozícióról pozícióra átlagolja, és visszaad egy új DataPoint objektumot, amely a középpontot reprezentálja. A klaszter minden pontjának ugyanannyi dimenzióval kell rendelkeznie a DataPoint.value esetében, hogy az átlag értelmes legyen.


Tippek és bevált gyakorlatok

  • Tartsd minden DataPoint.value listát azonos hosszúságúban egy klaszteren belül — a DataPoint.get_centroid() koordinátákat pozícióról pozícióra átlagolja, ezért a nem egyező dimenziók félrevezető középpontot eredményeznek.
  • Használd a Cluster.empty() értéket egy megosztott, egyedülálló üres klaszterhez, ahelyett, hogy új üres klasztert hoznál létre, ha csak egy helykitöltő értékre van szükséged.
  • Hívd meg a Cluster.clone() függvényt, mielőtt megváltoztatnád azt a klasztert, amelynek az eredeti példányra máshol még szükséged van — a klónozás az elemlistát másolja, nem csak alias-olja.
  • Használd a ClusterCollection értéket, amikor egy függvénynek egyszerre több Cluster értéket kell elfogadnia vagy visszaadnia egyetlen értékként.
  • Ezek az osztályok általános segédprogramok, nem PDF-elemző funkció — párosítsd őket a saját logikáddal, hogy a dokumentum adatokból DataPoint értékeket állíts elő.

Gyakori problémák

ProblémaOkJavítás
DataPoint.get_centroid() egy váratlan számú értékkel rendelkező középpontot hoz létreA klaszter adatpontjainak DataPoint.value listái különböző hosszúságúakBiztosítsa, hogy minden DataPoint, amelyet egy Cluster-hez adnak, azonos dimenzióval rendelkezzen
Cluster.contains() visszaad False-t egy olyan értékre, amelynek jelen kellene lennieA tagságot közvetlenül a tárolt elemobjektumokkal ellenőrzik, így két külön-külön létrehozott DataPoint példány, amelyeknek ugyanaz a neve és értéke, nem lesznek automatikusan egyenlőnek tekintve az identitás-alapú keresések soránHasználd újra ugyanazt a DataPoint példányt, vagy hasonlítsd össze a DataPoint.name és DataPoint.value alapján, mielőtt a tagságot feltételeznéd
Egy klónozott klaszter módosítása az eredetit is megváltoztatja.A Cluster.clone() ki lett hagyva, és a Cluster ugyanaz a hivatkozás lett megosztva a másolás helyett.Hívd meg először a Cluster.clone() függvényt, ha a hívónak független másolatra van szüksége.

FAQ

Mi a különbség a Cluster és a ClusterCollection között?

Cluster egy elemlistát tartalmaz — általában DataPoint példányokat — amelyek egy csoporthoz tartoznak. ClusterCollection egy Cluster objektumok listáját tartalmaz: klasztereket csoportosít együtt, nem egyedi adatpontokat.

Módosítja a DataPoint.get_centroid() a kapott klasztert?

Nem. A már megadott Cluster elemeit olvassa, és egy új DataPoint objektumot ad vissza a középponthoz; a forrásklaszter és annak elemei változatlanok maradnak.

Ez a klaszterezési funkció PDF-tartalomra specifikus?

A DataPoint, Cluster és ClusterCollection általános numerikus klaszterezési primitívek, amelyek a aspose_pdf csomagban érkeznek. Ezek nem olvasnak oldalakat, szöveget vagy bármilyen más PDF struktúrát – kizárólag az általad megadott értékeken működnek.

Miért ad vissza a Cluster.empty() minden alkalommal ugyanazt a példányt?

Cluster.empty() egy megosztott singleton-t ad vissza, hogy az ismételt “no cluster” hívások ne foglaljanak új objektumot minden alkalommal.


API Reference Összegzés

Osztály/MódszerLeírás
DataPointEgy elnevezett pont, amely numerikus koordináták listáját tartalmazza.
DataPoint.nameA pont azonosító neve
DataPoint.valueA pont numerikus koordináták listája
DataPoint.get_centroid()Visszaad egy új DataPoint objektumot, amely egy klaszterben lévő minden pont koordinátáit átlagolja
ClusterEgy csoport elemből, általában DataPoint példányok
Cluster.empty()Visszaadja a megosztott üres klaszter singleton objektumot
Cluster.contains()Ellenőrzi, hogy egy elem a klaszterben van-e
Cluster.clone()Visszaad egy független másolatot a klaszterről
Cluster.countA klaszterben jelenleg lévő elemek száma
ClusterCollectionEgy Cluster példányok listáját egyetlen gyűjteménybe csomagolja

Lásd még:

 Magyar