Ev Kişisel Finans Bir Veri Akışındaki Elemanların Sayısını Bulma - Bir Bloom olmasına karşın, yamuklar

Bir Veri Akışındaki Elemanların Sayısını Bulma - Bir Bloom olmasına karşın, yamuklar

Video: Kevin Richard - How to rank on Google Turkey? A machine learning-based ranking factor study 2024

Video: Kevin Richard - How to rank on Google Turkey? A machine learning-based ranking factor study 2024
Anonim

Bir Bloom filtresi bir akıştan gelen nesneleri izleyebiliyor olsa bile, orada kaç nesne olduğunu söyleyemez. Biriyle dolu bir bit vektör (hash sayısına ve çarpışma olasılığına bağlı olarak) aynı adreste hash edilen gerçek nesne sayısını gizleyebilir.

Nesnelerin sayısının bilinmesi, kaç farklı kullanıcının belirli bir web sitesi sayfasını veya farklı arama motoru sorgusu sayısını gördüğünü bilmek istediğiniz zamanlarda olduğu gibi çeşitli durumlarda yararlıdır. Tüm öğeleri saklama ve aralarında bulunan kopyaları bulma, özellikle bir akıştan gelen milyonlarca elementle çalışamaz. Bir akıştaki farklı nesnelerin sayısını öğrenmek isterseniz, hala bir karma işleve güvenmek zorundasınız, ancak yaklaşım sayısal bir eskiz almayı gerektiriyor.

Eskiz yaklaşımı almak demektir; bu, tam olarak yanlış olmayan fakat tam olarak yanlış olmayan bir değerdir. Yaklaşım kabul edilebilir, çünkü gerçek değer ondan çok uzak değildir. Olasılık ve yaklaşıklığa dayanan bu akıllı algoritmada, HyperLogLog,, akıştan üretilen sayıların özelliklerini gözlemliyorsunuz. HyperLogLog, bilgisayar bilimcileri Nigel Martin ve Philippe Flajolet'in çalışmalarından kaynaklanmaktadır. Flajolet, ilk algoritması olan Flajolet-Martin (veya LogLog algoritması) daha iyi olan HyperLogLog sürümüne geçti:

  1. Bir karma akıştan alınan her öğeyi bir sayıya dönüştürür.
  2. Algoritma, sayıları ikili olarak, bilgisayarların kullandığı taban 2 sayısal standarda çevirir.
  3. Algoritma, ikili sayıdaki başlangıç ​​sıfırlarının sayısını ve gördüğü maksimum sayıdaki parçayı sayar, bu n 'dır.
  4. Algoritma, akışı aktarılan farklı öğelerin sayısını n kullanarak tahmin eder. Farklı öğelerin sayısı 2 ^ n 'dır.

Örneğin, dizedeki ilk öğe köpek sözcüğüdür. Algoritma onu bir tamsayı değerine dönüştürür ve ikili olarak dönüştürür, 01101010 sonucunu verir. Numaranın başında sadece bir sıfır görünür, böylece algoritma bunu en fazla izlenen sıfır sayısı olarak kaydeder. Ardından algoritma, ikili eşdeğerleri 11101011 ve 01101110 olan n'yi değiştirmeden bırakan papağan ve kurt, sözcüklerini görür. Bununla birlikte, kedi sözcüğü geçtiğinde, çıktı 00101110, dolayısıyla n 2 olur. Ayrı öğelerin sayısını tahmin etmek için, algoritma 2 ^ n, yani 2 ^ 2 = 4'ü hesaplar. Şekil bu işlemi göstermektedir.

Yalnızca önde gelen sıfırları sayma.

Algoritmanın püf noktası, karması rastgele sonuçlar üretiyorsa (Bloom filtresinde olduğu gibi) eşit olarak dağıtılırken, ikili gösterime bakarak, bir sıfır dizisinin göründüğü olasılığı hesaplayabilirsiniz. Tek bir ikili sayının 0 olması olasılığı ikide bir olduğundan, sıfırların sıralarının olasılığını hesaplamak için, bu 1/2 olasılığın, sıfırların sırasının uzunluğu kadar bir çok kez çarparsınız:

  • yüzde 50 0
  • ile başlayan sayılar için olasılık (1/2) olasılığı 00
  • ile başlayan sayıların% 25'i (1/2 * 1/2) olasılık 12. K sıfırlar ile başlayan sayılarda 000
  • (1/2) ^ k ile başlayan sayılar için yüzde 5 (1/2 * 1/2 * 1/2) olasılık. (Birçok çarpmanın daha hızlı hesaplanması için güç kullanırsınız. aynı sayı)

HyperLogLog'un gördüğü sayılar ne kadar az olursa, o zaman hatalılık artar. Doğruluk, farklı karma işlevleri kullanarak birçok kez HyperLogLog hesaplamasını kullandığınızda artar ve her hesaplamadan gelen cevapların ortalaması alınır, ancak birçok karma işlemi zaman alır ve akışlar hızlıdır. Alternatif olarak, aynı bölü çizelgesini kullanabilir, ancak akışın gruplara bölünebileceği (varış siparişine göre öğeleri gruplara ayırıp ayırarak) ve her grup için en fazla sayıda sıfırın arkasındaki sıfırları takip etmiş olursunuz. Sonunda, her bir grup için ayrı öğe tahminini hesaplar ve tüm tahminlerin aritmetik ortalamasını hesaplarsınız. Bu yaklaşım stokastik ortalamadır ve algoritmayı tüm akışa uygulamaktan daha kesin tahminler sağlar.

Bir Veri Akışındaki Elemanların Sayısını Bulma - Bir Bloom olmasına karşın, yamuklar

Editörün Seçimi

Dijital Fotoğrafınızda Odak Noktası Yaratın - mankenler

Dijital Fotoğrafınızda Odak Noktası Yaratın - mankenler

Fotoğraf bir sanat biçimidir. İyi fotoğrafçılar, insanların bakmak isteyeceği çekici bir fotoğraf oluşturmak için kompozisyon kurallarını kullanırlar. Resminizi nasıl görselleştireceğinizi, çerçevede olanı düzenleyebileceğinizi ve ardından ilginç bir fotoğraf oluşturmak için kompozisyon kurallarını nasıl kullanacağınız. Doğal çerçeveleri kullanma Doğal çerçeveleri çizmek için kullanabilirsiniz ...

Dijital Fotoğraf Makinenizi Kullanarak Panoramik Resimler Oluşturma - mankenler

Dijital Fotoğraf Makinenizi Kullanarak Panoramik Resimler Oluşturma - mankenler

Dijital fotoğraf makineniz size yol göstermez panoramik bir fotoğraf çekmek için. Ancak, kesintisiz bir panoramik çekim oluşturmak için çakışan birkaç resim çekebilir ve onları birbirine dikebilirsiniz. Fotoğraf panoramasını oluşturmak için işinize bakalım:

Ham Dosyaları dönüştürme - mankenler

Ham Dosyaları dönüştürme - mankenler

Birçok dijital fotoğraf makinesi, görüntüleri Camera Raw dosya biçiminde veya sadece Ham olarak yakalayabilir. Bu format, JPEG formatında çekim yaparken oluşan olağan post-processing'leri uygulamadan herhangi bir görüntü sensöründen elde edilen ham görüntü verilerini depolar. Ham formatta çekim, bir takım avantajlar sunar. Fakat olumsuz ...

Editörün Seçimi

Ile iBS Dostu Tarçın Krepleri Ghee - dummies'le Domuz Dostu Tarçın Krep

Ile iBS Dostu Tarçın Krepleri Ghee - dummies'le Domuz Dostu Tarçın Krep

Sabahınıza enerji artışı sağlayan krep düşünün endişesizsiniz. Bu tarif, bir sabah herkesin sevebileceği bir Karbonhidrat Diyeti (SCD) versiyonudur.

IBS Sufferers için sardalya Yayılmış Tarif - mankenler

IBS Sufferers için sardalya Yayılmış Tarif - mankenler

Bu aperitif, pumpernickel ekmeği konusunda harika, fakat ayrıca buğdaydan kaçınırsanız, filizlenmiş ekmeği denemek istersiniz. Sardalya, iyi bir kalsiyum ve D vitamini kaynağı olduğu kadar, iltihap düzeylerini azaltmaya yardımcı olduğu bilinen omega-3 yağ asitleri. Kredi: © Digiphoto, 2006 Caroline Nation bunu geliştirdi ...

Editörün Seçimi

ASVAB: Kelime Bilgisi Alt Test Uygulaması - mankenler

ASVAB: Kelime Bilgisi Alt Test Uygulaması - mankenler

ASVAB'da göreceğiniz alt testlerden bir tanesi Kelime Bilgi testi. Test gününde soruların ve biçimin neye benzeyeceği hakkında bir fikir edinmek için aşağıdaki soruları inceleyin. Örnek sorular Kelime Bilgi Zamanı: 35 soru için 11 dakika Talimatlar: Kelime Bilgisi alt testi üçüncü alt testtir ...

ASVAB Paragraf Anlama Alt Sınavında Sözlük Sorularını Nasıl Yanıt Vereceksiniz - mankenler

ASVAB Paragraf Anlama Alt Sınavında Sözlük Sorularını Nasıl Yanıt Vereceksiniz - mankenler

Kelime Bilgisi ASVAB üzerinde alt test, bu tür soru, bir kelimeyi pasaj bağlamında kullanılan şekilde tanımlamanızı gerektirir. Sorunun doğru tanımı, sözcüğün en yaygın anlamı olabilir veya daha az bilinen bir anlam olabilir ...

Sorunlarını Nasıl Yanıtlayalım ASVAB - aumlalar

Sorunlarını Nasıl Yanıtlayalım ASVAB - aumlalar

Sayı problemleri ASVAB üzerinde bulacağınız sayı problemleri oldukça basittir. Sorular, sayıları temel ekleme, çıkarma, çarpma veya bölme ile değiştirmenizi ister. Çoğu kişi bu tür kelime problemlerini oldukça kolay buluyor. Birkaç tane denemek ister misiniz, sadece ayağınızı ıslatmak için mi? Elbette. Jesse ...