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 2024

Video: Black Holes Explained – From Birth to Death 2024
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

Perancang Minigame Minigame - dummies

Perancang Minigame Minigame - dummies

Sebelum menulis semua kode untuk membuat Minecraft Minigame, Anda perlu merancang permainan Anda. The Gameplay Loop adalah proses sederhana yang bisa Anda ikuti untuk memastikan permainan Anda menyenangkan, menantang, dan lengkap. The Gameplay Loop memiliki empat bagian: Start: Buat adegan dasar. Tujuan: Menambahkan cara untuk menang dan ...

Menciptakan Efek Air dan Es di Minecraft - dummies

Menciptakan Efek Air dan Es di Minecraft - dummies

Satu hal yang rapi tentang Minecraft adalah bahwa beberapa fisika realistis sedang dimainkan dalam permainan. Misalnya, jika Anda memiliki air dan Anda memasukkan es ke dalamnya, itu akan membeku! Oke, mungkin di dunia nyata, menambahkan es tidak membuat air membeku, tapi memang membuatnya lebih dingin. Anda dapat melihat ini ...

Mendapatkan Minecraft Experience Points - dummies

Mendapatkan Minecraft Experience Points - dummies

Di Minecraft, experience points, XP untuk jangka pendek, dikumpulkan dari bola pengalaman bercahaya. Sebagai pemain mengumpulkan cukup bola dan meningkatkan tingkat pengalaman mereka, mereka akan dapat menggunakan tabel dan landasan yang mempesona untuk meningkatkan kemampuan banyak item seperti senjata, baju besi, dan peralatan. Jadi, bagaimana Anda bisa cepat mendapatkan ini ...

Pilihan Editor

Bagaimana Mendidik dengan Infografis Informasi Dokumentual - dummies

Bagaimana Mendidik dengan Infografis Informasi Dokumentual - dummies

Infomasi editorial sama dengan artikel berita karena tujuan utamanya adalah untuk mengirimkan informasi. Di bawah payung grafis editorial, ada beberapa tipe yang berbeda, dengan keseimbangan bias dan objektivitas yang berbeda. Berikut adalah beberapa melihat: Badai salju menghantam kota Anda. Koran lokal menciptakan grafik yang menunjukkan hujan salju ...

Bagaimana Mengimpor Sketsa ke Ilustrator untuk Menciptakan Infografis - dummies

Bagaimana Mengimpor Sketsa ke Ilustrator untuk Menciptakan Infografis - dummies

Bahkan di dunia kabel ini, seniman masih suka sketsa Kabar baik! Sketsa kasar Anda dapat dengan mudah digunakan dalam draf infografis Anda. Anda dapat memindai sketsa atau mengambil gambar sketsa Anda dengan telepon Anda dan mengirim e-mail ke komputer Anda sendiri. Mereka tidak perlu diwarnai, cukup jelas bagi Anda untuk ...

Bagaimana cara memasukkan ilustrasi di Infografis Anda - jeleknya

Bagaimana cara memasukkan ilustrasi di Infografis Anda - jeleknya

Infografis yang baik (jelas) harus mencakup seni yang bagus. Ilustrasi mempromosikan alur cerita, menentukan elemen secara visual, dan mencerahkan halaman yang mungkin diisi dengan tipe abu-abu. Ilustrasi bisa berupa gambar fisik, semacam bagan atau grafik, atau bahkan garis waktu. Kehidupan sehari-hari Anda dipenuhi dengan contoh bagaimana ilustrasi ...

Pilihan Editor

GED Contoh Pertanyaan: Penalaran Melalui Bahasa Seni Membaca Informasi Teknis - dummies

GED Contoh Pertanyaan: Penalaran Melalui Bahasa Seni Membaca Informasi Teknis - dummies

Tentang Penalaran Melalui bagian Seni Bahasa GED, Anda mungkin diminta untuk menjawab pertanyaan tentang bagian teknis. Ini bisa termasuk petunjuk cara melengkapi, seperti berikut. Pertanyaan dalam artikel ini mengacu pada kutipan berikut dari Russell Hart's Photography For Dummies, 2nd Edition (Wiley). Apa Rahasia Untuk ...

GED Contoh Pertanyaan: Pertanyaan singkat tentang Ilmu Pengetahuan - dummies

GED Contoh Pertanyaan: Pertanyaan singkat tentang Ilmu Pengetahuan - dummies

Di beberapa titik selama bagian Ilmu Pengetahuan dari Tes GEE, Anda akan diminta untuk membuat jawaban singkat. Anda akan diberi sebuah bagian dan mengajukan pertanyaan yang perlu Anda tanggapi. Buat respons Anda jelas dan ringkas. Bagian Jawaban Jawaban Semua orang mengenal keju cheddar. Orang-orang meletakkan ...

GED Contoh Pertanyaan: Ilmu Sosial dan Media - dummies

GED Contoh Pertanyaan: Ilmu Sosial dan Media - dummies

Di bagian Ilmu Sosial GED, Anda mungkin diminta untuk menjawab pertanyaan tentang berbagai bentuk media, termasuk siaran berita. Lihatlah contoh berikut di bawah ini. Pertanyaan dalam artikel ini mengacu pada siaran berita berikut. Berita Lingkungan Dunia Selamat malam dan selamat datang di World Environmental News. Cerita kami ini ...