GAIGResearch / TabletopGames

MIT License
78 stars 55 forks source link

Decision trees #246

Closed hopshackle closed 1 year ago

hopshackle commented 1 year ago

1) Decision Trees Added the ability to learn a Decision Tree from game trajectories using ProgressiveLearner. this uses apache libraries. This involves significant change to ProgressiveLearner, plus to various (non-Metrics) Listeners.

2) ProgressiveLearner can now also use the data within MCTS trees to learn functions (OLS, Logistic, DecisionTrees supported). This also removes the old ExpertIterationDataGatherer, and replaces it with mcts.MCTSTreeActionStatisticsListener. This disentangles the core MCTS code from the gathering of statistics.

2) Three example implementations of IActionFeatures for LoveLetter.

3) A new interface IActionKey to provide a hash for an action. Three examples for LoveLetter. This is for a small planned study on generalising MAST and other rollout policies.