Classes | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes

OpenTissue::math::detail::KMeans< V, M > Class Template Reference

#include <math_kmeans.h>

List of all members.

Classes

class  cluster_type
class  membership_info

Public Types

typedef cluster_container::iterator cluster_iterator
typedef
membership_container::iterator 
membership_iterator

Public Member Functions

cluster_iterator cluster_begin ()
cluster_iterator cluster_end ()
membership_iterator membership_begin ()
membership_iterator membership_end ()
size_t feature_size () const
template<typename vector_iterator >
void run (vector_iterator const &begin, vector_iterator const &end, size_t const &K, size_t &iteration, size_t const &max_iterations)

Protected Types

typedef V vector_type
typedef V::value_type real_type
typedef M matrix_type
typedef
OpenTissue::math::ValueTraits
< real_type
value_traits
typedef std::list< vector_type * > feature_ptr_container
typedef
feature_ptr_container::iterator 
feature_ptr_iterator
typedef
boost::indirect_iterator
< feature_ptr_iterator,
vector_type
feature_iterator
typedef std::vector
< membership_info
membership_container
typedef std::list< cluster_typecluster_container

Protected Member Functions

template<typename vector_iterator >
void initialize (vector_iterator const &begin, vector_iterator const &end, size_t const &K)
bool const distribute_features ()

Protected Attributes

cluster_container m_clusters
 Clusters.
membership_container m_memberships
 Feature to cluster membership container.

Detailed Description

template<typename V, typename M>
class OpenTissue::math::detail::KMeans< V, M >

A General Purpose KMeans algorithm Implementation.

The class takes two template arguments: V a vector type and M a matrix type.


Member Typedef Documentation

template<typename V , typename M >
typedef std::list<cluster_type> OpenTissue::math::detail::KMeans< V, M >::cluster_container [protected]
template<typename V , typename M >
typedef cluster_container::iterator OpenTissue::math::detail::KMeans< V, M >::cluster_iterator
template<typename V , typename M >
typedef boost::indirect_iterator<feature_ptr_iterator,vector_type> OpenTissue::math::detail::KMeans< V, M >::feature_iterator [protected]
template<typename V , typename M >
typedef std::list< vector_type * > OpenTissue::math::detail::KMeans< V, M >::feature_ptr_container [protected]
template<typename V , typename M >
typedef feature_ptr_container::iterator OpenTissue::math::detail::KMeans< V, M >::feature_ptr_iterator [protected]
template<typename V , typename M >
typedef M OpenTissue::math::detail::KMeans< V, M >::matrix_type [protected]
template<typename V , typename M >
typedef std::vector< membership_info > OpenTissue::math::detail::KMeans< V, M >::membership_container [protected]
template<typename V , typename M >
typedef membership_container::iterator OpenTissue::math::detail::KMeans< V, M >::membership_iterator
template<typename V , typename M >
typedef V::value_type OpenTissue::math::detail::KMeans< V, M >::real_type [protected]
template<typename V , typename M >
typedef OpenTissue::math::ValueTraits<real_type> OpenTissue::math::detail::KMeans< V, M >::value_traits [protected]
template<typename V , typename M >
typedef V OpenTissue::math::detail::KMeans< V, M >::vector_type [protected]

Member Function Documentation

template<typename V , typename M >
cluster_iterator OpenTissue::math::detail::KMeans< V, M >::cluster_begin (  )  [inline]

Cluster Begin Iterator.

Returns:
An iterator to the first cluster.
template<typename V , typename M >
cluster_iterator OpenTissue::math::detail::KMeans< V, M >::cluster_end (  )  [inline]

Cluster End Iterator.

Returns:
An iterator to one past the last cluster.
template<typename V , typename M >
bool const OpenTissue::math::detail::KMeans< V, M >::distribute_features (  )  [inline, protected]

This method re-assigns feature points to clusters. Afterwards the method tries to re-estimate the clusters using a covariance analysis of the assigned feature points.

Returns:
If a change occured in the reassignment of feature points then the return value is true. If the return value is false then it simply means that the clusters did not change. In other words we would have converged.
template<typename V , typename M >
size_t OpenTissue::math::detail::KMeans< V, M >::feature_size (  )  const [inline]

Get number of feature points.

Returns:
The number of feature points.
template<typename V , typename M >
template<typename vector_iterator >
void OpenTissue::math::detail::KMeans< V, M >::initialize ( vector_iterator const &  begin,
vector_iterator const &  end,
size_t const &  K 
) [inline, protected]

Initialize KMeans Algorithm. This method creates an initial set of clusters and assign feature points to them.

Parameters:
points An array type container of feature points.
K The wanted number of clusters.
template<typename V , typename M >
membership_iterator OpenTissue::math::detail::KMeans< V, M >::membership_begin (  )  [inline]

Membership Begin Iterator.

Returns:
An iterator to the first feature point membership information.
template<typename V , typename M >
membership_iterator OpenTissue::math::detail::KMeans< V, M >::membership_end (  )  [inline]

Membership End Iterator.

Returns:
An iterator to one past the last feature point membership information.
template<typename V , typename M >
template<typename vector_iterator >
void OpenTissue::math::detail::KMeans< V, M >::run ( vector_iterator const &  begin,
vector_iterator const &  end,
size_t const &  K,
size_t &  iteration,
size_t const &  max_iterations 
) [inline]

K-means.

Parameters:
begin An iterator to the first feature point.
end An iterator to the position one past the last feature point.
K The number of clusters
iteration Upon return this argument holds the number of iterations that was done.
max_iterations The maximum number of iterations to perform the KMeans algorithm.

Member Data Documentation

template<typename V , typename M >
cluster_container OpenTissue::math::detail::KMeans< V, M >::m_clusters [protected]

Clusters.

template<typename V , typename M >
membership_container OpenTissue::math::detail::KMeans< V, M >::m_memberships [protected]

Feature to cluster membership container.


The documentation for this class was generated from the following file: