23 DLL_DECLSPEC
virtual ~Model();
30 virtual bool fit(Eigen::Ref<const Eigen::MatrixXd> data) = 0;
41 virtual const std::vector<unsigned int>&
labels()
const = 0;
49 virtual const Eigen::MatrixXd&
centroids()
const = 0;
71 DLL_DECLSPEC
virtual void init(Eigen::Ref<const Eigen::MatrixXd> data, std::default_random_engine& prng,
unsigned int number_components, Eigen::Ref<Eigen::MatrixXd> centroids)
const = 0;
88 DLL_DECLSPEC
virtual void init(Eigen::Ref<const Eigen::MatrixXd> data, std::default_random_engine& prng,
unsigned int number_components, Eigen::Ref<Eigen::MatrixXd> responsibilities)
const = 0;
95 DLL_DECLSPEC
void init(Eigen::Ref<const Eigen::MatrixXd> data, std::default_random_engine& prng,
unsigned int number_components, Eigen::Ref<Eigen::MatrixXd> centroids)
const override;
102 DLL_DECLSPEC
void init(Eigen::Ref<const Eigen::MatrixXd> data, std::default_random_engine& prng,
unsigned int number_components, Eigen::Ref<Eigen::MatrixXd> centroids)
const override;
111 DLL_DECLSPEC
void init(Eigen::Ref<const Eigen::MatrixXd> data, std::default_random_engine& prng,
unsigned int number_components, Eigen::Ref<Eigen::MatrixXd> centroids)
const override;
122 DLL_DECLSPEC
ClosestCentroid(std::shared_ptr<const CentroidsInitialiser> centroids_initialiser);
124 void init(Eigen::Ref<const Eigen::MatrixXd> data, std::default_random_engine& prng,
unsigned int number_components, Eigen::Ref<Eigen::MatrixXd> responsibilities)
const override;
126 std::shared_ptr<const CentroidsInitialiser> centroids_initialiser_;
void init(Eigen::Ref< const Eigen::MatrixXd > data, std::default_random_engine &prng, unsigned int number_components, Eigen::Ref< Eigen::MatrixXd > centroids) const override
Initialises location of centroids.
virtual const std::vector< unsigned int > & labels() const =0
Returns a const reference to resulting cluster labels for each datapoint. Value make sense only if fi...
virtual bool converged() const =0
Reports if the model converged.
void init(Eigen::Ref< const Eigen::MatrixXd > data, std::default_random_engine &prng, unsigned int number_components, Eigen::Ref< Eigen::MatrixXd > responsibilities) const override
Initialises component responsibilities.
Definition: BallTree.hpp:10
virtual bool fit(Eigen::Ref< const Eigen::MatrixXd > data)=0
Fits the model.
Assigns points to clusters randomly and then returns cluster means.
Definition: Clustering.hpp:99
virtual unsigned int number_clusters() const =0
Returns the number of clusters.
Chooses initial component responsibilities.
Definition: Clustering.hpp:75
Chooses random points as new centroids.
Definition: Clustering.hpp:92
virtual ~CentroidsInitialiser()
Virtual destructor.
Abstract clustering model.
Definition: Clustering.hpp:17
ClosestCentroid(std::shared_ptr< const CentroidsInitialiser > centroids_initialiser)
Constructor.
virtual ~Model()
Virtual destructor.
void init(Eigen::Ref< const Eigen::MatrixXd > data, std::default_random_engine &prng, unsigned int number_components, Eigen::Ref< Eigen::MatrixXd > centroids) const override
Initialises location of centroids.
virtual void init(Eigen::Ref< const Eigen::MatrixXd > data, std::default_random_engine &prng, unsigned int number_components, Eigen::Ref< Eigen::MatrixXd > centroids) const =0
Initialises location of centroids.
virtual void init(Eigen::Ref< const Eigen::MatrixXd > data, std::default_random_engine &prng, unsigned int number_components, Eigen::Ref< Eigen::MatrixXd > responsibilities) const =0
Initialises component responsibilities.
virtual const Eigen::MatrixXd & centroids() const =0
Returns a const reference to the matrix of cluster centroids (in columns).
Chooses initial locations of centroids.
Definition: Clustering.hpp:58
virtual ~ResponsibilitiesInitialiser()
Virtual destructor.
void init(Eigen::Ref< const Eigen::MatrixXd > data, std::default_random_engine &prng, unsigned int number_components, Eigen::Ref< Eigen::MatrixXd > centroids) const override
Initialises location of centroids.
Implements the K++ algorithm.
Definition: Clustering.hpp:108
Initialises centroids and then assigns the responsibility for each point to its closest centroid.
Definition: Clustering.hpp:115