tf.contrib.factorization.KMeans
Создаёт граф для кластеризации k-средних.
tf.contrib.factorization.KMeans(
inputs, num_clusters, initial_clusters=RANDOM_INIT,
distance_metric=SQUARED_EUCLIDEAN_DISTANCE, use_mini_batch=False,
mini_batch_steps_per_iteration=1, random_seed=0, kmeans_plus_plus_num_retries=2,
kmc2_chain_length=200
)
| Аргументы | |
|---|---|
inputs | Входной тензор или список входных тензоров. Предполагается, что точки данных были предварительно случайным образом перетасованы. |
num_clusters | Целочисленный тензор, определяющий количество кластеров. Этот аргумент игнорируется, если initial_clusters является тензором или массивом NumPy. |
initial_clusters | Определяет кластеры, используемые во время инициализации. Один из следующих вариантов:
|
distance_metric | Метрика расстояния, используемая для кластеризации. Поддерживаются варианты: "squared_euclidean", "cosine". |
use_mini_batch | Если True, используется алгоритм мини-партных k-средних. Иначе предполагается полная партия. |
mini_batch_steps_per_iteration | Количество шагов, после которых обновлённые центры кластеров синхронизируются с основной копией. |
random_seed | Семечко для псевдослучайного генератора чисел, используемого для инициализации семян. |
kmeans_plus_plus_num_retries | Для каждой точки, которая выбирается во время инициализации kmeans++, этот параметр указывает количество дополнительных точек, которые нужно взять из текущего распределения, прежде чем выбрать лучшую. Если указано отрицательное значение, используется эвристика для выбора O(log(num_to_sample)) дополнительных точек. |
kmc2_chain_length | Определяет количество кандидатных точек, используемых алгоритмом k-MC2 для создания одного нового центра кластера. Если (мини-) партия содержит меньше точек, один новый центр кластера генерируется из (мини-) партии. |
| Исключения | |
|---|---|
ValueError | В initial_clusters или distance_metric был передан недопустимый аргумент. |
Методы
training_graph
training_graph()
Генерирует граф обучения для алгоритма k-средних.
Это возвращает, среди прочего, операцию, которая выбирает начальные центры (init_op), булеву переменную, которая устанавливается в True, когда начальные центры выбраны (cluster_centers_initialized), и операцию для выполнения либо полной итерации Ллойда, либо мини-партного варианта итерации Ллойда (training_op). Вызывающая сторона должна использовать эти компоненты следующим образом. Один рабочий должен выполнять init_op несколько раз до тех пор, пока cluster_centers_initialized не станет True. Затем несколько рабочих могут выполнять training_op любое количество раз.
| Возвращаемые значения | |
|---|---|
| Кортеж, содержащий: | |
all_scores | Матрица (или список матриц) с размерностями (num_input, num_clusters), где значение представляет расстояние между вектором входных данных и центром кластера. |
cluster_idx | Вектор (или список векторов). Каждый элемент в векторе соответствует строке входных данных в 'inp' и указывает идентификатор кластера, соответствующий входным данным. |
scores | Аналогично cluster_idx, но указывает расстояние до назначенного кластера вместо этого. |
cluster_centers_initialized | Числовое значение, указывающее, были ли инициализированы кластеры. |
init_op | Операция для инициализации кластеров. |
training_op | Операция, которая выполняет итерацию обучения. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/factorization/KMeans