Skip to main content

A scientific research assistant

Project description

Acton - A scientific research assistant
=======================================

Acton is a modular Python library for active learning.
`Acton <https://en.wikipedia.org/wiki/Acton,_Australian_Capital_Territory>`_
is a suburb in Canberra, where Australian National University is
located.

|Build Status| |Documentation Status|

.. |Build Status| image:: https://travis-ci.org/chengsoonong/acton.svg?branch=master
:target: https://travis-ci.org/chengsoonong/acton
.. |Documentation Status| image:: http://readthedocs.org/projects/acton/badge/?version=latest
:target: http://acton.readthedocs.io/en/latest/?badge=latest

Dependencies
------------

Most dependencies will be installed by pip. You will need to manually install:

- Python 3.4+
- `Protobuf <https://github.com/google/protobuf/tree/master/python>`_

Setup
-----

Install Acton using ``pip3``:

.. code:: bash

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.

Acton CLI
---------

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.

Input
+++++

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.

Output
++++++

Acton outputs a file containing predictions for each epoch of the simulation.
These are encoded as specified in `this notebook
<https://github.com/chengsoonong/acton/blob/master/docs/protobuf_spec.ipynb>`_.

Quickstart
----------

You will need a dataset. Acton currently supports ASCII tables (anything that can be read by :code:`astropy.io.ascii.read`), HDF5 tables, and Pandas tables saved as HDF5. `Here's a simple classification dataset <https://github.com/chengsoonong/acton/files/603416/classification.txt>`_ that you can use.

To run Acton to generate a passive learning curve with logistic regression:

.. code:: bash

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 :code:`passive.pb`, which can then be used to construct a plot. To output an active learning curve using uncertainty sampling, change :code:`RandomRecommender` to :code:`UncertaintyRecommender`.

To show the learning curve, use `acton.plot`:

.. code:: bash

python3 -m acton.plot passive.pb

Look at the directory ``examples`` for more examples.


=======
History
=======

0.1.0 (2016-11-11)
------------------

* First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

acton-0.3.2.tar.gz (21.1 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page