Machine Learning Library
CClusterAlgorithm.h
Go to the documentation of this file.
1 /*
2  COPYRIGHT (C) 2003 APPLIED NEUROINFORMATIC GROUP - UNIVERSITY OF BIELEFELD.
3 
4  ALL RIGHTS RESERVED.
5 
6  REDISTRIBUTION AND USE IN SOURCE AND BINARY FORM, WITH OR WITHOUT
7  MODIFICATION, REQUIRE THE PERMISSION OF THE COPYRIGHT HOLDERS.
8 
9  COMMERCIAL USE WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT HOLDERS
10  IS FORBIDDEN
11 
12  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
13  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15  ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
16  ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
18  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
19  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
20  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
21  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22 */
23 
24 
25 
26 #ifndef CCLUSTERALGORITHM_H
27 #define CCLUSTERALGORITHM_H
28 
29 #include "CVector.h"
30 #include "CDataset.h"
31 #include "CMetric.h"
32 #include "CObject.h"
37 template<class Type>
38 class CClusterAlgorithm : public CObject<Type>
39 {
40 protected:
43 public:
44 
50 
54  virtual ~CClusterAlgorithm();
55 
63 
64 
71 
72 
79 
85  virtual void train(CDataset<Type>& tDataset)=0;
86 
87 
94  Type rmse(const CDataset<Type>& tDataset) const;
95 
99  int nearestNode(const CVector<Type>& rtPattern) const;
100 
104  Type nearestNodeDistance(const CVector<Type>& rtPattern) const;
105 
112  bool serialize(fstream& stream, IO_MODE mode);
113 };
114 
115 #endif
virtual ~CClusterAlgorithm()
virtual void train(CDataset< Type > &tDataset)=0
IO_MODE
Definition: CObject.h:38
CDataset< Type > getReferenceVectors() const
Base class for metrix objects.
Definition: CMetric.h:36
Type rmse(const CDataset< Type > &tDataset) const
CDataset< Type > & referenceVectors()
Euclidean metric object.
Definition: CMetric.h:66
Type nearestNodeDistance(const CVector< Type > &rtPattern) const
int nearestNode(const CVector< Type > &rtPattern) const
CDataset< Type > tReferenceVectors
Definition: CClusterAlgorithm.h:41
templatized vector for numerical applications
Definition: CMatrix.h:39
Base class for all object.
Definition: CObject.h:51
Base class for cluster algorithms.
Definition: CClusterAlgorithm.h:38
CMetric< Type > * ptMetric
Definition: CClusterAlgorithm.h:42
Manages pairs of input and output vectors.
Definition: CDataset.h:110
bool serialize(fstream &stream, IO_MODE mode)
void setMetric(CMetric< Type > *ptMetric)
CClusterAlgorithm(CMetric< Type > *ptMetric=new CEuclideanMetric< Type >())