Veri Noktalarını Kümeleme
Veri Noktalarını Kümeleme
DataPoint, Cluster ve ClusterCollection, Aspose.PDF FOSS ile birlikte Python için paketlenmiş küçük, genel amaçlı hierarchical-agglomerative-clustering araç takımıdır. Bunlar, koordinat ve etiket noktasını, bir öğe grubunu ve grup koleksiyonunu içeren genel veri-gruplama ilkelerdir — PDF’ye özgü bir belge özelliği değildir; bu modülde PDF içeriği okunmaz veya yazılmaz. Kendi kodunuzun sayısal değerleri (örneğin, bir belgelerden zaten çıkardığınız ölçümler) kümelere gruplaması ve bir kümeyi merkez noktasıyla özetlemesi gerektiğinde bunları kullanın.
Bir Veri Noktasını Temsil Etme
DataPoint, tanımlayıcı bir name ile sayısal koordinatların bir value listesi eşleştirir. İkisi de oluşturulduktan sonra DataPoint.name ve DataPoint.value olarak sunulur.
Kümeleri Oluşturma ve Kopyalama
Cluster, isteğe bağlı bir öğe listesini tek bir gruba sarar. Cluster.count, kümenin şu anda kaç öğe tuttuğunu rapor eder, Cluster.contains(), verilen bir öğenin üye olup olmadığını kontrol eder ve Cluster.clone(), kendi öğe listesiyle desteklenen bağımsız bir kopya döndürür. Cluster.empty(), her çağrıda yeni bir tane ayırmak yerine paylaşılan, tek örnekli empty-cluster örneğini döndürür.
Kümeleri Bir Koleksiyonda Gruplama
ClusterCollection, isteğe bağlı bir Cluster örnekleri listesini tek bir koleksiyonda sarar, bir fonksiyonun aynı anda birden fazla küme kabul etmesi veya döndürmesi gerektiğinde dolaştırabileceğiniz tek bir nesne sağlar.
Küme Merkezinin Hesaplanması
DataPoint.get_centroid(), bir Cluster içindeki her veri noktasının koordinatlarını konum konum ortalar ve merkez noktayı temsil eden yeni bir DataPoint döndürür. Ortalamanın anlamlı olması için kümedeki her nokta DataPoint.value içinde aynı sayıda boyuta sahip olmalıdır.
İpuçları ve En İyi Uygulamalar
- Bir küme içinde her
DataPoint.valuelistesinin aynı uzunlukta olmasını sağlayın —DataPoint.get_centroid(), koordinatları konum konum ortalar, bu yüzden boyut uyumsuzlukları yanıltıcı bir merkez nokta üretir. - Sadece bir yer tutucu değere ihtiyacınız olduğunda yeni bir boş küme oluşturmak yerine, paylaşımlı, tekil boş küme için
Cluster.empty()kullanın. - Bir kümenin orijinaline başka bir yerde hâlâ ihtiyacınız olacaksa, onu değiştirmeden önce
Cluster.clone()çağırın — kopyalama, öğe listesini aliaslamaktan ziyade kopyalar. - Bir fonksiyonun tek bir değer olarak birden fazla
Clusterkabul etmesi veya döndürmesi gerektiğindeClusterCollectionkullanın. - Bu sınıflar genel yardımcı programlardır, PDF ayrıştırma özelliği değildir — belge verilerinden
DataPointdeğerlerini üretmek için kendi mantığınızla eşleştirin.
Sık Karşılaşılan Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
DataPoint.get_centroid() beklenmeyen sayıda değer içeren bir centroid üretir | Kümedeki veri noktalarının DataPoint.value listeleri farklı uzunluklarda | Her bir DataPoint‘in bir Cluster‘e eklenirken aynı boyutluluğa sahip olduğundan emin olun |
Cluster.contains(), mevcut olmasını beklediğiniz bir değer için False döndürür | Üyelik, depolanmış öğe nesnelerine doğrudan karşılaştırılarak kontrol edilir, bu nedenle aynı ada ve değere sahip iki ayrı şekilde oluşturulmuş DataPoint örneği, kimlik tabanlı aramalarda otomatik olarak eşit kabul edilmez | Üyeliği varsaymadan önce aynı DataPoint örneğini yeniden kullanın veya DataPoint.name ve DataPoint.value ile karşılaştırın |
| Klonlanmış bir kümeyi değiştirmek aynı zamanda orijinali de değiştirir | Cluster.clone() atlandı ve aynı Cluster referansı kopyalanmak yerine paylaşıldı | Bir çağıranın bağımsız bir kopyaya ihtiyacı olduğunda önce Cluster.clone() çağırın |
FAQ
Cluster ve ClusterCollection arasındaki fark nedir?
Cluster, bir gruba ait öğelerin — genellikle DataPoint örnekleri — bir listesini tutar. ClusterCollection, Cluster nesnelerinin bir listesini tutar: bireysel veri noktalarını değil, kümeleri bir arada gruplar.
DataPoint.get_centroid() verilen kümeyi değiştirir mi?
Hayır. Sağlanan Cluster içindeki mevcut öğeleri okur ve merkez nokta için yeni bir DataPoint döndürür; kaynak küme ve öğeleri değişmeden kalır.
Bu kümeleme işlevselliği PDF içeriğine özgü mü?
No. DataPoint, Cluster ve ClusterCollection genel sayısal kümeleme ilkelerdir ve aspose_pdf paketinin içinde gönderilir. Kendileri sayfaları, metni veya başka bir PDF yapısını okumaz — sadece sizin oluşturduğunuz değerler üzerinde çalışırlar.
Cluster.empty() neden her seferinde aynı örneği döndürür?
Cluster.empty(), “no cluster” için yinelenen çağrılarda her seferinde yeni bir nesne tahsis edilmemesi amacıyla paylaşılan bir singleton döndürür.
API Reference Özeti
| Sınıf/Yöntem | Açıklama |
|---|---|
DataPoint | Sayısal koordinatların bir listesini tutan adlandırılmış bir nokta |
DataPoint.name | Noktanın tanımlayıcı adı |
DataPoint.value | Noktanın sayısal koordinat listesi |
DataPoint.get_centroid() | Kümedeki her noktanın koordinatlarını ortalayan yeni bir DataPoint döndürür |
Cluster | Genellikle DataPoint örneklerinden oluşan bir öğe grubu |
Cluster.empty() | Paylaşılan empty-cluster tek örneğini döndürür |
Cluster.contains() | Bir öğenin kümede olup olmadığını kontrol eder |
Cluster.clone() | Kümenin bağımsız bir kopyasını döndürür |
Cluster.count | Kümede şu anda bulunan öğe sayısı |
ClusterCollection | Bir koleksiyon içinde Cluster örneklerinin bir listesini sarar |