This project provides both a Java-based feature generation procedure for generating Declare activity tensors from process execution logs, and Python code for building convolutional recurrent neural networks based over these tensors.
Included in the datasets folder are both the datasets for BPI 12 and 17 event logs for a fixed number of windows and a fixed window size. For the latter, the dataset is split into subsets depending on trace length.
The feature generation procedure uses iBCM to find constraints present in execution traces, and stores them in a .txt file. The d2v.jar file takes two arguments:
- -w for the number of windows
- -l for the event log (which should be XES-based (http://www.xes-standard.org/openxes/start), don't include the .xes extension)
For example: java -jar d2v.jar -w 10 -l BPI_Challenge_2012
The logs used to create the datasets in datasets are:
Two network topologies (encoder-decoder LSTMS, and convolutional LSTMs) are presented to train either an input of a fixed number of windows, or a fixed window length:
- run_de_lstms.py initiates an encoder-decoder LSTM model with various parameters, and uses train_de_lstms.py for calculations.
- run_conv_lstms.py initiates a convolutational LSTM model with various parameters, and uses train_conv2d_lstms.py for calculations.
The Python files can be used for training a model, and the subsequent testing. There are a number of parameters, which can be set in the code itself:
no_epochs
: the number of epochs to traing over the networkact_reg
: activity regularisationkern_reg
: kernel regularisationno_lstms
: additional layers of (CONV)LSTMs
Encoder-decoder LSTMs:
ld
: dimensionality of the encoding
Convolutional LSTMs:
filt
: number of filters to be used for max poolingks
: kernel size
To run the code successfully, create a ./models/
, ./data_conv2d/
, and ./data_de/
folder in the working directory.
PAM makes use of Keras, Numpy, and scikit-learn.
y-axes: average precision
x-axes CONVLSTM: kernel size
BPI 12, 2 windows:
BPI 12, 5 windows:
BPI 12, 10 windows:
BPI 17, 2 windows:
BPI 17, 5 windows:
BPI 17, 10 windows:
BPI 12, 2 windows:
BPI 12, 5 windows:
BPI 12, 10 windows:
BPI 17, 2 windows:
BPI 17, 5 windows:
BPI 17, 10 windows:
BPI 12, 6-10 windows:
BPI 12, 11-15 windows:
BPI 12, 16-20 windows:
BPI 12, 21-25 windows:
BPI 12, 26-30 windows:
BPI 17, 6-10 windows:
BPI 17, 11-15 windows:
BPI 17, 16-20 windows:
BPI 17, 21-25 windows:
BPI 17, 26-30 windows:
BPI 12, 3-4 windows:
BPI 12, 5-6 windows:
BPI 12, 7-8 windows:
BPI 12, 9-10 windows:
BPI 12, 11-12 windows:
BPI 17, 3-4 windows:
BPI 17, 5-6 windows:
BPI 17, 7-8 windows:
BPI 17, 9-10 windows:
BPI 17, 11-12 windows:
BPI 12, 2 windows:
BPI 12, 3 windows:
BPI 12, 4 windows:
BPI 12, 5 windows:
BPI 12, 6 windows:
BPI 17, 2 windows:
BPI 17, 3 windows:
BPI 17, 4 windows:
BPI 17, 5 windows:
BPI 17, 6 windows: