Корреляция, кластеризирующаяся в R

За возможным исключением "коротких", которое возможно является определенной тратой пространства - иногда буквально, они - все лошади для курсов:

  • Использование интервал , когда Вам не нужны дробные числа и у Вас нет причины использовать что-либо еще; на большинстве конфигураций процессоров/ОС это - размер числа, с которым может иметь дело машина наиболее эффективно;
  • Использование двойной при необходимости в дробных числах и у Вас нет причины использовать что-либо еще;
  • Использование символ , когда Вы хотите представить символ (или возможно редкие случаи, где Вам нужна двухбайтовая неподписанная арифметика);
  • Использование байт , если любой конкретно необходимо управлять , подписался байт (редкий!), или когда необходимо переместиться блок из байтов;
  • Использование булевская переменная , когда Вам нужно простое "да/нет" флаг;
  • Использование длинный для тех случаев, где Вам нужно целое число, но где величина могла превысить 2 миллиарда (размеры файла, измерения времени в миллисекундах/наносекунды, в усовершенствованном использовании для уплотнения нескольких частей данных в единственное число);
  • Использование плавание для тех редких случаев, где Вы любой (a) хранят , огромный номер их и сохранения памяти стоит, или (b) работает крупное количество вычислений и может предоставить потерю в точности. Для большинства приложений "плавание" предлагает очень плохую точность, но операции могут быть вдвое более быстрыми - стоит протестировать это на Вашем процессоре, тем не менее, чтобы найти, что это на самом деле имеет место! [*]
  • Использование короткий при реальной необходимости в в 2 байтах подписало арифметику. Нет такого количества случаев...

[*], Например, в Горячей точке на архитектуре Pentium, float и двойные операции обычно занимают точно то же время , за исключением подразделения.

не становятся слишком срываемыми в использовании памяти этих типов, если Вы действительно не понимаете его. Например:

  • каждый размер объекта округлен к 16 байтам в Горячей точке, таким образом, объект с единственным полем байта поднимет точно то же пространство как отдельный объект с длинным или двойным полем;
  • , когда передающие параметры к методу, каждый тип поднимает 4 или 8 байтов на стеке : Вы ничего не сохраните путем изменения параметра метода от, скажем, интервала до короткого! (Я видел, что люди делают это...)

, Очевидно, существуют определенные вызовы API (например, различные призывы к не-ЦП интенсивные задачи, которые по некоторым причинам берут плавания), куда просто необходимо передать его тип, который он просит...!

Примечание, что Строка не является типом примитива, таким образом, это действительно не принадлежит этого списка.

9
задан Paul 29 February 2016 в 09:35
поделиться

4 ответа

I admittedly know very little about this subject, but just to point you in a direction:

  • Have you looked at the cluster package? It has very good documentation. In particular, look at help(agnes) for some suggestions. Martin Maechler (a member of the R core team) created the package and has contributed to Stack Overflow discussions before, so hopefully he'll provide an answer here.
  • The hclust() function is part of the stats package. In fact, I believe that there are plans to merge hclust() and agnes().
  • You may also find this page from the Bioconductor project helpful.
  • Otherwise, you may have some luck looking at other packages on the CRAN Clustering, Natural Language Processing or Machine Learning views.
7
ответ дан 4 December 2019 в 12:19
поделиться

Стандартный подход включает cor () , hclust () и plot.hclust () . Я очень рекомендую heatmap.2 из замечательного пакета gplots.

7
ответ дан 4 December 2019 в 12:19
поделиться

Я зашел на http://www.rseek.org/ , ввел алгоритм Agnes и обнаружил, что пакет CLUSTER на CRAN содержит следующие подробные сведения о функциях AGNES.

Подробности

Агнес полностью описаны в главе 5. Кауфмана и Руссеу (1990). По сравнению с другими агломеративными методы кластеризации, такие как hclust, Агнес имеет следующие особенности: (а) дает агломеративный коэффициент (см. agnes.object), который измеряет количество кластеров структура найдена; и (б) помимо обычное дерево, оно также обеспечивает баннер, новый графический дисплей (см. plot.agnes).

Алгоритм Агнеса строит иерархия кластеров. Во-первых, каждое наблюдение представляет собой небольшой кластер по сам. Кластеры объединяются до тех пор, пока не будет остается один большой кластер, который содержит все наблюдения. На каждом стадии два ближайших кластера объединены в один больший кластер.

Для method = "average" расстояние между двумя кластерами - это среднее значение несходство между пунктами в одном кластере, а точки в другой кластер. В method = "single" мы использовать малейшее различие между точка в первом кластере и точка во втором кластере (ближайшая соседний метод). когда method = "complete", мы используем наибольший несходство между точкой в первый кластер и точка в второй кластер (самый дальний сосед метод).

Кластеризация - довольно обширная тема, и вы найдете множество пакетов для R, которые реализуют ее в той или иной форме. Когда у вас есть и атрибуты, и ковариаты, объединение кластеризации с ординацией иногда может дать больше информации.

1
ответ дан 4 December 2019 в 12:19
поделиться

Функцию agnes в пакете cluster легко использовать с матрицей несходства. Просто установите для аргумента "дисс" значение ИСТИНА.

Если вы можете легко вычислить матрицу несходства вне R, то это может быть подходящим вариантом. В противном случае вы можете просто использовать функцию cor в R для создания матрицы сходства (из которой вы можете получить матрицу несходства путем вычитания из 1).

2
ответ дан 4 December 2019 в 12:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: