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
Error writing graphviz file to disk.
Data Objects
Error writing graphviz file to disk.
Filters
Error writing graphviz file to disk.
Classifiers (Suggested Design)
Error writing graphviz file to disk.
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)