Kmeans.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2014 Open Source Robotics Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16 */
17 #ifndef IGNITION_MATH_KMEANS_HH_
18 #define IGNITION_MATH_KMEANS_HH_
19 
20 #include <vector>
21 #include <ignition/math/Vector3.hh>
22 #include <ignition/math/Helpers.hh>
23 #include <ignition/math/config.hh>
24 
25 namespace ignition
26 {
27  namespace math
28  {
29  inline namespace IGNITION_MATH_VERSION_NAMESPACE
30  {
31  // Forward declare private data
32  class KmeansPrivate;
33 
39  class IGNITION_MATH_VISIBLE Kmeans
40  {
43  public: explicit Kmeans(const std::vector<Vector3d> &_obs);
44 
46  public: virtual ~Kmeans();
47 
50  public: std::vector<Vector3d> Observations() const;
51 
55  public: bool Observations(const std::vector<Vector3d> &_obs);
56 
60  public: bool AppendObservations(const std::vector<Vector3d> &_obs);
61 
73  public: bool Cluster(int _k,
74  std::vector<Vector3d> &_centroids,
75  std::vector<unsigned int> &_labels);
76 
80  private: unsigned int ClosestCentroid(const Vector3d &_p) const;
81 
83  private: KmeansPrivate *dataPtr;
84  };
85  }
86  }
87 }
88 
89 #endif
Helpers.hh
ignition::math::IGNITION_MATH_VERSION_NAMESPACE::Kmeans::AppendObservations
bool AppendObservations(const std::vector< Vector3d > &_obs)
Add observations to the cluster.
ignition
Definition: Angle.hh:40
ignition::math::IGNITION_MATH_VERSION_NAMESPACE::Kmeans::Observations
std::vector< Vector3d > Observations() const
Get the observations to cluster.
Vector3.hh
ignition::math::IGNITION_MATH_VERSION_NAMESPACE::Kmeans::~Kmeans
virtual ~Kmeans()
Destructor.
ignition::math::IGNITION_MATH_VERSION_NAMESPACE::Kmeans::Observations
bool Observations(const std::vector< Vector3d > &_obs)
Set the observations to cluster.
ignition::math::IGNITION_MATH_VERSION_NAMESPACE::Kmeans::Kmeans
Kmeans(const std::vector< Vector3d > &_obs)
constructor
ignition::math::IGNITION_MATH_VERSION_NAMESPACE::Vector3
The Vector3 class represents the generic vector containing 3 elements. Since it's commonly used to ke...
Definition: Vector3.hh:40
ignition::math::IGNITION_MATH_VERSION_NAMESPACE::Kmeans::Cluster
bool Cluster(int _k, std::vector< Vector3d > &_centroids, std::vector< unsigned int > &_labels)
Executes the k-means algorithm.
ignition::math::IGNITION_MATH_VERSION_NAMESPACE::Kmeans
K-Means clustering algorithm. Given a set of observations, k-means partitions the observations into k...
Definition: Kmeans.hh:40