Numerix
A collection of useful mathematical functions in Elixir with a slant towards statistics, linear algebra and machine learning.
Installation
Add numerix to your list of dependencies in mix.exs:
def deps do
[{:numerix, "~> 0.5"}]
end
Ensure numerix and its dependencies are started before your application:
def application do
[applications: [:numerix, :gen_stage, :flow]]
endExamples
Check out the tests for examples.
Documentation
Check out the API reference for the latest documentation.
Features
Tensor API
Numerix now includes a Tensor API that lets you implement complex math functions with little code, similar to what you get from numpy. And since this is written in Elixir, it uses Flow to parallelize independent pieces of computation to speed things up! Depending on the type of calculations you're doing, the bigger the data and the more cores you have, the faster it gets.
Statistics
- Mean
- Weighted mean
- Median
- Mode
- Range
- Variance
- Population variance
- Standard deviation
- Population standard deviation
- Moment
- Kurtosis
- Skewness
- Covariance
- Weighted covariance
- Population covariance
- Quantile
- Percentile
Correlation functions
- Pearson
- Weighted Pearson
Distance functions
- Mean squared error (MSE)
- Root mean square error (RMSE)
- Pearson
- Minkowski
- Euclidean
- Manhattan
- Jaccard
General math functions
- nth root
Special functions
- Logit
- Logistic
Window functions
- Gaussian
Linear algebra
- Dot product
- L1-norm
- L2-norm
- p-norm
- Vector subtraction and multiplication
Linear regression
- Least squares best fit
- Prediction
- R-squared
Kernel functions
- RBF
Optimization
- Genetic algorithms
Neural network activation functions
- softmax
- softplus
- softsign
- sigmoid
- ReLU, leaky ReLU, ELU and SELU
- tanh