Wiki

Clone wiki

jKarma / the-jkarma-tutorial

The jKarma Tutorial

In this tutorial, we show how jKarma can be used to define and execute customized PBCD algorithms on transactional data. In particular, we discuss how PBCDs can be quickly developed by assembling software modules into working pipelines. Many software modules are already available off-the-shelf in the library. However, when necessary, custom ones can be implemented by extending existing modules. Here we do not cover the basics notions behind PBCDs, the interested reader is encouraged to check the introduction to pattern-based change detection before reading this tutorial.

What is jKarma

jKarma is a software library, written in Java, to be used for:

  • defining customized PBCDs
  • executing them on evolving data

When to use jKarma

jKarma is intended to be used to solve change detection problems on temporal data with pattern-based change detection (PBCDs) algorithms. Not all data are structured (e.g. time series), in these cases, other change detection approaches are favorable. As a rule of thumb, PBCDs are suitable for temporal data from which relational patterns can be discovered by pattern mining algorithms.

In general, PBCDs defined with jKarma can be used on temporal data either qualitative or structured represented in transactional format.

Why to use jKarma

jKarma is the first software library for pattern based change detection. Although many pattern mining and change detection algorithms are independently available in existing software frameworks, the same cannot be said for PBCDs. Not only PBCDs are not available in common frameworks they can also be difficult to implement. In fact, PBCDs naturally intertwine a pattern mining algorithm into a change detection one, so the developers should be familiar with the inner workings of the two problems.

jKarma frees developers from the burden of manually integrating existing solutions into effective PBCD algorithms. Ready-to-use solutions can be devised with reduced programming efforts.

How to use jKarma

The library is not a mere collection of black-box PBCD algorithms. On the contrary, jKarma exposes a highly modular framework allowing users to define customized solutions by composing existing modules into working PBCD pipelines.

Our mission with jKarma is to disseminate PBCDs and promoting their study, allowing the quick prototyping of new solutions.

Tutorial outline

The tutorial is organized in three parts. An introductory case is presented, this will serve as a driving example throughout the tutorial. Then the tutorial will cover how to prepare the data for jKarma, how to define a mining strategy, how to define a PBCD and, ultimately, how to execute the PBCD on the data.

  1. An introductory case
    1. Transactions
    2. Time windows
    3. Pattern-based change detection
  2. Instancing MiningStrategy delegates
    1. Alternative mining strategies in jKarma
    2. Implementing custom languages and quality criterion
    3. Exhaustive and non-exhaustive mining strategies
  3. Instancing PBCD delegates
    1. Defining the detection step
    2. Defining the characterization step
  4. Executing the PBCD

What's next

In the next section we begin the tutorial by illustrating an introductory scenario in which PBCDs built with jKarma could be useful.

Updated