Mengelompokkan Titik Data

Mengelompokkan Titik Data

Mengelompokkan Titik Data

DataPoint, Cluster, dan ClusterCollection adalah toolkit kecil yang bersifat umum untuk clustering hierarkis-aglomeratif yang disertakan dengan Aspose.PDF FOSS untuk Python. Mereka merupakan primitif pengelompokan data generik — sebuah titik koordinat-dan-label, sekumpulan item, dan koleksi grup — bukan fitur dokumen khusus PDF; tidak ada apa pun dalam modul ini yang membaca atau menulis konten PDF secara langsung. Gunakan mereka ketika kode Anda perlu mengelompokkan nilai numerik (misalnya, pengukuran yang sudah Anda ekstrak dari dokumen) ke dalam klaster dan merangkum sebuah klaster dengan centroidnya.


Merepresentasikan Titik Data

DataPoint mempasangkan name yang mengidentifikasi dengan daftar value koordinat numerik. Kedua-duanya diekspos sebagai DataPoint.name dan DataPoint.value setelah konstruksi.


Membangun dan Menyalin Klaster

Cluster membungkus daftar item opsional menjadi satu grup. Cluster.count melaporkan berapa banyak item yang saat ini dimiliki klaster, Cluster.contains() memeriksa apakah item tertentu merupakan anggota, dan Cluster.clone() mengembalikan salinan independen yang didukung oleh daftar itemnya sendiri. Cluster.empty() mengembalikan instance klaster kosong singleton yang dibagikan alih-alih mengalokasikan yang baru pada setiap pemanggilan.


Mengelompokkan Klaster dalam Koleksi

ClusterCollection membungkus daftar opsional dari instance Cluster menjadi satu koleksi, memberikan Anda satu objek untuk dipass-around ketika sebuah fungsi perlu menerima atau mengembalikan lebih dari satu cluster sekaligus.


Menghitung Sentroid Cluster

DataPoint.get_centroid() menghitung rata-rata koordinat setiap titik data dalam Cluster, posisi demi posisi, dan mengembalikan DataPoint baru yang mewakili sentroid. Setiap titik dalam cluster harus memiliki jumlah dimensi yang sama dalam DataPoint.value agar rata-ratanya bermakna.


Tips dan Praktik Terbaik

  • Pastikan setiap daftar DataPoint.value memiliki panjang yang sama dalam sebuah cluster — DataPoint.get_centroid() menghitung rata-rata koordinat posisi demi posisi, sehingga dimensi yang tidak cocok menghasilkan sentroid yang menyesatkan.
  • Gunakan Cluster.empty() untuk cluster kosong singleton yang dibagikan alih-alih membuat cluster kosong baru ketika Anda hanya membutuhkan nilai placeholder.
  • Panggil Cluster.clone() sebelum memodifikasi sebuah cluster yang masih Anda perlukan versi aslinya di tempat lain — cloning menyalin daftar item alih-alih membuat alias.
  • Gunakan ClusterCollection ketika sebuah fungsi perlu menerima atau mengembalikan lebih dari satu Cluster sebagai satu nilai.
  • Kelas-kelas ini adalah utilitas umum, bukan fitur parsing PDF — padukan mereka dengan logika Anda sendiri untuk menghasilkan nilai DataPoint dari data dokumen.

Masalah Umum

MasalahPenyebabPerbaikan
DataPoint.get_centroid() menghasilkan centroid dengan jumlah nilai yang tidak terdugaPoin data dalam klaster memiliki daftar DataPoint.value dengan panjang yang berbedaPastikan setiap DataPoint yang ditambahkan ke Cluster memiliki dimensi yang sama
Cluster.contains() mengembalikan False untuk nilai yang Anda harapkan adaKeanggotaan diperiksa langsung terhadap objek item yang disimpan, sehingga dua instance DataPoint yang dibuat secara terpisah dengan nama dan nilai yang sama tidak secara otomatis diperlakukan sama oleh pencarian berbasis identitasGunakan kembali instance DataPoint yang sama, atau bandingkan dengan DataPoint.name dan DataPoint.value sebelum menganggap keanggotaan
Memodifikasi klaster yang dikloning juga mengubah yang asliCluster.clone() dilewati dan referensi Cluster yang sama dibagikan alih-alih disalinPanggil Cluster.clone() terlebih dahulu setiap kali pemanggil membutuhkan salinan independen

FAQ

Apa perbedaan antara Cluster dan ClusterCollection?

Cluster menyimpan daftar item — biasanya instance DataPoint — yang termasuk dalam satu grup. ClusterCollection menyimpan daftar objek Cluster: ia mengelompokkan klaster bersama-sama, bukan titik data individu.

Apakah DataPoint.get_centroid() memodifikasi klaster yang diberikan?

Tidak. Ia membaca item yang sudah ada dalam Cluster yang disediakan dan mengembalikan DataPoint baru untuk pusat massa; klaster sumber dan itemnya tetap tidak berubah.

Apakah fungsionalitas pengelompokan ini khusus untuk konten PDF?

No. DataPoint, Cluster, dan ClusterCollection adalah primitif pengelompokan numerik generik yang dikirim dalam paket aspose_pdf. Mereka tidak membaca halaman, teks, atau struktur PDF lainnya secara langsung — mereka beroperasi semata-mata pada nilai yang Anda buat untuk mereka.

Mengapa Cluster.empty() mengembalikan instance yang sama setiap kali?

Cluster.empty() mengembalikan singleton bersama sehingga panggilan berulang untuk “no cluster” tidak membuat objek baru pada setiap panggilan.


API Reference Ringkasan

Kelas/MetodeDeskripsi
DataPointSebuah titik bernama yang menyimpan daftar koordinat numerik
DataPoint.nameNama identifikasi titik
DataPoint.valueDaftar koordinat numerik titik
DataPoint.get_centroid()Mengembalikan DataPoint baru yang meratakan koordinat setiap titik dalam sebuah cluster
ClusterSekelompok item, biasanya berupa instance DataPoint
Cluster.empty()Mengembalikan singleton cluster kosong yang dibagikan
Cluster.contains()Memeriksa apakah sebuah item berada di dalam cluster
Cluster.clone()Mengembalikan salinan independen dari cluster
Cluster.countJumlah item yang saat ini ada di dalam cluster
ClusterCollectionMembungkus daftar instance Cluster menjadi satu koleksi

Lihat Juga

 Bahasa Indonesia