CluE
1.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
averageinterclusterdistance.h
Go to the documentation of this file.
1
#ifndef AVERAGEINTERCLUSTERDISTANCE_H
2
#define AVERAGEINTERCLUSTERDISTANCE_H
3
4
#include <cmath>
5
6
#include "../base/dissimilaritymeasure.h"
7
#include "../base/euclideanspaceprovider.h"
8
#include "../clustering/cfentry.h"
9
10
namespace
CluE
11
{
16
template
<
typename
T>
class
CFAverageInterClusterDistance
:
public
DissimilarityMeasure
<CFEntry<T> >
17
{
18
public
:
19
CFAverageInterClusterDistance
(
EuclideanSpaceProvider<T>
*
esp
);
20
CFAverageInterClusterDistance
(
const
CFAverageInterClusterDistance<T>
&);
21
CFAverageInterClusterDistance<T>
&
operator=
(
const
CFAverageInterClusterDistance<T>
&);
22
virtual
~CFAverageInterClusterDistance
();
23
24
virtual
CFAverageInterClusterDistance
*
clone
()
const
;
25
29
virtual
double
dissimilarity
(
CFEntry<T>
const
&,
CFEntry<T>
const
&)
const
;
30
31
private
:
32
EuclideanSpaceProvider<T>
*
esp
;
33
};
34
35
template
<
typename
T>
CFAverageInterClusterDistance<T>::CFAverageInterClusterDistance
(
EuclideanSpaceProvider<T>
* esp) :
36
esp(esp->clone())
37
{
38
}
39
40
template
<
typename
T>
CFAverageInterClusterDistance<T>::CFAverageInterClusterDistance
(
const
CFAverageInterClusterDistance<T>
& aicd) :
41
esp(aicd.esp->clone())
42
{
43
}
44
45
template
<
typename
T>
CFAverageInterClusterDistance<T>
&
CFAverageInterClusterDistance<T>::operator=
(
const
CFAverageInterClusterDistance<T>
& aicd)
46
{
47
if
(esp != 0)
48
delete
esp;
49
50
DissimilarityMeasure<CFEntry<T>
>::operator= (aicd);
51
52
esp = aicd.
esp
== 0 ? 0 : aicd.
esp
->
clone
();
53
54
return
*
this
;
55
}
56
57
template
<
typename
T>
CFAverageInterClusterDistance<T>::~CFAverageInterClusterDistance
()
58
{
59
if
(esp != 0)
60
delete
esp;
61
}
62
63
template
<
typename
T>
CFAverageInterClusterDistance<T>
*
CFAverageInterClusterDistance<T>::clone
()
const
64
{
65
return
new
CFAverageInterClusterDistance<T>
(*this);
66
}
67
68
template
<
typename
T>
double
CFAverageInterClusterDistance<T>::dissimilarity
(
CFEntry<T>
const
& cf1,
CFEntry<T>
const
& cf2)
const
69
{
70
double
numerator = (cf2.
number
*cf1.
SS
- 2*(cf1.
LS
*cf2.
LS
) + cf1.
number
*cf2.
SS
);
71
double
denominator = cf1.
number
* cf2.
number
;
72
return
std::pow(numerator / denominator, 0.5);
73
}
74
75
}
76
77
#endif
CluE::CFEntry::SS
double SS
Squared sum.
Definition:
cfentry.h:37
CluE::CFAverageInterClusterDistance::dissimilarity
virtual double dissimilarity(CFEntry< T > const &, CFEntry< T > const &) const
Computes the average inter cluster distance between the two given CFEntry objects.
Definition:
averageinterclusterdistance.h:68
CluE::CFAverageInterClusterDistance::esp
EuclideanSpaceProvider< T > * esp
Definition:
averageinterclusterdistance.h:32
CluE::CFAverageInterClusterDistance::operator=
CFAverageInterClusterDistance< T > & operator=(const CFAverageInterClusterDistance< T > &)
Definition:
averageinterclusterdistance.h:45
CluE::CFAverageInterClusterDistance::CFAverageInterClusterDistance
CFAverageInterClusterDistance(EuclideanSpaceProvider< T > *esp)
Definition:
averageinterclusterdistance.h:35
CluE::CFEntry::LS
T LS
Linear sum.
Definition:
cfentry.h:32
CluE::CFEntry::number
size_t number
Number of points contained in the feature.
Definition:
cfentry.h:27
CluE::CFAverageInterClusterDistance::~CFAverageInterClusterDistance
virtual ~CFAverageInterClusterDistance()
Definition:
averageinterclusterdistance.h:57
CluE::CFAverageInterClusterDistance
Calculates the average inter-cluster distance D2 of a given CFEntry.
Definition:
averageinterclusterdistance.h:16
CluE::CFAverageInterClusterDistance::clone
virtual CFAverageInterClusterDistance * clone() const
Definition:
averageinterclusterdistance.h:63
CluE::DissimilarityMeasure
Abstract base class for dissimilarity measurement.
Definition:
dissimilaritymeasure.h:12
CluE::CFEntry
Clustering feature tree entry.
Definition:
cfentry.h:22
CluE::EuclideanSpaceProvider::clone
virtual EuclideanSpaceProvider< V > * clone() const =0
CluE::EuclideanSpaceProvider< T >
src
cftree
averageinterclusterdistance.h
Generated on Wed May 7 2014 20:30:01 for CluE by
1.8.7