У меня есть набор данных X, который имеет 10 измерений, 4 из которых являются дискретными значениями. Фактически, эти 4 дискретные переменные являются порядковыми, то есть более высокое значение подразумевает более высокую / лучшую семантику.
2 из этих дискретных переменных являются категориальными в том смысле, что для каждой из этих переменных расстояние, например, от 11 до 12, не совпадает с расстоянием от 5 до 6. В то время как более высокое значение переменной подразумевает большее в действительности, масштаб не обязательно линейный (на самом деле, он на самом деле не определен).
Мой вопрос:
- Является ли хорошей идеей применить общий алгоритм кластеризации (например, K-средние, а затем гауссова смесь (GMM)) к этому набору данных, который содержит как дискретные, так и непрерывные переменные?
Если не:
- Должен ли я удалить дискретные переменные и сосредоточиться только на непрерывных?
- Должен ли я лучше дискретизировать непрерывные и использовать алгоритм кластеризации для дискретных данных?
Ответы:
Итак, вам сказали, что вам нужна соответствующая мера расстояния. Вот некоторые выводы:
и, конечно же, расстояние Махаланобиса .
источник
Раньше мне приходилось сталкиваться с такой проблемой, и я думаю, что может быть два интересных подхода:
Непрерывность: преобразуйте символьные атрибуты с помощью последовательности целых чисел. Есть несколько способов сделать это, все из которых описаны в этой статье . Вы можете попробовать алгоритмы NBF, VDM и MDV.
Дискретность: преобразование непрерывных атрибутов в символические значения. Опять же, много алгоритмов, и хорошей лекцией по этому вопросу была бы эта статья . Я полагаю, что наиболее часто используемый метод - это метод Холте 1R, но лучший способ узнать наверняка - взглянуть на кривые ROC с помощью таких алгоритмов, как EWD, EFD, ID, LD или NDD.
Если все ваши функции находятся в одном и том же пространстве, это становится обычной проблемой кластеризации.
Выбор между продолжением или дискретизацией зависит от вашего набора данных и от того, как выглядят ваши функции, поэтому сложно сказать, но я советую вам прочитать статьи, которые я дал вам по этой теме.
источник
K-означает, очевидно, не имеет никакого смысла, поскольку он вычисляет средства (которые являются бессмысленными). То же самое касается GMM.
Возможно, вы захотите попробовать основанные на расстоянии алгоритмы кластеризации с соответствующими функциями расстояния, например, DBSCAN.
Основная задача - найти функцию расстояния!
Хотя вы можете поместить другую функцию расстояния в k-means, она все равно будет вычислять среднее значение, которое, вероятно, не имеет особого смысла (и, вероятно, портит функцию расстояния для дискретных значений).
Во всяком случае, сначала сосредоточиться на том, чтобы определить, что такое «похожий» . Затем кластер с использованием этого определения аналога!
источник
Если вам удобно работать с дистанционной матрицей размера
num_of_samples x num_of_samples
, вы также можете использовать ееrandom forests
.Нажмите здесь для справочного документа под названием
Unsupervised learning with random forest predictors
.Идея заключается в создании синтетического набора данных по
shuffling
значениям в исходном наборе данных и обучении классификатору для разделения обоих. Во время классификации вы получитеinter-sample distance matrix
, на котором вы можете проверить свой любимый алгоритм кластеризации.источник
Следует принять смешанный подход: 1) Использовать метод классификации (дерево решений C4.5) для классификации набора данных на 2 класса. 2) Как только это будет сделано, оставьте категориальные переменные и перейдите к непрерывным переменным для кластеризации.
источник