Giter VIP home page Giter VIP logo

freq-count's Introduction

Frequency Count Algorithms for Data Streams Build Status

The project provides a Scala implementation of the Lossy Counting and Sticky Sampling algorithms for efficient counting on data streams. You can find a description of the algorithms at this post.

We want to know which items exceed a certain frequency and identify events and patterns. Answers to such questions in real-time over a continuous data stream is not an easy task when serving millions of hits due to the following challenges:

  • Single Pass
  • Limited memory
  • Volume of data in real-time

The above impose a smart counting algorithm. Data stream mining to identify events & patterns can be performed by applying the following algorithms: Lossy Counting and Sticky Sampling.

How to run

Using sbt to build and run:

Lossy Counting:
sbt "run-main frequencycount.lossycounting.LossyCountingModel"

Sticky Sampling:
sbt "run-main frequencycount.stickysampling.StickySamplingModel"

Run the tests using sbt test

Contributing

Have you found any issues? Want to contribute?

Help me finish the distributed implementation on Spark (see branch).

Please contact me at [email protected] or create a new Issue. Pull requests are always welcome.

freq-count's People

Contributors

mvogiatzis avatar

Stargazers

Manny Protopapas avatar Zhen Wang avatar Evgeny Postnov avatar Saswata Dutta avatar ghq avatar Danu avatar imtsuki avatar Syrine b.a avatar Pavel avatar Anh Nguyen avatar ahmed-nabil-elagder avatar Alexandru Dan avatar  avatar  avatar Snehashish avatar leezw avatar lynne avatar Volker Seeker avatar José Pedro Duarte avatar Oleksandr Olgashko avatar Paweł Cejrowski avatar Peter Rudenko avatar Grant Zvolský avatar Sean Jensen-Grey avatar Ilias Ktn avatar Pavel Odintsov avatar Qitong Wang avatar  avatar  avatar Charlie Yan avatar stiil avatar Martin Seeler avatar  avatar Wenjun YANG avatar  avatar David Przybilla avatar Changling Zhou avatar  avatar shaun avatar Tian Cao avatar  avatar João Maia avatar Dhruv Gohil avatar Suresh Ramakrishnaiah avatar Mat Byczkowski avatar Kevin P avatar James B. Pollack, MFA  avatar Francisco Gutierrez avatar Liang-Chi Hsieh avatar Dave Spector avatar Spy Kab avatar Themba Fletcher avatar Adam Zell avatar Razvan POP avatar Matthew Chu avatar Zack Bartel avatar Doug Tolton avatar Alix Axel avatar JH avatar Evan Casey avatar Phantom Space Man! avatar  avatar

Watchers

Alexander Smirnov avatar Aniket Anvit avatar

freq-count's Issues

The implementation of Lossy Counting is incorrect

If you just decrement the counters by 1 at each bucket boundary, rather than storing {e: (f, Delta)} in the HashMap as the paper suggests, the actual counts are lost so the f >= (s - e) N computation returns a wrong result upon query. Take an input sequence like [[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], ...] as an example, the counters are always 1s but should be 0.2 * N indeed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.