-1

Мне необходимо написать программу, которая реализует кластеризацию kmeans для данного набора данных (я грубо понимаю, как работает алгоритм kmeans). Поскольку я хочу, чтобы моя программа была общей, я хотел бы понимать следующие термины:Понимание некоторых терминов в кластеризации K-классов

Для данного набора данных, который содержит 100 строк и 10 столбцов (при условии, что каждый столбец является функцией), как определить следующие параметры:

  1. измерение: Как я знаю, что размерность этого набора данных?
  2. data point: Означает ли это, что каждая ячейка [row][col] является точкой данных или всей строкой является одной точкой данных (вектор точек)?
+0

Каждое измерение соответствует признаку, точка данных представляет собой строку, то есть точку в этом НЗ-мерном пространстве. –

ответ

0

Вы должны увидеть свой набор данных с точки зрения вычислительной геометрии, где каждый элемент вашего набора данных является точкой в ​​пространственном пространстве D.

Ваш набор данных выглядит следующим образом, я думаю:

row0.col0 row0.col1 ... row0.col9 
... 
row99.col0 row99.col1 ... row99.col9 

С точки зрения, я бы интерпретировать этот набор данных в 100 пунктов, в 10 измерениях.


Размер

Это число столбцов, поэтому 10. Каждый столбец координату с математической точки зрения! ;)

точка данных

Каждый ряд точка данных! Каждая ячейка является координатой этой точки!


Например, проверить мой minimal example here, вы увидите, я создаю 10000000 точек (это строки в вашем случае), в 64 измерениях (это столбцы в вашем случае).

+1

О БОЛЬШОЕ. Большое спасибо. Поэтому, если я хочу выбрать начальные случайные центроиды для 5 кластеров, я бы выбрал случайным образом 5 строк, чтобы каждый центроид переходил на один кластер. Правильно? – Frank

+0

@Frank каждый центроид - это точка в том же размерном пространстве, что и точки вашего набора данных. Итак, да, вы можете выбрать 5 баллов в случайном порядке из своего набора данных и использовать их в качестве 5 начальных случайных центроидов (так что вы выберете 5 строк из вашего набора данных). Вы можете легко сделать это со случайным генератором от [0, 99], так как у вас есть 100 очков. Например, я бы [выбрать случайным образом, как это в C] (https://gsamaras.wordpress.com/code/random-numbers-%E2%88%88min-max/). – gsamaras

+0

Большое спасибо за ваши комментарии. Действительно полезно. У меня есть еще один вопрос. На самом деле, я до сих пор не понимаю (действительно), почему мы называем всю строку (точку). Когда речь идет о точках, я думаю о (х, у) точке в плоскости данных. – Frank

0

Это зависит.

Но большинство языков и форматов файлов (например, CSV) используют одну строку для каждой записи и один столбец на измерение. Эта таблица вид очень распространен.

E.g. в Java большинство людей читают матрицу double[100][10] как 100 записей, по 10 измерений.

Некоторые языки разные. Matlab и Julia являются основными столбцами IIRC, поэтому форма (100,10) составляет 100 измерений, 10 строк.

Смежные вопросы