KMeans

public class KMeans

K-Means Clustering

  • Method for initialization.

    Declaration

    Swift

    var initializer: String
  • Seed for initializing the pseudo-random number generator.

    Declaration

    Swift

    var seed: Int64
  • Maximum number of iterations of the k-means algorithm to run.

    Declaration

    Swift

    var maximumIterationCount: Int
  • The number of clusters to form as well as the number of centroids to generate.

    Declaration

    Swift

    var clusterCount: Int
  • Cluster centers which data is assigned to.

    Declaration

    Swift

    public var centroids: Tensor<Float>
  • Inertia is the sum of square distances of samples to their closest cluster center.

    Declaration

    Swift

    public var inertia: Tensor<Float>
  • Predicted cluster for training data.

    Declaration

    Swift

    public var labels: Tensor<Int32>
  • Creates a Kmeans cluster.

    Declaration

    Swift

    public init(
        clusterCount: Int = 2,
        maximumIterationCount: Int = 300,
        initializer: String = "kmeans++",
        seed: Int64 = 0
    )

    Parameters

    clusterCount

    The number of clusters to form as well as the number of centroids to generate, default to 2.

    maximumIterationCount

    Maximum number of iterations of the k-means algorithm to run, default to 300.

    initializer

    Select the initialization method for centroids. kmeans++, random methods for initialization, default to kmeans++.

    seed

    Used to initialize a pseudo-random number generator, default to 0.

  • Returns the index of centroid having minimum euclidean distance with data.

    Declaration

    Swift

    internal func nearest(centroids: Tensor<Float>, data: Tensor<Float>) -> Tensor<Int32>

    Parameters

    centroids

    Centroids with shape [1, feature count].

    data

    Data tensor of shape [sample count, feature count].

    Return Value

    Index of minimum euclidean distance centroid.

  • Heuristic Initialization of centroids.

    Reference: “k-means++: The Advantages of Careful Seeding”

    Declaration

    Swift

    internal func kmeansPlusPlus(_ data: Tensor<Float>)

    Parameters

    data

    Data with shape [sample count, feature count].

  • Random Initialization of centroids.

    Declaration

    Swift

    internal func randomInitializer(_ data: Tensor<Float>)

    Parameters

    data

    Data with shape [sample count, feature count].

  • Fit a k-means cluster.

    Declaration

    Swift

    public func fit(data: Tensor<Float>)

    Parameters

    data

    Input data with shape [sample count, feature count].

  • Returns the prediced cluster labels.

    Declaration

    Swift

    public func prediction(for data: Tensor<Float>) -> Tensor<Int32>

    Parameters

    data

    Input data with shape [sample count, feature count].

    Return Value

    Prediction for input data.

  • Returns fit and prediced cluster labels.

    Declaration

    Swift

    public func fitAndPrediction(for data: Tensor<Float>) -> Tensor<Int32>

    Parameters

    data

    Input data with shape [sample count, feature count].

    Return Value

    Predicted prediction for input data.

  • Returns Transform input to a cluster-distance space.

    Declaration

    Swift

    public func transformation(for data: Tensor<Float>) -> Tensor<Float>

    Parameters

    data

    Input data with shape [sample count, feature count].

    Return Value

    Transformed input to a cluster-distance space.

  • Returns fit and Transform input to a cluster-distance space.

    Declaration

    Swift

    public func fitAndTransformation(for data: Tensor<Float>) -> Tensor<Float>

    Parameters

    data

    Input data with shape [sample count, feature count].

    Return Value

    Transformed data to a cluster-distance space.

  • Returns the sum of square distances of samples to their closest cluster center.

    Declaration

    Swift

    public func score() -> Tensor<Float>

    Return Value

    Sum of square distances of samples to their closest cluster center.