SHOGUN  v3.0.1
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
KMeans.h
浏览该文件的文档.
1 /*
2  * This program is free software; you can redistribute it and/or modify
3  * it under the terms of the GNU General Public License as published by
4  * the Free Software Foundation; either version 3 of the License, or
5  * (at your option) any later version.
6  *
7  * Written (W) 1999-2008 Gunnar Raetsch
8  * Written (W) 2007-2009 Soeren Sonnenburg
9  * Copyright (C) 1999-2009 Fraunhofer Institute FIRST and Max-Planck-Society
10  */
11 
12 #ifndef _KMEANS_H__
13 #define _KMEANS_H__
14 
15 #include <stdio.h>
16 #include <shogun/lib/common.h>
17 #include <shogun/io/SGIO.h>
21 
22 namespace shogun
23 {
24 class CDistanceMachine;
25 
39 class CKMeans : public CDistanceMachine
40 {
41  public:
43  CKMeans();
44 
50  CKMeans(int32_t k, CDistance* d);
51 
57  CKMeans(int32_t k_i, CDistance* d_i, SGVector<float64_t> centers_i );
58  virtual ~CKMeans();
59 
60 
62 
63 
68 
74  virtual bool load(FILE* srcfile);
75 
81  virtual bool save(FILE* dstfile);
82 
87  void set_k(int32_t p_k);
88 
93  int32_t get_k();
94 
99  void set_max_iter(int32_t iter);
100 
106 
112 
118 
123  int32_t get_dimensions();
124 
126  virtual const char* get_name() const { return "KMeans"; }
127 
128  /* get the initial centers */
129  virtual bool set_initial_centers(SGVector<float64_t> centers);
130 
131  protected:
137  void clustknb(bool use_old_mus, float64_t *mus_start);
138 
147  virtual bool train_machine(CFeatures* data=NULL);
148 
150  virtual void store_model_features();
151 
152  virtual bool train_require_labels() const { return false; }
153 
154  private:
155  void init();
156 
157  protected:
159  int32_t max_iter;
160 
162  int32_t k;
163 
165  int32_t dimensions;
166 
169 
172  private:
173  /* temporary variable for weighting over the train data */
174  SGVector<float64_t> Weights;
175 
176  /* temp variable for cluster centers */
178 };
179 }
180 #endif
181 
virtual const char * get_name() const
Definition: KMeans.h:126
EMachineType
Definition: Machine.h:33
virtual bool save(FILE *dstfile)
Definition: KMeans.cpp:98
Class Distance, a base class for all the distances used in the Shogun toolbox.
Definition: Distance.h:80
int32_t max_iter
maximum number of iterations
Definition: KMeans.h:159
int32_t dimensions
number of dimensions
Definition: KMeans.h:165
SGVector< float64_t > R
radi of the clusters (size k)
Definition: KMeans.h:168
void set_k(int32_t p_k)
Definition: KMeans.cpp:106
virtual bool set_initial_centers(SGVector< float64_t > centers)
Definition: KMeans.cpp:56
int32_t get_dimensions()
Definition: KMeans.cpp:145
A generic DistanceMachine interface.
virtual ~CKMeans()
Definition: KMeans.cpp:52
void clustknb(bool use_old_mus, float64_t *mus_start)
Definition: KMeans.cpp:197
virtual bool train_require_labels() const
Definition: KMeans.h:152
SGVector< float64_t > get_radiuses()
Definition: KMeans.cpp:128
KMeans clustering, partitions the data into k (a-priori specified) clusters.
Definition: KMeans.h:39
SGVector< float64_t > mus_initial
initial centers supplied
Definition: KMeans.h:171
#define MACHINE_PROBLEM_TYPE(PT)
Definition: Machine.h:115
float64_t get_max_iter()
Definition: KMeans.cpp:123
double float64_t
Definition: common.h:48
virtual bool load(FILE *srcfile)
Definition: KMeans.cpp:91
void set_max_iter(int32_t iter)
Definition: KMeans.cpp:117
virtual EMachineType get_classifier_type()
Definition: KMeans.h:67
The class Features is the base class of all feature objects.
Definition: Features.h:62
virtual void store_model_features()
Definition: KMeans.cpp:483
virtual bool train_machine(CFeatures *data=NULL)
Definition: KMeans.cpp:64
int32_t get_k()
Definition: KMeans.cpp:112
int32_t k
the k parameter in KMeans
Definition: KMeans.h:162
SGMatrix< float64_t > get_cluster_centers()
Definition: KMeans.cpp:133

SHOGUN Machine Learning Toolbox - Documentation