Генерация высокоразмерных наборов данных с помощью Scikit-Learn

Я работаю с алгоритмом кластеризации Mean Shift, который основан на оценке плотности ядра набора данных. Я хотел бы создать большой, большой размерный набор данных, и я подумал, что функция Scikit-Learn make_blobs подойдет. Но когда я пытаюсь сгенерировать 8-мерный набор данных по 1 миллиону точек, я получаю почти каждую точку как отдельный кластер.

Я генерирую большие двоичные объекты со стандартным отклонением 1, а затем устанавливаю полосу пропускания для среднего смещения на то же значение (я думаю, что это имеет смысл, верно?). Для двумерных наборов данных это дало хорошие результаты, но для более высоких измерений я думаю, что столкнулся с проклятием размерности в том, что расстояние между точками становится слишком большим для осмысленной кластеризации.

Есть ли у кого-нибудь какие-либо советы / рекомендации о том, как получить хороший многомерный набор данных, подходящий для (что-то вроде) Mean Shift кластеризации? (или я делаю что-то не так? (что, конечно, хорошая возможность))

1 ответ

Решение

Стандартное отклонение кластеров не 1.

У вас есть 8 измерений, каждое из которых имеет стандартное отклонение 1, поэтому у вас есть общее стандартное отклонение sqrt(8) или что-то в этом роде.

Оценка плотности ядра плохо работает в многомерных данных из-за проблем с пропускной способностью.

Другие вопросы по тегам