Rumah Keuangan Pribadi Bagaimana Menemukan Jumlah Elemen dalam Data Stream - dummies

Bagaimana Menemukan Jumlah Elemen dalam Data Stream - dummies

Video: Black Holes Explained – From Birth to Death 2025

Video: Black Holes Explained – From Birth to Death 2025
Anonim

Meskipun filter Bloom dapat melacak objek yang tiba dari sungai, tidak dapat diketahui berapa banyak benda yang ada di sana. Vektor bit yang diisi oleh yang dapat (tergantung pada jumlah hash dan probabilitas tabrakan) menyembunyikan jumlah sebenarnya objek yang digabung pada alamat yang sama.

Mengetahui jumlah objek yang berbeda berguna dalam berbagai situasi, seperti kapan Anda ingin mengetahui berapa banyak pengguna yang berbeda telah melihat halaman situs web tertentu atau jumlah permintaan mesin pencari yang berbeda. Menyimpan semua elemen dan menemukan duplikat di antara mereka tidak dapat bekerja dengan jutaan elemen, terutama yang berasal dari arus. Bila Anda ingin mengetahui jumlah objek yang berbeda dalam arus, Anda tetap harus bergantung pada fungsi hash, namun pendekatannya melibatkan pengambilan sketsa numerik.

Membuat sketsa berarti mengambil perkiraan, itu adalah nilai yang tidak tepat namun tidak sepenuhnya salah sebagai jawaban. Perkiraan bisa diterima karena nilai sebenarnya tidak terlalu jauh dari itu. Dalam algoritma cerdas ini, HyperLogLog, yang didasarkan pada probabilitas dan aproksimasi, Anda mengamati karakteristik angka yang dihasilkan dari arus. HyperLogLog berasal dari studi ilmuwan komputer Nigel Martin dan Philippe Flajolet. Flajolet memperbaiki algoritma awal mereka, Flajolet-Martin (atau algoritma LogLog), ke versi HyperLogLog yang lebih kuat, yang bekerja seperti ini:

  1. Sebuah hash mengubah setiap elemen yang diterima dari arus menjadi sebuah angka.
  2. Algoritma mengubah bilangan menjadi biner, basis standar numerik 2 yang digunakan komputer.
  3. Algoritma menghitung jumlah angka nol awal pada bilangan biner dan lintasan dari jumlah maksimum yang dilihatnya, yaitu n.
  4. Algoritma memperkirakan jumlah elemen yang berbeda yang dilewatkan dalam arus menggunakan n. Jumlah elemen yang berbeda adalah 2 ^ n.

Misalnya, elemen pertama dalam string adalah anjing kata. Algoritma menggabungkannya menjadi nilai integer dan mengubahnya menjadi biner, dengan hasil 01101010. Hanya satu nol yang muncul di awal nomor, jadi algoritma mencatatnya sebagai jumlah maksimum angka nol yang terlihat. Algoritma kemudian melihat kata-kata burung beo dan serigala, yang setara binernya adalah 11101011 dan 01101110, sehingga n tidak berubah. Namun, ketika kata kucing berlalu, hasilnya adalah 00101110, jadi n menjadi 2. Untuk memperkirakan jumlah elemen yang berbeda, algoritma menghitung 2 ^ n, yaitu 2 ^ 2 = 4. Angka tersebut menunjukkan proses ini.

Menghitung hanya angka nol terdepan.

Trik dari algoritma ini adalah jika hash Anda menghasilkan hasil acak, didistribusikan secara merata (seperti pada filter Bloom), dengan melihat representasi biner, Anda dapat menghitung probabilitas bahwa rangkaian angka nol muncul. Karena probabilitas bilangan biner tunggal menjadi 0 adalah satu dari dua, untuk menghitung probabilitas urutan nol, Anda hanya mengalikan probabilitas 1/2 sebanyak itu sebanyak panjang dari nol:

  • 50 persen (1/2) probabilitas untuk angka yang dimulai dengan 0
  • 25 persen (1/2 * 1/2) probabilitas untuk bilangan yang dimulai dengan 00
  • 12. 5 persen (1/2 * 1/2 * 1/2) probabilitas untuk angka yang dimulai dengan kemungkinan 000
  • (1/2) untuk bilangan yang dimulai dengan k nol (Anda menggunakan kekuatan untuk perhitungan lebih cepat dari banyak perkalian dari nomor yang sama)

Semakin sedikit angka yang dilihat HyperLogLog, semakin besar ketidaktepatannya. Akurasi meningkat ketika Anda menggunakan perhitungan HyperLogLog berkali-kali menggunakan fungsi hash yang berbeda dan rata-rata bersama jawaban dari setiap perhitungan, namun hashing berkali-kali membutuhkan waktu, dan arusnya cepat. Sebagai alternatif, Anda dapat menggunakan hash yang sama namun membagi arus menjadi beberapa kelompok (seperti dengan memisahkan elemen menjadi beberapa kelompok saat mereka tiba berdasarkan pesanan kedatangan mereka) dan untuk setiap grup, Anda melacak jumlah maksimum angka nol yang tertinggal. Pada akhirnya, Anda menghitung taksiran elemen yang berbeda untuk setiap kelompok dan menghitung rata-rata aritmatika semua taksiran. Pendekatan ini adalah stochastic averaging dan memberikan perkiraan yang lebih tepat daripada menerapkan algoritma ke keseluruhan aliran.

Bagaimana Menemukan Jumlah Elemen dalam Data Stream - dummies

Pilihan Editor

Bagaimana Mengelola Komentar di WordPress Anda. com Blog - dummies

Bagaimana Mengelola Komentar di WordPress Anda. com Blog - dummies

Buka halaman Komentar dengan mengklik link Komentar di menu navigasi Dashboard WordPress. Halaman Komentar menunjukkan semua komentar di blog Anda sejak hari pertama Anda memulai. Di sini Anda bisa melihat komentar, mengeditnya, menandai mereka sebagai spam, atau flat-out menghapusnya. Jika Anda menetapkan pilihan Komentar Anda jadi ...

Bagaimana Mengelola Pengguna dan Penulis di Blog WordPress Anda - dummies

Bagaimana Mengelola Pengguna dan Penulis di Blog WordPress Anda - dummies

Pengguna WordPress halaman memberitahu Anda tentang semua pengguna di blog Anda. Ini mencantumkan nama pengguna, nama, alamat e-mail, peran di blog Anda, dan jumlah posting yang dibuat ke blog Anda. Untuk mengelola peran pengguna, Anda perlu memahami jenis akses yang diberikan masing-masing peran: Pengikut: Peran default ini ditugaskan untuk ...

Cara Membuat Permalinks WordPress Bekerja dengan Server Anda - dummies

Cara Membuat Permalinks WordPress Bekerja dengan Server Anda - dummies

Setelah Anda mengatur format untuk permalinks untuk situs WordPress Anda dengan menggunakan opsi selain default, WordPress menulis peraturan, atau arahan tertentu ke. htaccess file di server web anda Itu. htaccess file pada gilirannya mengkomunikasikan ke server web Anda bagaimana seharusnya menyajikan permalinks, sesuai dengan permalink ...

Pilihan Editor

Bagaimana cara Log In ke Layanan Cloud - dummies

Bagaimana cara Log In ke Layanan Cloud - dummies

Karena Cloud Service sepenuhnya berbasis di awan, semua Anda benar-benar Kebutuhan untuk mengaksesnya adalah koneksi internet. (Nah, Anda juga memerlukan nama pengguna dan kata sandi.) Anda dapat masuk dari kantor Anda dan kemudian mengambil tempat Anda tinggalkan di hotel saat bepergian di Tokyo. Salesforce memiliki banyak tindakan pengamanan ...

Bagaimana Bergerak di sekitar MYOB - dummies

Bagaimana Bergerak di sekitar MYOB - dummies

Di MYOB, Anda dapat melangkah maju dan mundur melalui setiap jendela pembelajaran saya. untuk mencintai kunci Tab komputer Anda. Ini jauh lebih mudah dan lebih cepat daripada menggunakan mouse anda. Keystrokes Shortcut Result Shift + Tab Bergerak ke belakang ke kolom sebelumnya Enter atau Tab Bergerak ke depan ke kolom berikutnya Alt + F4 Berhenti dan mengemas Esc Membawa ...

Bagaimana Membuka Kasus untuk Pelanggan di Salesforce. Kasus com - dummies

Bagaimana Membuka Kasus untuk Pelanggan di Salesforce. Kasus com - dummies

Adalah dasar Salesforce. com Layanan Cloud. Mereka adalah titik pusat kontak Anda dan apa yang agen hidup dan hirup setiap hari. Kasus adalah catatan penyelidikan layanan atau dukungan untuk pelanggan yang merinci masalah dan semua informasi yang mengelilinginya, seperti yang ditunjukkan. Kasus ...

Pilihan Editor

Menghitung Persen Tujuan di Excel - dummies

Menghitung Persen Tujuan di Excel - dummies

Ketika seseorang meminta Anda untuk menghitung satu persen Tujuannya, dia hanya mengatakan untuk membandingkan kinerja aktual dengan tujuan yang dinyatakan. Matematika yang terlibat dalam perhitungan ini sederhana: Bagilah tujuannya dengan aktual. Ini memberi Anda nilai persentase yang menunjukkan berapa banyak pencapaian yang telah dicapai. Misalnya, jika ...

Menghitung Persentase Varian di Excel - dummies

Menghitung Persentase Varian di Excel - dummies

Varians adalah indikator perbedaan antara satu angka dengan angka lainnya. Untuk memahami hal ini, bayangkan bahwa Anda menjual 120 widget pada suatu hari, dan keesokan harinya, Anda menjual 150. Perbedaan dalam penjualan sebenarnya sangat mudah dilihat; Anda menjual 30 widget lagi. Mengurangkan 120 widget dari 150 widget memberi ...

Menghitung Persentase Varian dengan Nilai Negatif di Excel - dummies

Menghitung Persentase Varian dengan Nilai Negatif di Excel - dummies

Rumus untuk menghitung varian persen dalam Excel bekerja dengan indah dalam banyak kasus. Namun, bila nilai benchmark adalah nilai negatif, rumusnya akan turun. Misalnya, bayangkan Anda memulai bisnis dan berharap bisa kehilangan tahun pertama. Jadi, Anda memberi anggaran sebesar negatif $ 10.000. Sekarang bayangkan itu ...