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

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)