A scientific research assistant
Acton is a modular Python library for active learning. Acton is a suburb in Canberra, where Australian National University is located.
Most dependencies will be installed by pip. You will need to manually install:
- Python 3.4+
Install Acton using pip3:
pip install git+https://github.com/chengsoonong/acton.git
This provides access to a command-line tool acton as well as the acton Python library.
The command-line interface to Acton is available through the acton command. This takes a dataset of features and labels and simulates an active learning experiment on that dataset.
Acton supports three formats of dataset: ASCII, pandas, and HDF5. ASCII tables can be any file read by astropy.io.ascii.read, including many common plain-text table formats like CSV. pandas tables are supported if dumped to a file from DataFrame.to_hdf. HDF5 tables are either an HDF5 file with datasets for each feature and a dataset for labels, or an HDF5 file with one multidimensional dataset for features and one dataset for labels.
Acton outputs a file containing predictions for each epoch of the simulation. These are encoded as specified in this notebook.
You will need a dataset. Acton currently supports ASCII tables (anything that can be read by
astropy.io.ascii.read), HDF5 tables, and Pandas tables saved as HDF5. Here’s a simple classification dataset that you can use.
To run Acton to generate a passive learning curve with logistic regression:
acton --data classification.txt --label col20 --feature col10 --feature col11 -o passive.pb --recommender RandomRecommender --predictor LogisticRegression
This command uses columns col10 and col11 as features, and col20 as labels, a logistic regression predictor, and random recommendations. It outputs all predictions for test data points selected randomly from the input data to
passive.pb, which can then be used to construct a plot. To output an active learning curve using uncertainty sampling, change
To show the learning curve, use acton.plot:
python3 -m acton.plot passive.pb
Look at the directory examples for more examples.