Green Tsetlin can be installed by the following:
pip install green-tsetlin
The documentation can be found on: https://green-tsetlin.readthedocs.io/
Below is some short examples of some of the capabilities of green-tsetlin.
The Tsetlin Machine is the core of Green Tsetlin. Here a dense (regular) TM:
import green_tsetlin as gt
tm = gt.TsetlinMachine(n_literals=4,
n_clauses=5,
n_classes=2,
s=3.0,
threshold=42,
literal_budget=4
)
The Tsetlin Machine is the core of Green Tsetlin. Here a sparse TM:
import green_tsetlin as gt
tm = gt.SparseTsetlinMachine(n_literals=4,
n_clauses=5,
n_classes=2,
s=3.0,
threshold=42,
literal_budget=4,
)
Use the Trainer to fit a Tsetlin Machine to the data.
The trainer class is used for both sparse and dense data and TMs.
import green_tsetlin as gt
# set n_jobs = 1 to run single threaded
trainer = gt.Trainer(tm, seed=42, n_jobs=1)
trainer.set_train_data(train_x, train_y)
trainer.set_eval_data(eval_x, eval_y)
trainer.train()
Exporting trained Tsetlin Machines.
.
.
tm.save_state("tsetlin_state.npz")
Loading trained Tsetlin Machines to continue training or use for inference.
.
.
tm.load_state("tsetlin_state.npz")
Inference with trained Tsetlin Machines.
.
.
predictor = tm.get_predictor()
predictor.predict(x)
With the built-in hyperparameter search you can optimize your Tsetlin Machine parameters.
from green_tsetlin.hpsearch import HyperparameterSearch
hyperparam_search = HyperparameterSearch(s_space=(2.0, 20.0),
clause_space=(5, 10),
threshold_space=(3, 20),
max_epoch_per_trial=20,
literal_budget=(1, train_x.shape[1]),
seed=42,
n_jobs=5,
k_folds=4,
minimize_literal_budget=False)
hyperparam_search.set_train_data(train_x, train_y)
hyperparam_search.set_eval_data(test_x, test_y)
hyperparam_search.optimize(trials=10)