Implementation of Count-min sketch using Guava library in Java

We can implement the Count-min sketch using Java library provided by Guava. Below is the step by step implementation: 

  • Use below maven dependency.

XML




<dependency>
    <groupId>com.clearspring.analytics</groupId>
    <artifactId>stream</artifactId>
    <version>2.9.5</version>
</dependency>


  • The detailed Java code is as follows: 

Java




import com.clearspring.analytics
    .stream.frequency.CountMinSketch;
 
public class CountMinSketchDemo {
    public static void main(String[] args)
    {
        CountMinSketch countMinSketch
            = new CountMinSketch(
                // epsilon
                0.001,
                // delta
                0.99,
                // seed
                1);
 
        countMinSketch.add("75.245.10.1", 1);
        countMinSketch.add("10.125.22.20", 1);
        countMinSketch.add("192.170.0.1", 2);
 
        System.out.println(
            countMinSketch
                .estimateCount(
                    "192.170.0.1"));
        System.out.println(
            countMinSketch
                .estimateCount(
                    "999.999.99.99"));
    }
}


Above example takes three arguments in the constructor which are 

- 0.001 = the epsilon i.e., error rate
- 0.99 = the delta i.e., confidence or accuracy rate
- 1 = the seed

Output: 

Count-Min Sketch Data Structure with Implementation

The Count-Min Sketch is a probabilistic data structure and is defined as a simple technique to summarize large amounts of frequency data. Count-min sketch algorithm talks about keeping track of the count of things. i.e, How many times an element is present in the set.

Similar Reads

What is Count-Min Sketch?

Count-min sketch approach was proposed by Graham Cormode and S. Muthukrishnan. in the paper approximating data with the count-min sketch published in 2011/12. Count-min sketch is used to count the frequency of the events on the streaming data. Like the Bloom filter, Count-min sketch algorithm also works with hash codes. It uses multiple hash functions to map these frequencies on to the matrix (Consider sketch here a two dimensional array or matrix)....

Need for Count-Min Sketch

Since Count-Min Sketch is used to find the frequency of an element, one might think if there is actually a need for such data structure! The answer is Yes. Let us see with the help of an example....

How does Count-Min Sketch work?

...

Implementation of Count-min sketch using Guava library in Java:

Let’s look at the below example step by step....

Time and Space Complexity of Count-Min Sketch Data Structure

We can implement the Count-min sketch using Java library provided by Guava. Below is the step by step implementation:...

Applications of Count-min sketch:

...

Issue with Count-min sketch and its solution:

...

Conclusion:

Now let’s look at the time and space consumed with this type of approach (wrt to above Java-Guava Implementation)...

Contact Us