All Projects → arabiaweather → Athena

arabiaweather / Athena

Licence: lgpl-3.0
Automatic equation building and curve fitting. Runs on Tensorflow. Built for academia and research.

Projects that are alternatives of or similar to Athena

Functional intro to python
[tutorial]A functional, Data Science focused introduction to Python
Stars: ✭ 228 (+300%)
Mutual labels:  jupyter-notebook, optimization
Experiments with python
experiments with python
Stars: ✭ 342 (+500%)
Mutual labels:  jupyter-notebook, optimization
Bayesian Optimization
Python code for bayesian optimization using Gaussian processes
Stars: ✭ 245 (+329.82%)
Mutual labels:  jupyter-notebook, optimization
Quant Notes
Quantitative Interview Preparation Guide, updated version here ==>
Stars: ✭ 180 (+215.79%)
Mutual labels:  jupyter-notebook, optimization
Hyperparameter Optimization Of Machine Learning Algorithms
Implementation of hyperparameter optimization/tuning methods for machine learning & deep learning models (easy&clear)
Stars: ✭ 516 (+805.26%)
Mutual labels:  jupyter-notebook, optimization
Imodels
Interpretable ML package 🔍 for concise, transparent, and accurate predictive modeling (sklearn-compatible).
Stars: ✭ 194 (+240.35%)
Mutual labels:  jupyter-notebook, interpretability
Facet
Human-explainable AI.
Stars: ✭ 269 (+371.93%)
Mutual labels:  jupyter-notebook, interpretability
Deep Learning Specialization Coursera
Deep Learning Specialization courses by Andrew Ng, deeplearning.ai
Stars: ✭ 146 (+156.14%)
Mutual labels:  jupyter-notebook, optimization
Tcav
Code for the TCAV ML interpretability project
Stars: ✭ 442 (+675.44%)
Mutual labels:  jupyter-notebook, interpretability
Lucid
A collection of infrastructure and tools for research in neural network interpretability.
Stars: ✭ 4,344 (+7521.05%)
Mutual labels:  jupyter-notebook, interpretability
Iminuit
Jupyter-friendly Python interface for C++ MINUIT2
Stars: ✭ 172 (+201.75%)
Mutual labels:  jupyter-notebook, optimization
Symbolic Metamodeling
Codebase for "Demystifying Black-box Models with Symbolic Metamodels", NeurIPS 2019.
Stars: ✭ 29 (-49.12%)
Mutual labels:  jupyter-notebook, interpretability
Shap
A game theoretic approach to explain the output of any machine learning model.
Stars: ✭ 14,917 (+26070.18%)
Mutual labels:  jupyter-notebook, interpretability
Explainx
Explainable AI framework for data scientists. Explain & debug any blackbox machine learning model with a single line of code.
Stars: ✭ 196 (+243.86%)
Mutual labels:  jupyter-notebook, interpretability
Far Ho
Gradient based hyperparameter optimization & meta-learning package for TensorFlow
Stars: ✭ 161 (+182.46%)
Mutual labels:  jupyter-notebook, optimization
Deeplearning.ai Notes
These are my notes which I prepared during deep learning specialization taught by AI guru Andrew NG. I have used diagrams and code snippets from the code whenever needed but following The Honor Code.
Stars: ✭ 262 (+359.65%)
Mutual labels:  jupyter-notebook, optimization
Pysot
Surrogate Optimization Toolbox for Python
Stars: ✭ 136 (+138.6%)
Mutual labels:  jupyter-notebook, optimization
Fantasy Basketball
Scraping statistics, predicting NBA player performance with neural networks and boosting algorithms, and optimising lineups for Draft Kings with genetic algorithm. Capstone Project for Machine Learning Engineer Nanodegree by Udacity.
Stars: ✭ 146 (+156.14%)
Mutual labels:  jupyter-notebook, optimization
Mli Resources
H2O.ai Machine Learning Interpretability Resources
Stars: ✭ 428 (+650.88%)
Mutual labels:  jupyter-notebook, interpretability
Interpretable machine learning with python
Examples of techniques for training interpretable ML models, explaining ML models, and debugging ML models for accuracy, discrimination, and security.
Stars: ✭ 530 (+829.82%)
Mutual labels:  jupyter-notebook, interpretability

Athena

Documentation Status License: LGPL v3 CII Best Practices

Accelerated equation building for academia and research

Athena is a high-level framework for equation building and curve fitting, written in Python and built on top of Tensorflow; this means you can build large equations and perform curve fitting on your CPU, GPU, or cluster, without the constraints of traditional curve fitting toolboxes or any degradation in performance. Athena was developed with academia and researchers in mind: it is therefore abstract and simple to use (quickly fit an equation of choice to tabular data), while still remaining powerful and highly customizable (automatically search through millions of different mathematical equation forms and find the most accurate one).

If you are interested in learning more about the mathematics behind Athena, you may read:

Building and Evaluating Interpretable Models using Symbolic Regression and Generalized Additive Models

which was published in the proceedings of the AutoML workshop at ICML 2017.

What can Athena do?

  • Fit an arbitrary length mathematical equation to large amounts of data.
  • Run equation building algorithms on a GPU or a cluster for increased performance.
  • Automatically select the best features and choose the most suitable equation types.
  • Search heuristically through different equation types (grid, random, genetic, etc).

Getting started

The easiest way to install Athena and all its dependencies is through pip:

pip install git+git://github.com/arabiaweather/athena.git

Building your first equation

Working with Athena can be as simple or as advanced as you need it to be. To demonstrate Athena's equation building capabilities, we'll fit a straight line to noisy data.

x = numpy.linspace(0.0, 1.0, 10000)
y = x + 5.0 + numpy.random.uniform(-0.1, 0.1, *x.shape)
df = pandas.DataFrame(data={"x": x, "y": y})

Everything in Athena starts and ends with a Framework. Optimization hyper-parameters are defined inside it, and your data-set and model are attached to it.

fw = Framework()
A, B = split_dataframe(df, 0.9)
fw.add_dataset(Dataset(A, B))

Here comes the fun part: Athena has built in hundreds of equation types that you can add, multiply, and composite together. We'll add the FlexiblePower and Bias functions to our model to form a straight line equation.

model = AdditiveModel(fw)
model.add(Bias)
model.add(MultiPolynomial, "x")
fw.initialize(model, A["y"].values)

The only part left to get your equation is to train your model; this part can be sped up dramatically by using a CUDA-enabled GPU or by running Athena on a cluster. The result is very close to a straight line equation!

fw.train()
print("y =", fw.produce_equation())
> y = 1.00098*x + 4.99821

The resulting equation can be pretty printed to a Python notebook, or better yet, can be converted to LaTeX for use in an academic paper easily.

Diving into Athena

What makes any open source project great is the contributions of the community. Below are many great tutorials (in the form of Python notebooks) that show real world examples of powerful equation building and modelling techniques. You can contribute to this list too by submitting a pull request.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].