Proposals:Refactoring Statistics Framework 2007 New Statistics Framework: Difference between revisions
From KitwarePublic
Jump to navigationJump to search
(31 intermediate revisions by the same user not shown) | |||
Line 10: | Line 10: | ||
! Conceptual Class !! Number | ! Conceptual Class !! Number | ||
|- | |- | ||
| | | Traits || 1 | ||
|- | |- | ||
| | | Data Objects || 4 | ||
|- | |- | ||
| '''Total''' || ''' | | Filters || 11 | ||
|- | |||
| '''Total''' || '''16''' | |||
|} | |} | ||
= List of Classes per Category = | = List of Classes per Category = | ||
=== Traits === | |||
| |||
* MeasurementVectorTraits | |||
=== Data Objects === | === Data Objects === | ||
Line 24: | Line 31: | ||
* ListSample | * ListSample | ||
* Histogram | * Histogram | ||
* Subsample | |||
=== Filters === | === Filters === | ||
* | * SampleToHistogramFilter | ||
* MeanFilter | * MeanFilter | ||
* WeightedMeanFilter | * WeightedMeanFilter | ||
* CovarianceFilter | |||
* WeightedCovarianceFilter | |||
* HistogramToTextureFeaturesFilter | * HistogramToTextureFeaturesFilter | ||
* ImageToListSampleFilter | |||
* ScalarImageToCooccurrenceMatrixFilter | |||
* SampleToSubsampleFilter | |||
* SampleClassifierFilter | |||
* NeighborhoodSubsampler | |||
=== Classifiers (Suggested Design) === | |||
==== Elements ==== | |||
* MembershipFunctionBase | |||
** DistanceToCentroidMembershipFunction (plugs in a DistanceMetric) | |||
* DistanceMetrics | |||
** Euclidean | |||
** Mahalanobis | |||
** 1_1 | |||
==== Filters ==== | |||
* Sample, Array of Membership Functions --> MembershipSample(sample,labels) == SampleClassifierFilter | |||
* Sample, Array of Membership Functions --> GoodnessOfFitComponent (sample,weights) == SampleGoodnessOfFitFilter | |||
= Class Diagrams = | = Class Diagrams = | ||
== Traits == | |||
<graphviz> | |||
digraph G { | |||
MeasurementVectorTraits [ shape=box URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1MeasurementVectorTraits.html"]; | |||
} | |||
</graphviz> | |||
== Data Objects == | == Data Objects == | ||
Line 40: | Line 79: | ||
DataObject [URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1DataObject.html"]; | DataObject [URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1DataObject.html"]; | ||
Sample [shape=box, URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1Sample.html"]; | Sample [shape=box, URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1Sample.html"]; | ||
Subsample [shape=box, URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1Subsample.html"]; | |||
ListSample [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1ListSample.html"]; | ListSample [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1ListSample.html"]; | ||
Histogram [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1Histogram.html"]; | Histogram [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1Histogram.html"]; | ||
Line 45: | Line 85: | ||
Sample -> Histogram; | Sample -> Histogram; | ||
Sample -> ListSample; | Sample -> ListSample; | ||
Sample -> Subsample; | |||
} | } | ||
</graphviz> | </graphviz> | ||
Line 53: | Line 94: | ||
digraph G { | digraph G { | ||
ProcessObject [URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1ProcessObject.html"]; | ProcessObject [URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1ProcessObject.html"]; | ||
SampleToHistogramFilter [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1SampleToHistogramFilter.html"]; | |||
ImageToListSampleFilter [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1ImageToListSampleFilter.html"]; | |||
MeanFilter [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1MeanFilter.html"]; | MeanFilter [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1MeanFilter.html"]; | ||
WeightedMeanFilter [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1WeightedMeanFilter.html"]; | WeightedMeanFilter [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1WeightedMeanFilter.html"]; | ||
CovarianceFilter [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1CovarianceFilter.html"]; | |||
WeightedCovarianceFilter [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1WeightedCovarianceFilter.html"]; | |||
HistogramToTextureFeaturesFilter [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1HistogramToTextureFeaturesFilter.html"]; | HistogramToTextureFeaturesFilter [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1HistogramToTextureFeaturesFilter.html"]; | ||
ProcessObject -> | SampleToSubsampleFilter [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1ListSampleToSubsampleFilter.html"]; | ||
NeighborhoodSubsampler [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1NeigborhoodSubsampler.html"]; | |||
SampleClassifierFilter [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1SampleClassifierFilter.html"]; | |||
ScalarImageToCooccurrenceMatrixFilter [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1ScalarImageToCooccurrenceMatrixFilter.html"]; | |||
ProcessObject -> SampleToHistogramFilter | |||
ProcessObject -> MeanFilter | ProcessObject -> MeanFilter | ||
ProcessObject -> HistogramToTextureFeaturesFilter | ProcessObject -> HistogramToTextureFeaturesFilter | ||
ProcessObject -> CovarianceFilter | |||
ProcessObject -> ImageToListSampleFilter | |||
ProcessObject -> SampleClassifierFilter | |||
ProcessObject -> SampleToSubsampleFilter | |||
ProcessObject -> ScalarImageToCooccurrenceMatrixFilter | |||
SampleToSubsampleFilter -> NeighborhoodSubsampler | |||
MeanFilter -> WeightedMeanFilter | |||
CovarianceFilter -> WeightedCovarianceFilter | |||
} | } | ||
</graphviz> | </graphviz> | ||
== Classifiers (Suggested Design) == | |||
<graphviz> | |||
digraph G { | |||
Object [URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Object.html"]; | |||
FunctionBase [URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1FunctionBase.html"]; | |||
MembershipFunctionBase [shape=box, URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1MembershipFunctionBase.html"]; | |||
DistanceToCentroidMembershipFunction [shape=box, URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1DistanceToCentroidMembershipFunction.html"]; | |||
DistanceMetric [shape=box, URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1DistanceMetric.html"]; | |||
EuclideanDistanceMetric [shape=box, URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1EuclideanDistanceMetric.html"]; | |||
MahalanobisDistanceMetric [shape=box, URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1MahalanobisDistanceMetric.html"]; | |||
Object -> FunctionBase | |||
FunctionBase -> MembershipFunctionBase | |||
FunctionBase -> DistanceMetric | |||
DistanceMetric -> MahalanobisDistanceMetric | |||
DistanceMetric -> EuclideanDistanceMetric | |||
DistanceMetric -> EuclideanSquaredDistanceMetric | |||
DistanceMetric -> ManhattanDistanceMetric | |||
MembershipFunctionBase -> DistanceToCentroidMembershipFunction | |||
} | |||
</graphviz> | |||
=== Distance notation === | |||
* Manhattan (L1) = sum of absolute values | |||
* Euclidean = square root of ( sum of squares ) | |||
* Euclidean Squared (L2) = sum of squares | |||
* Mahalanobis = square root of ( V . M . VT ) | |||
=== API === | |||
* DistanceToCentroidMembershipFunction | |||
** SetDistanceMetric( const DistanceMetric * ) (new) | |||
** const GetDistanceMetric() (new) | |||
** Evaluate( Measurement vector ) (already there) | |||
** SetCentroid( ) (already there) |
Latest revision as of 20:57, 17 July 2008
Class Manifesto of New Statistics Framework
Summary Table
The classes that integrate the new statistics framework are categorized in the following table
Conceptual Class | Number |
---|---|
Traits | 1 |
Data Objects | 4 |
Filters | 11 |
Total | 16 |
List of Classes per Category
Traits
- MeasurementVectorTraits
Data Objects
- Sample
- ListSample
- Histogram
- Subsample
Filters
- SampleToHistogramFilter
- MeanFilter
- WeightedMeanFilter
- CovarianceFilter
- WeightedCovarianceFilter
- HistogramToTextureFeaturesFilter
- ImageToListSampleFilter
- ScalarImageToCooccurrenceMatrixFilter
- SampleToSubsampleFilter
- SampleClassifierFilter
- NeighborhoodSubsampler
Classifiers (Suggested Design)
Elements
- MembershipFunctionBase
- DistanceToCentroidMembershipFunction (plugs in a DistanceMetric)
- DistanceMetrics
- Euclidean
- Mahalanobis
- 1_1
Filters
- Sample, Array of Membership Functions --> MembershipSample(sample,labels) == SampleClassifierFilter
- Sample, Array of Membership Functions --> GoodnessOfFitComponent (sample,weights) == SampleGoodnessOfFitFilter
Class Diagrams
Traits
Data Objects
Filters
Classifiers (Suggested Design)
Distance notation
- Manhattan (L1) = sum of absolute values
- Euclidean = square root of ( sum of squares )
- Euclidean Squared (L2) = sum of squares
- Mahalanobis = square root of ( V . M . VT )
API
- DistanceToCentroidMembershipFunction
- SetDistanceMetric( const DistanceMetric * ) (new)
- const GetDistanceMetric() (new)
- Evaluate( Measurement vector ) (already there)
- SetCentroid( ) (already there)