KMeans

Struct KMeans 

Source
pub struct KMeans { /* private fields */ }
Expand description

A clustering-problem where each center can be any point in the metric space.

The metric space is the same space the points live in.

The cost of a cluster, given a center, is the sum of the squared Euclidean distances between the center and all points in the cluster. The center is automatically calculated to minimise the cost, which turns out to simply be the average of all point-positions in the cluster.

See the wikipedia-article on k-means-clustering for more information.

Implementations§

Source§

impl KMeans

Source

pub fn new(points: &[Point]) -> Result<Self, Error>

Construct a new k-means clustering instance from a slice of points.

§Examples
use ndarray::array;
use exact_clustering::KMeans;

KMeans::new(&[array![0.0, 0.0], array![1.0, 2.0]]).unwrap();

Trait Implementations§

Source§

impl Clone for KMeans

Source§

fn clone(&self) -> KMeans

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Cost for KMeans

Source§

fn num_points(&self) -> usize

Get the number of points that must be clustered. Read more
Source§

fn cost(&mut self, cluster: Cluster) -> f64

Get the cost of a cluster. Read more
Source§

fn approximate_clusterings(&mut self) -> Vec<(f64, Clustering)>

Quickly calculate a not-necessarily-optimal clustering. Read more
Source§

fn total_cost(&mut self, clustering: &Clustering) -> f64

Get the total cost of a clustering.
Source§

fn optimal_clusterings(&mut self) -> Vec<(f64, Clustering)>

Calculate an optimal k-clustering for every 0 ≤ k ≤ self.num_points(). Read more
Source§

fn price_of_hierarchy(&mut self) -> (f64, Vec<Clustering>)

Calculate the price-of-hierarchy of the clustering-problem, together with an optimal hierarchy. Read more
Source§

fn greedy_hierarchy(&mut self) -> Vec<(f64, Clustering)>

Calculate a greedy hierarchical clustering. Read more
Source§

fn price_of_greedy(&mut self) -> (f64, Vec<Clustering>)

Calculate the cost-ratio of a greedy hierarchical clustering. Read more
Source§

impl Debug for KMeans

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for KMeans

§

impl RefUnwindSafe for KMeans

§

impl Send for KMeans

§

impl Sync for KMeans

§

impl Unpin for KMeans

§

impl UnwindSafe for KMeans

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V