public class RBFNetwork<T> extends java.lang.Object implements Regression<T>, java.io.Serializable
In its basic form, radial basis function network is in the form
y(x) = Σ w_{i} φ(xc_{i})
where the approximating function y(x) is represented as a sum of N radial basis functions φ, each associated with a different center c_{i}, and weighted by an appropriate coefficient w_{i}. For distance, one usually chooses Euclidean distance. The weights w_{i} can be estimated using the matrix methods of linear least squares, because the approximating function is linear in the weights.
The points c_{i} are often called the centers of the RBF networks, which can be randomly selected from training data, or learned by some clustering method (e.g. kmeans), or learned together with weight parameters undergo a supervised learning processing (e.g. errorcorrection learning).
Popular choices for φ comprise the Gaussian function and the so called thin plate splines. The advantage of the thin plate splines is that their conditioning is invariant under scalings. Gaussian, multiquadric and inverse multiquadric are infinitely smooth and and involve a scale or shape parameter, r_{0} > 0. Decreasing r_{0} tends to flatten the basis function. For a given function, the quality of approximation may strongly depend on this parameter. In particular, increasing r_{0} has the effect of better conditioning (the separation distance of the scaled points increases).
A variant on RBF networks is normalized radial basis function (NRBF) networks, in which we require the sum of the basis functions to be unity. NRBF arises more naturally from a Bayesian statistical perspective. However, there is no evidence that either the NRBF method is consistently superior to the RBF method, or vice versa.
RadialBasisFunction
,
SVR
,
Serialized FormModifier and Type  Class and Description 

static class 
RBFNetwork.Trainer<T>
Trainer for RBF networks.

Constructor and Description 

RBFNetwork(T[] x,
double[] y,
Metric<T> distance,
RadialBasisFunction[] rbf,
T[] centers)
Constructor.

RBFNetwork(T[] x,
double[] y,
Metric<T> distance,
RadialBasisFunction[] rbf,
T[] centers,
boolean normalized)
Constructor.

RBFNetwork(T[] x,
double[] y,
Metric<T> distance,
RadialBasisFunction rbf,
T[] centers)
Constructor.

RBFNetwork(T[] x,
double[] y,
Metric<T> distance,
RadialBasisFunction rbf,
T[] centers,
boolean normalized)
Constructor.

Modifier and Type  Method and Description 

double 
predict(T x)
Predicts the dependent variable of an instance.

public RBFNetwork(T[] x, double[] y, Metric<T> distance, RadialBasisFunction rbf, T[] centers)
x
 the training data.y
 the response variable.distance
 the distance functor.rbf
 the radial basis function.centers
 the centers of RBF functions.public RBFNetwork(T[] x, double[] y, Metric<T> distance, RadialBasisFunction[] rbf, T[] centers)
x
 the training data.y
 the response variable.distance
 the distance functor.rbf
 the radial basis functions.centers
 the centers of RBF functions.public RBFNetwork(T[] x, double[] y, Metric<T> distance, RadialBasisFunction rbf, T[] centers, boolean normalized)
x
 the training data.y
 the response variable.distance
 the distance functor.rbf
 the radial basis function.centers
 the centers of RBF functions.normalized
 true for the normalized RBF network.public RBFNetwork(T[] x, double[] y, Metric<T> distance, RadialBasisFunction[] rbf, T[] centers, boolean normalized)
x
 the training dataset.y
 the response variable.distance
 the distance functor.rbf
 the radial basis functions.centers
 the centers of RBF functions.normalized
 true for the normalized RBF network.public double predict(T x)
Regression
predict
in interface Regression<T>
x
 the instance.