org.ddogleg.fitting.modelset.distance
Class StatisticalDistanceModelMatcher<Model,Point>
- java.lang.Object
-
- org.ddogleg.fitting.modelset.distance.StatisticalDistanceModelMatcher<Model,Point>
-
- All Implemented Interfaces:
- ModelMatcher<Model,Point>
public class StatisticalDistanceModelMatcher<Model,Point> extends java.lang.Object implements ModelMatcher<Model,Point>
Outliers are removed by first fitting a model to all the data points. Points which deviate the most are removed and the best fit parameters are recomputed. This is done until some error metric changes very little or the maximum number of iterations has been exceeded. Works well when the inlier set is much greater than the noise.
Anyone have a good reference paper for this approach?
-
-
Constructor Summary
Constructors Constructor and Description StatisticalDistanceModelMatcher(int maxIterations, double minChange, double exitCenterError, double failError, int minFitPoints, StatisticalDistance statistics, double pruneThreshold, ModelManager<Model> modelManager, ModelFitter<Model,Point> modelFitter, DistanceFromModel<Model,Point> modelError, ModelCodec<Model> codec)Creates a new model matcher.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description doublegetFitQuality()Returns the metric used to evaluate the quality of fit.intgetInputIndex(int matchIndex)For an item in the match set, return the index of the item in the original input set.java.util.List<Point>getMatchSet()A set of points which match the provided parameters.intgetMinimumSize()This is the minimum number of observations which can be input and produce a valid model.ModelgetModelParameters()Model for the match setbooleanprocess(java.util.List<Point> dataSet)Finds a set of points from the provided list that are a good fit for the internal model and computes the fit parameters for the model.
-
-
-
Constructor Detail
-
StatisticalDistanceModelMatcher
public StatisticalDistanceModelMatcher(int maxIterations, double minChange, double exitCenterError, double failError, int minFitPoints, StatisticalDistance statistics, double pruneThreshold, ModelManager<Model> modelManager, ModelFitter<Model,Point> modelFitter, DistanceFromModel<Model,Point> modelError, ModelCodec<Model> codec)Creates a new model matcher. The type of statistics it uses is specified by "statistics". 0 for mean and standard deviation and 1 for median and percentile. If statistics=0 is set then the threshold correspond to the number of standard deviations a point can be away from the mean before it is pruned. If statistics=1 then points which have a percentile error more than that value are pruned.- Parameters:
maxIterations- The maximum number of iterations it will perform.minChange- It will stop iterating of the change in error is less than this amount.exitCenterError- If the error is less than this value it will stop iterating.failError- If the final error is more than this amount it failed.minFitPoints- If fewer than this number of points remain, then it failed.statistics- 0 = mean statistics and 1 = percentile statisticspruneThreshold- Points which exceed this statistic are pruned. SeeStatisticalDistancefor details.modelFitter- Fits a model to a set of pointsmodelError- Computes the error between a point and the model.
-
-
Method Detail
-
process
public boolean process(java.util.List<Point> dataSet)
Description copied from interface:ModelMatcherFinds a set of points from the provided list that are a good fit for the internal model and computes the fit parameters for the model.- Specified by:
processin interfaceModelMatcher<Model,Point>- Parameters:
dataSet- Set of points (with noise) that are to be fit.- Returns:
- true if it successfully found a solution or false if not.
-
getModelParameters
public Model getModelParameters()
Description copied from interface:ModelMatcherModel for the match set- Specified by:
getModelParametersin interfaceModelMatcher<Model,Point>- Returns:
- model.
-
getMatchSet
public java.util.List<Point> getMatchSet()
Description copied from interface:ModelMatcherA set of points which match the provided parameters.- Specified by:
getMatchSetin interfaceModelMatcher<Model,Point>- Returns:
- List of points in the match set.
-
getInputIndex
public int getInputIndex(int matchIndex)
Description copied from interface:ModelMatcherFor an item in the match set, return the index of the item in the original input set.- Specified by:
getInputIndexin interfaceModelMatcher<Model,Point>- Parameters:
matchIndex- Index of an element in the match set.- Returns:
- Index of the same element in the original input list.
-
getFitQuality
public double getFitQuality()
Description copied from interface:ModelMatcherReturns the metric used to evaluate the quality of fit. Meaning is implementation specific. Larger or smaller values could be preferred depending on implementation..- Specified by:
getFitQualityin interfaceModelMatcher<Model,Point>- Returns:
- Quality of fit to matched set of points
-
getMinimumSize
public int getMinimumSize()
Description copied from interface:ModelMatcherThis is the minimum number of observations which can be input and produce a valid model.- Specified by:
getMinimumSizein interfaceModelMatcher<Model,Point>- Returns:
- Minimum number of sample points
-
-
DataMelt 3.0 © DataMelt by jWork.ORG