KernelWeightedRobustRegression takes a supervised learning algorithm that
operates on a weighted collection of InputOutputPairs and modifies the
weight of a sample based on the dataset output and its corresponding
estimate from the Evaluator from the supervised learning algorithm at each
iteration. This weight is added to the dataset sample and the supervised
learning algorithm is run again. This process repeats until the weights
converge. This algorithm is a direct generalization of the LOESS-based
(LOWESS-based) Robust Regression using a general learner and kernel.
A typical use case is using a regression algorithm (LinearRegression or
DecoupledVectorLinearRegression) and a RadialBasisKernel. This results in
a regression algorithm that learns to "ignore" outliers and fit the
remaining data. (Think of fitting a height-versus-age curve and an 8-foot
tall Yao Ming made it into your training set, skewing your results with that
massive outlier.)
KernelWeightedRobustRegression is different from LocallyWeightedLearning in
that KWRR creates a global function approximator and holds for all inputs.
Thus, learning time for KWRR is relatively high up front, but evaluation time
is relatively low. On the other hand, LWL creates a local function
approximator in response to each evaluation, and LWL does not create a global
function approximator. As such, LWL has (almost) no up-front learning time,
but each evaluation requires a relatively high evaluation.
KWRR is more appropriate when you know the general structure of your data,
but it is riddled with outliers. LWL is more appropriate when you don't
know/understand the general trend of your data AND you can afford evaluation
time to be somewhat costly.

iterationLearner - Internal learning algorithm that computes optimal solutions
given the current weightedData. The iterationLearner should operate on
WeightedInputOutputPairs (we have a hard time enforcing this, as many
learning algorithms operate both on InputOutputPairs and
WeightedInputOutputPairs and their prototype is "? extends InputOutputPair")

kernelWeightingFunction - Kernel function that provides the weighting for the estimate error,
generally the Kernel should weight accurate estimates higher than
inaccurate estimates.

iterationLearner - Internal learning algorithm that computes optimal solutions
given the current weightedData. The iterationLearner should operate on
WeightedInputOutputPairs (we have a hard time enforcing this, as many
learning algorithms operate both on InputOutputPairs and
WeightedInputOutputPairs and their prototype is "? extends InputOutputPair")

kernelWeightingFunction - Kernel function that provides the weighting for the estimate error,
generally the Kernel should weight accurate estimates higher than
inaccurate estimates.

getIterationLearner

Internal learning algorithm that computes optimal solutions
given the current weightedData. The iterationLearner should operate on
WeightedInputOutputPairs (we have a hard time enforcing this, as many
learning algorithms operate both on InputOutputPairs and
WeightedInputOutputPairs)

setIterationLearner

iterationLearner - Internal learning algorithm that computes optimal solutions
given the current weightedData. The iterationLearner should operate on
WeightedInputOutputPairs (we have a hard time enforcing this, as many
learning algorithms operate both on InputOutputPairs and
WeightedInputOutputPairs)