Improving the predictor: Hierarchical N-Gram
The N-Gram predictor can be improved by having a handler with several other predictors ranging from 1 to n, and obtaining the best possible action after comparing the best guess from each one of them.
Getting ready…
We need to make some adjustments prior to implementing the hierarchical N-Gram predictor.
Add the following member function to the NGramPredictor
class:
public int GetActionsNum(ref T[] actions) { string key = ArrToStrKey(ref actions); if (!data.ContainsKey(key)) return 0; return data[key].total; }
How to do it…
Just like the N-Gram predictor, building the hierarchical version takes a few steps:
Create the new class:
using System; using System.Collections; using System.Text; public class HierarchicalNGramP<T> { public int threshold; public NGramPredictor<T>[] predictors; private int nValue; }
Implement the constructor for initializing member values:
public HierarchicalNGramP(int windowSize) ...