Math algorithms in ML on torch

## Nueramic MathML

Nueramic-mathml is a library for visualizing and logging the steps of optimization algorithms in machine learning. The project uses torch for calculations and plotly for visualization.

pip install nueramic-mathml

## Quick tour ### Optimization

You can minimize the functions and see a detailed description of each step. After minimizing, you have a history with complete logs. Also available multidimensional optimisation.

def f(x): return x ** 3 - x ** 2 - x  # Minimum at x = 1
bounds = (0, 3)
one_optimize.golden_section_search(f, bounds, epsilon=0.01, verbose=True)

Iteration: 0        |        point = 1.500  |        f(point) = -0.375
Iteration: 1        |        point = 0.927  |        f(point) = -0.990
Iteration: 2        |        point = 1.281  |        f(point) = -0.820
Iteration: 3        |        point = 1.062  |        f(point) = -0.992
Iteration: 4        |        point = 0.927  |        f(point) = -0.990
Iteration: 5        |        point = 1.011  |        f(point) = -1.000
Iteration: 6        |        point = 0.959  |        f(point) = -0.997
Iteration: 7        |        point = 0.991  |        f(point) = -1.000
Iteration: 8        |        point = 1.011  |        f(point) = -1.000
Iteration: 9        |        point = 0.998  |        f(point) = -1.000
Iteration: 10       |        point = 1.006  |        f(point) = -1.000
Searching finished. Successfully. code 0
1.0059846881033916

### Models

You can use our models for classification and regression

from nueramic_mathml.ml import LogisticRegressionRBF
from sklearn.datasets import make_moons

x, y = make_moons(10_000, noise=.1, random_state=84)
x, y = torch.tensor(x), torch.tensor(y)
logistic_model_rbf = LogisticRegressionRBF(x[:1000]).fit(x, y, show_epoch=10)

Epoch:     1 | CrossEntropyLoss:  0.71496
Epoch:    12 | CrossEntropyLoss:  0.35328
Epoch:    23 | CrossEntropyLoss:  0.27769
Epoch:    34 | CrossEntropyLoss:  0.22395
Epoch:    45 | CrossEntropyLoss:  0.19266
Epoch:    56 | CrossEntropyLoss:  0.16695
Epoch:    67 | CrossEntropyLoss:  0.14686
Epoch:    78 | CrossEntropyLoss:  0.13051
Epoch:    89 | CrossEntropyLoss:  0.11724
Epoch:   100 | CrossEntropyLoss:  0.10629

logistic_model_rbf.metrics_tab(x, y)

{'auc_roc': 0.9974513817072977,
'f1': 0.9700730618209839,
'precision': 0.9709476828575134,
'recall': 0.9692000150680542}

### Visualizations

You can create beautiful animations of optimization algorithms and regression/classification models.

gen_classification_plot(x, y, model, threshold=0.5, epsilon=0.001)

## Project details

This version 0.75.2 0.75.1 0.75 0.1.18 0.1.17 0.1.16 0.1.15 0.1.14 0.1.13 0.1.12 0.1.11 0.1.10 0.1.9 0.1.8 0.1.6 0.1.5 0.1.3 0.1.1 0.1 0.0.1.18 0.0.1.17 0.0.1.16 0.0.1.15 0.0.1.14 0.0.1.13 0.0.1.12 0.0.1.11 0.0.1.10 0.0.1.9 0.0.1.8 0.0.1.7 0.0.1.6 0.0.1.5 0.0.1.4 0.0.1.3 0.0.1.2 0.0.1.1 0.0.0.3 0.0.0.2 0.0.0.1

Uploaded py3