Please check the description of version 2.0.0 release for knowining the main functionalities. This version only has minor changes:
- It provides support for generating student and item dummies for temporal IRT models (use generateStudentDummy and generateItemDummy options in configuration file);
- It provides more sample data for experimenting, which contains the Geometry dataset from PSLC for FAST+item experiments. Please check the README in the data folder and cite properly;
- It allows train set to have more KCs than test set.
- It parameterizes initial, transition, and/or emission probabilities. By default, it doesn't allow forget. You can also use different features for different probabilities (e.g., by putting "init_", "tran_", or "emit_" as prefix for feature column names).
- It allows specifying # of random restarts, and automatically select the one with the maximum loglikelihood on trainset for each HMM(KC). It outputs this best model's prediction, parameters and evaluation. This is a helpful functionality to avoid stucking in local optima.
- It includes plausibility metrics (see our EDM15 related work in this wiki) and other training related metrics.
- It allows specifying number of files, e.g., if you can have 5 fold files (5 train-test pairs), and require 20 random restarts, then the code will choose the best model for each HMM for each file first, and then compute aggregated statistics across files based on the best models.
- It allows multiple level evaluations. For each HMM, it outputs the best model (when #restarts>1) or the single model's evaluation; for each file, it outputs the aggregated evaluation (mean and overall) based on the best model.
- It allows specifying initial parameter values for Knowledge Tracing.
- Major cleaning. Remove redundant classes, methods, arguments. Only Runner object receives Options object. No other Classes (and their methods) require Options object now.
Allow changing random start seeds used to generate initial paramters by setting differentRandomStartSeed=true. It uses current date in millisecond long type to set the seed. If you set differentRandomStartSeed=false, the model will always use the same seed and end up with same model. Caution: different random starts may result in significantly different prediction models.