Skip to main content
aggregate_k_means(table_name=None, column_names=None, k=None, tolerance=None, options=)[source]

This endpoint runs the k-means algorithm - a heuristic algorithm that attempts to do k-means clustering. An ideal k-means clustering algorithm selects k points such that the sum of the mean squared distances of each member of the set to the nearest of the k points is minimized. The k-means algorithm however does not necessarily produce such an ideal cluster. It begins with a randomly selected set of k points and then refines the location of the points iteratively and settles to a local minimum. Various parameters and options are provided to control the heuristic search.

NOTE: The Kinetica instance being accessed must be running a CUDA (GPU-based) build to service this request.

Parameters

table_name (str) –

Name of the table on which the operation will be performed. Must be an existing table, in [schema_name.]table_name format, using standard name resolution rules.

column_names (list of str) –

List of column names on which the operation would be performed. If n columns are provided then each of the k result points will have n dimensions corresponding to the n columns. The user can provide a single element (which will be automatically promoted to a list internally) or a list.

k (int) –

The number of mean points to be determined by the algorithm.

tolerance (float) –

Stop iterating when the distances between successive points is less than the given tolerance.

options (dict of str to str) –

Optional parameters. Allowed keys are:

  • whiten – When set to 1 each of the columns is first normalized by its stdv - default is not to whiten.

  • max_iters – Number of times to try to hit the tolerance limit before giving up - default is 10.

  • num_tries – Number of times to run the k-means algorithm with a different randomly selected starting points - helps avoid local minimum. Default is 1.

  • create_temp_table – If true, a unique temporary table name will be generated in the sys_temp schema and used in place of result_table. If result_table_persist is false (or unspecified), then this is always allowed even if the caller does not have permission to create tables. The generated name is returned in qualified_result_table_name. Allowed values are:

    • true

    • false

    The default value is ‘false’.

  • result_table – The name of a table used to store the results, in [schema_name.]table_name format, using standard name resolution rules and meeting table naming criteria. If this option is specified, the results are not returned in the response.

  • result_table_persist – If true, then the result table specified in result_table will be persisted and will not expire unless a ttl is specified. If false, then the result table will be an in-memory table and will expire unless a ttl is specified otherwise. Allowed values are:

    • true

    • false

    The default value is ‘false’.

  • ttl – Sets the TTL of the table specified in result_table.

The default value is an empty dict ( ).

Returns

A dict with the following entries–

means (list of lists of floats) –

The k-mean values found.

counts (list of longs) –

The number of elements in the cluster closest the corresponding k-means values.

rms_dists (list of floats) –

The root mean squared distance of the elements in the cluster for each of the k-means values.

count (long) –

The total count of all the clusters - will be the size of the input table.

rms_dist (float) –

The sum of all the rms_dists - the value the k-means algorithm is attempting to minimize.

tolerance (float) –

The distance between the last two iterations of the algorithm before it quit.

num_iters (int) –

The number of iterations the algorithm executed before it quit.

info (dict of str to str) –

Additional information. Allowed keys are:

  • qualified_result_table_name – The fully qualified name of the result table (i.e. including the schema) used to store the results.

The default value is an empty dict ( ).