Proposals:Refactoring Statistics Framework 2007 New Statistics Framework: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
 
(24 intermediate revisions by the same user not shown)
Line 10: Line 10:
! Conceptual Class !! Number
! Conceptual Class !! Number
|-
|-
| Data Objects || 3
| Traits || 1
|-
|-
| Filters || 4
| Data Objects || 4
|-
|-
| '''Total''' || '''7'''
| Filters || 11
|-
| '''Total''' || '''16'''
|}
|}


= List of Classes per Category =
= List of Classes per Category =
=== Traits ===

* MeasurementVectorTraits


=== Data Objects ===
=== Data Objects ===
Line 28: Line 35:
=== Filters ===
=== Filters ===


* ListSampleToHistogramFilter
* SampleToHistogramFilter
* MeanFilter
* MeanFilter
* WeightedMeanFilter
* WeightedMeanFilter
Line 39: Line 46:
* SampleClassifierFilter
* SampleClassifierFilter
* NeighborhoodSubsampler
* 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 63: 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"];
ListSampleToHistogramFilter [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1ListSampleToHistogramFilter.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"];
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"];
Line 71: Line 102:
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"];
SampleToSubsampleFilter [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1ListSampleToSubsampleFilter.html"];
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"];
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"];
ScalarImageToCooccurrenceMatrixFilter [shape=box,URL="http://public.kitware.com/Insight/Doxygen/html/classitk_1_1Statistics_1_1ScalarImageToCooccurrenceMatrixFilter.html"];
ProcessObject -> ListSampleToHistogramFilter
ProcessObject -> SampleToHistogramFilter
ProcessObject -> MeanFilter
ProcessObject -> MeanFilter
ProcessObject -> WeightedMeanFilter
ProcessObject -> HistogramToTextureFeaturesFilter
ProcessObject -> HistogramToTextureFeaturesFilter
ProcessObject -> CovarianceFilter
ProcessObject -> CovarianceFilter
ProcessObject -> WeightedCovarianceFilter
ProcessObject -> ImageToListSampleFilter
ProcessObject -> ImageToListSampleFilter
ProcessObject -> SampleClassifierFilter
ProcessObject -> SampleClassifierFilter
ProcessObject -> SampleToSubsampleFilter
ProcessObject -> SampleToSubsampleFilter
ProcessObject -> ScalarImageToCooccurrenceMatrixFilter
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

This is a graph with borders and nodes. Maybe there is an Imagemap used so the nodes may be linking to some Pages.

Data Objects

This is a graph with borders and nodes. Maybe there is an Imagemap used so the nodes may be linking to some Pages.

Filters

This is a graph with borders and nodes. Maybe there is an Imagemap used so the nodes may be linking to some Pages.

Classifiers (Suggested Design)

This is a graph with borders and nodes. Maybe there is an Imagemap used so the nodes may be linking to some Pages.


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)