Skip to content

Anselmoo/RBF_NetworkFitting

Repository files navigation

Build Status CodeFactor codebeat badge Mergify Status DOI GitHub GitHub release (latest SemVer)

RBF Network Fitting

RBF Network Fitting is an in Python developed fitting routine, which is using the Radial-Basis-Function-Network for solving the 1D- and 2D-minimization problem. During the Self-Consistent-Field-Optimization of the RBF-Network, the mean-squared-error will be evaluated for each cycle, and a difference- and gradient-correction will be applied to the input-parameter of the Fitting-Model. As Fitting-Models can be choosen:

In order to optimize the Hyperparameter-Finding for the number of layers and the kind of choosen models, a Genetic Algorithm can be optionally used. The combination of both Radial-Basis-Function-Network and Genetic Algorithm allows using RBF Network Fitting as a real black-box-method in the absence of empirical parameters.

Examples

  • Detecting peaks of an oscillating function
Example - I Example - II
osci_1 osci_2
  • Fitting of experimental data
Example - III
d6_example
  • Following patterns of 3D-Functions
Example - IV Example - V
3D-I 3D-II

RBF Network Fitting requires:

Installing and Running:

python setup.py install
# as command line application 
python -m RBFN 
# as library
from RBFN import GeneticFitter
from RBFN import RBFNetwork
from RBFN import PlotResults

Further Readings:

Genetic Algorithms and Machine Learning for Programmers: Create AI Models and Evolve Solutions
Frances Buontempo
Pragmatic Bookshelf, 2019
Genetic Algorithms with Python
Clinton Sheppard
Clinton Sheppard, 2018

https://github.com/handcraftsman/GeneticAlgorithmsWithPython/blob/master/ch08/genetic.py https://en.wikipedia.org/wiki/Radial_basis_function_network