Вопросы с тегами [hierarchical-clustering]

0

голосов
0

ответ
4

Просмотры

Кластер расстояния между большим от точки R

Мне нужно создать кластеры из расстояния между клиентами, если расстояние между точками меньше определенного точного значения сгруппировать их вместе. Я думал об использовании Делона, но я не имею успех
1

голосов
0

ответ
293

Просмотры

Python: Установить количество кластеров для HDBSCAN

Я использую HDBSCAN для аномального значения обнаружения. Я уже знаю, сколько кластеров алгоритм должен использовать. Как установить количество кластеров? Может быть, с fcluster из scipy.cluster.hierarchy библиотеки? Найдено этот пост: HDBSCAN Python выбрать количество кластеров, но сделать ВЗ знает, как использовать метки впоследствии. Может кто-нибудь дать пример для fclusters или имеет другую идею, чтобы установить количество кластеров для hdbscan? Спасибо, Мамо
MaMo
1

голосов
0

ответ
61

Просмотры

Дендрограммы с SciPy

У меня есть набор данных, который я фасонный в соответствии с моими потребностями, то dataframe выглядит следующим образом: Индекс ABCD ..... Z Дата / время 1 0 0 1 ... 0,35 Дата / Время 0,75 1 1 1 1 общее количество строк 8878 То, что я пытаюсь сделать, это создать временную ряд дендрограмму (Пример: всего будет сравниваться столбец для всего столбца B в целом времени). Я ожидаю выход, как это: Пример Дендрограмма http://pubs.rsc.org/services/images/RSCpubs.ePlatform.Service.FreeContent.ImageService.svc/ImageService/Articleimage/2016/AY/c6ay01061j/c6ay01061j-f4_hi- res.gif я пытался построить матрицу сцепления с Z = hierarchy.linkage (X, 'Уорд) Однако, когда я печатаю дендрограммы, он просто показывает пустой рисунок. Там нет никаких проблем, если сравнить каждый момент времени друг с другом и сюжетом, но таким образом, дендрограмма становится слишком сложно наблюдать даже в усеченном виде. Есть ли способ для обработки данных в целом временных рядов и сравнения в столбцах в SciPy?
A.Solen
1

голосов
1

ответ
320

Просмотры

Converting adjacency matrix into distance matrix in python

Я трансформировал следующий edgelist: Источник Цель Вес АВ 12 переменного тока 14 AD 56 БК 17 BF 14 BG 10 к следующей матрице adjaceny: { 'А': { 'В': { 'вес': 12}, 'C': { 'вес': 14}, 'D': { 'вес': 56}, ... 'В': { 'С': { 'вес': 17}, 'F': { 'вес': 14} , «G»: { «вес»: 10}, ..., где исходный столбец является отправителем и целевой столбец получатель инвестиций; столбец веса является объем инвестиций. Я хочу, чтобы выполнить иерархическую кластеризацию на этой взвешенной сети выяснить, какие субъекты могут быть сгруппированы вместе на основе их взаимных инвестиций (чем больше взаимных инвестиций, что «ближе» актеры). Я использую SciPy» s иерархическая кластеризация пакет (scipy.cluster.hierarchy) и моя основная проблема является преобразование списка края выше в расстоянии матрицу, что пакет будет знать, как правильно читать. Расстояния должны быть меньше, чем выше удельный вес связей является (и наоборот), но distance_matrix из scipy.spatial дает только ошибки при использовании указанного выше dataframe в качестве входных данных. Есть ли способ, чтобы вычислить матрицу расстояний таким образом, что она отражает край вес описанного способа? Главное только знать способы преобразования матрицы смежности на расстоянии матрицу, чтобы сделать его пригодным для использования для SciPy пакета чем выше вес связей является (и наоборот), но distance_matrix из scipy.spatial дает только ошибки при использовании указанного выше dataframe в качестве входных данных. Есть ли способ, чтобы вычислить матрицу расстояний таким образом, что она отражает край вес описанного способа? Главное только знать способы преобразования матрицы смежности на расстоянии матрицу, чтобы сделать его пригодным для использования для SciPy пакета чем выше вес связей является (и наоборот), но distance_matrix из scipy.spatial дает только ошибки при использовании указанного выше dataframe в качестве входных данных. Есть ли способ, чтобы вычислить матрицу расстояний таким образом, что она отражает край вес описанного способа? Главное только знать способы преобразования матрицы смежности на расстоянии матрицу, чтобы сделать его пригодным для использования для SciPy пакета
palacinak
1

голосов
0

ответ
49

Просмотры

Как использовать переменную кластеризацию на категорийных данных (varclus)

Я пытаюсь создать иерархическое дерево кластеров, используя переменный пакет кластеризации (varclus) в R. Заметит, что я хочу, чтобы сгруппировать переменную (функцию), а не наблюдения моего набора данных. Проблема заключается в том, что у меня смешанный набор данных, который включает в себя категоричные (> = 2 категории) и числовые переменные, и я не знаю, как обращаться с кластеризацию категориальных переменных в этом случае. Я хочу показать каждую категориальную переменную в качестве одной переменной моего дерева (Как показано в данной работе, рис 22). Тем не менее, когда я исполняю varclus, он делит категориальные переменные с более чем 2-х категорий в различных переменных: Домен категории, например, разделена на множество различных переменных (domainSystemSoftware, domainWebLibraries и т.д.). Вот мой текущий код: independent.variables
Felipe Fronchetti
1

голосов
1

ответ
459

Просмотры

перестановкой столбцов матрицы с заменой и кластеризация

Как я могу переставить столбцы матрицы с заменой в R? Я нашел одну функцию, называемую rmperm {} SNA, но переставляет как столбцы и строки, а я просто хочу, чтобы переставить мои столбцы. Edit: я должен переставить матрицу в 1000 раз, а затем сделать иерархическую кластеризацию, чтобы у меня есть последнее дерево после 1000 randomizations. Большое спасибо.
DianaHelen
1

голосов
1

ответ
2.6k

Просмотры

Есть ли способ отключить кластеризацию при использовании пакета pheatmap R?

Я создал матрицу, и теперь я хотел бы использовать pheatmap рисовать Heatmap, сохраняя порядок строк матрицы. Я хотел бы обратиться кластеризация прочь. В настоящее время pheatamp является кластеризация строки, когда я запускаю следующий сценарий: tissuedata
user2639056
1

голосов
1

ответ
660

Просмотры

Иерархическая кластеризация с использованием взаимной информации в качестве меры подобия?

Я хочу использовать scipy.cluster.hierarchy.linkage вычислить структуру навески по моим данным. Мера сходства мне нужно использовать это взаимная информация. Я могу легко вычислить соответствующую матрицу подобия. Однако функция связи принимает только расстояния матрицу. Используя SciPy (или другой питона ОМТ), как можно вычислить структуру сцепления с использованием взаимной информации в качестве меры подобия? Могу ли я, возможно, преобразовать similiary матрицу к матрице расстояний?
Chiel ten Brinke
1

голосов
1

ответ
388

Просмотры

Дисплей иерархического многомерного массива с нумерацией родителя ребенка

У меня есть многомерный массив, который имеет отношение родитель ребенка. Я хочу, чтобы отобразить это в виде списка численного значения, представляющего их родителей в соответствующем порядке. Массив ([0] => Array ([имя] => Категория 1 [ID] => 6 [детей] => Array ([0] => Array ([имя] => Категория 2 [ID] => 7 [ детей] => Array ([0] => Array ([имя] => cricket1 [ID] => 19 [дети] => ))) [2] => Array ([имя] => Sazzad [ID] => 9 [дети] => Array ([0] => Array ([NAME] => Mahmud [ID] => 10 [дети ] =>)))) Я хочу показать этот массив, как указано ниже: 1. Категория 1 Категория 2 1,1 1.1.1 cricket1 1.1.1.1 cricket2 1,2 другая категория 1.2.1 новый 1 2. Категория 3 2.1 новая категория 3. Sazzad 3,1 Махмуда Как я могу достичь этой системы нумерации с использованием PHP ?? Заранее спасибо. Sazzad [ID] => 9 [дети] => Array ([0] => Array ([имя] => Махмуд [ID] => 10 [дети] =>)))) Я хочу показать этот массив как данность ниже: 1. Категория 1 Категория 2 1.1 1.1.1 cricket1 1.1.1.1 cricket2 1,2 другая категория 1.2.1 новый 1 2. Категория 3 2.1 новая категория 3. Sazzad 3,1 Махмудом Как я могу достичь этой системы нумерации с использованием PHP ?? Заранее спасибо. Sazzad [ID] => 9 [дети] => Array ([0] => Array ([имя] => Махмуд [ID] => 10 [дети] =>)))) Я хочу показать этот массив как данность ниже: 1. Категория 1 Категория 2 1.1 1.1.1 cricket1 1.1.1.1 cricket2 1,2 другая категория 1.2.1 новый 1 2. Категория 3 2.1 новая категория 3. Sazzad 3,1 Махмудом Как я могу достичь этой системы нумерации с использованием PHP ?? Заранее спасибо. Махмуд [ID] => 10 [дети] =>)))) Я хочу показать этот массив, как указано ниже: 1. Категория 1 Категория 2 1,1 1.1.1 cricket1 1.1.1.1 cricket2 1.2 другой категории 1.2.1 новый 1 2 . Категория 3 2.1 новая категория 3. Sazzad 3,1 Махмудом Как я могу достичь этой системы нумерации с использованием PHP ?? Заранее спасибо. Махмуд [ID] => 10 [дети] =>)))) Я хочу показать этот массив, как указано ниже: 1. Категория 1 Категория 2 1,1 1.1.1 cricket1 1.1.1.1 cricket2 1.2 другой категории 1.2.1 новый 1 2 . Категория 3 2.1 новая категория 3. Sazzad 3,1 Махмудом Как я могу достичь этой системы нумерации с использованием PHP ?? Заранее спасибо. 1 новая категория 3. Sazzad 3,1 Махмуд Как я могу достичь этой системы нумерации с использованием PHP ?? Заранее спасибо. 1 новая категория 3. Sazzad 3,1 Махмуд Как я могу достичь этой системы нумерации с использованием PHP ?? Заранее спасибо.
user3607351
1

голосов
1

ответ
346

Просмотры

Кластер UPGMA в R со значениями NoData

У меня есть матрица сайтов. Я хочу, чтобы разработать aglomerative кластер UPGMA. Я хочу использовать R и веганский библиотеку для этого. Моя матрица имеет узлы, в которых были измерены не все переменные. После аналогичной матрицы данных: Переменная 1; переменная 2; Переменный 3; Переменный 4; Переменный 5 0,5849774671338231; 0,7962161133598957; 0,3478909861199184; 0,8027122599553912; 0,5596553797833573 0,5904142034898171; 0,18185393432022612; 0,5503250366728479; Н.А.; +0,05657408486342197 0,2265148074206368; 0,6345513807275411; 0,8048128547418062; 0,3303602674038131; 0,8924461773052935 0,020429460126217602; 0,18850489885886157; +0,26412619465769416; 0,8020472793070729; Н.А. +0,006945970735023677; 0,8404983401121199; 0,058385134042814646; 0,5750066564897788; 0,737599672122899 0,9909722313946067; 0,22356808747617019; 0,7290078902086897; 0,5621006367587756; 0,3387823531518016 0,5932907022602052; 0.
Jaqo
1

голосов
1

ответ
1.4k

Просмотры

Кластеризация на основе корреляции Пирсона

У меня есть случай, когда использование у меня есть данные о трафике на каждые 15 минут в течение 1 месяца. Эти данные собираются для различных ресурсов в netwrok. Теперь мне нужно сгруппировать ресурсы, которые похожи (на основе трафика схемы использования в течение 00 часов до 23:45 часов). Один из способов проверить, если два ресурса имеет подобное поведение трафика является то, что я могу использовать коэффициент корреляции Пирсона для всех ресурсов и создать N * N матрицу. Мой вопрос в том, какой метод следует применять к кластеру подобных ресурсов? Существующие методы в К-Средства кластеризации основаны на евклидово расстояние. Какой алгоритм можно использовать для кластеризации на основе сходства рисунка? Любые мысли или ссылки на возможное решение можно только приветствовать. Я хочу осуществить с помощью Java.
Bankelaal
1

голосов
2

ответ
886

Просмотры

AgglomerativeClustering scikit узнать подключение

У меня есть матрица х = [[0,1,1,1,0,0,0,0], [1,0,1,1,0,0,0,0], [1,1,0, 1,0,0,0,0], [1,1,1,0,0,0,0,0], [0,0,0,0,0,1,1,1], [0, 0,0,0,1,0,1,1], [0,0,0,0,1,1,0,1], [0,0,0,0,1,1,1,0] ,] После вызова AgglomerativeClustering я ожидал данные, которые будут разделены на 2 кластеров (0-3) и (4-7), то есть этикетки _ = [0,0,0,0,1,1,1,1], но InstEd labels_ список [0, 0, 0, 1, 0, 0, 0, 1] Мой код выглядит следующим образом s = AgglomerativeClustering (аффинность = 'предварительно вычислены', n_clusters = 2, связь = 'полная) s.fit (х) содержит ли код какой-либо ошибки? Почему кластеризация не как ожидалось
tnn
1

голосов
1

ответ
365

Просмотры

Distance & cluster with dynamic time warping

I am using dtw to calculate distances between several series and getting strange results. Notice that in the sample data below the first 9 customers are identical sets (A==B==C, D==E==F, and G==H==I). The remaining rows are only for noise to allow me to make 8 clusters. I expect that the first sets would be clustered with their identical partners. This happens when I calculate distance on the original data, but when I scale the data before distance/clustering I get different results. The distances between identical rows in original data is 0.0 (as expected), but with scaled data the distances is not 0.0 (not even close). Any ideas why they are not the same? library(TSdist) library(dplyr) library(tidyr) mydata = as_data_frame(read.table(textConnection(" cust P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 1 A 1.1 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 2 B 1.1 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 3 C 1.1 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 4 D 0.0 1.0 2.0 1.0 0.0 1.0 2.0 1.0 0.0 1.0 5 E 0.0 1.0 2.0 1.0 0.0 1.0 2.0 1.0 0.0 1.0 6 F 0.0 1.0 2.0 1.0 0.0 1.0 2.0 1.0 0.0 1.0 7 G 2.0 1.5 1.0 0.5 0.0 0.5 1.0 1.5 2.0 1.5 8 H 2.0 1.5 1.0 0.5 0.0 0.5 1.0 1.5 2.0 1.5 9 I 2.0 1.5 1.0 0.5 0.0 0.5 1.0 1.5 2.0 1.5 10 D2 1.0 2.0 1.0 0.0 1.0 2.0 1.0 0.0 1.0 2.0 11 E2 5.0 6.0 5.0 4.0 5.0 6.0 5.0 4.0 5.0 6.0 12 F2 9.0 10.0 9.0 8.0 9.0 10.0 9.0 8.0 9.0 10.0 13 G2 1.5 1.0 0.5 0.0 0.5 1.0 1.5 2.0 1.5 1.0 14 H2 5.5 5.0 4.5 4.0 4.5 5.0 5.5 6.0 5.5 5.0 15 I2 9.5 9.0 8.5 8.0 8.5 9.0 9.5 10.0 9.5 9.0 16 A3 1.0 1.0 0.0 2.0 1.0 1.0 1.0 1.0 1.0 1.0 17 B3 5.0 5.0 5.0 5.0 5.0 3.0 8.0 5.0 5.0 5.0 18 C3 9.0 9.0 9.0 9.0 9.0 5.4 14.4 9.0 9.0 9.0 19 D3 0.0 1.0 2.0 1.0 0.0 1.0 1.0 2.0 0.0 1.0 20 E3 4.0 5.0 5.0 6.0 4.0 5.0 6.0 5.0 4.0 5.0 21 F3 8.0 9.0 10.0 9.0 9.0 9.0 9.0 9.0 8.0 9.0 22 G3 2.0 1.5 1.0 0.5 0.0 0.5 1.0 2.0 1.5 1.5 23 H3 6.0 5.5 5.0 4.5 4.0 5.0 4.5 5.5 6.0 5.5 24 I3 10.0 9.5 9.0 9.0 8.0 8.5 9.0 9.5 10.0 9.5 25 D4 0.0 3.0 6.0 3.0 0.0 3.0 6.0 3.0 0.0 5.0 26 E4 3.0 6.0 9.0 6.0 3.0 6.0 9.0 6.0 3.0 6.0 27 F4 4.0 6.0 10.0 7.0 5.0 6.0 11.0 8.0 5.0 7.0 28 D5 5.0 0.0 3.0 6.0 3.0 0.0 3.0 6.0 3.0 0.0 29 D6 9.0 6.0 3.0 6.0 9.0 6.0 3.0 6.0 9.0 6.0 30 D7 9.0 11.0 5.0 4.0 6.0 10.0 7.0 5.0 6.0 11.0 31 Dw 0.0 0.8 1.4 2.0 1.0 0.0 2.0 0.0 1.0 2.0 32 Ew 4.0 4.8 5.4 6.0 5.0 4.0 6.0 4.0 5.0 6.0 33 Fw 8.0 8.8 9.4 10.0 9.0 8.0 10.0 8.0 9.0 10.0 34 Gw 2.0 1.5 1.0 0.5 0.0 1.0 2.0 1.5 1.3 1.1 35 Hw 6.0 5.5 5.0 4.5 4.0 5.0 6.0 5.5 5.3 5.1 36 Iw 10.0 9.5 9.0 8.5 8.0 9.0 10.0 9.5 9.3 9.1"), header = TRUE, stringsAsFactors = FALSE)) k=8 # create a scale version of mydata (raw data - mean) / std dev mydata_long = mydata %>% mutate (mean = apply(mydata[,2:ncol(mydata)],1,mean,na.rm = T)) %>% mutate (sd = apply(mydata[,2:(ncol(mydata))],1,sd,na.rm = T))%>% gather (period,value,-cust,-mean,-sd) %>% mutate (sc = (value-mean)/sd) mydata_sc = mydata_long[,-c(2,3,5)] %>% spread(period,sc) # dtw dtw_dist = TSDatabaseDistances(mydata[2:ncol(mydata)], distance = "dtw",lag.max= 2) #distance dtw_clus = hclust(dtw_dist, method="ward.D2") # Cluster dtw_res = data.frame(cutree(dtw_clus, k)) # cut dendrogram into 9 clusters # dtw (w scaled data) dtw_sc_dist = TSDatabaseDistances(mydata_sc[2:ncol(mydata_sc)], distance = "dtw",lag.max= 2) #distance dtw_sc_clus = hclust(dtw_sc_dist, method="ward.D2") # Cluster dtw_sc_res = data.frame(cutree(dtw_sc_clus, k)) # cut dendrogram into 9 clusters results = cbind (dtw_res,dtw_sc_res) names(results) = c("dtw", "dtw_scaled") print(results) dtw dtw_scaled 1 1 1 2 1 2 3 1 1 4 1 2 5 1 1 6 1 2 7 1 3 8 1 4 9 1 3 10 1 3 11 2 3 12 3 4 13 1 5 14 2 6 15 3 3 16 1 4 17 2 3 18 4 3 19 1 6 20 2 3 21 3 4 22 1 3 23 2 3 24 3 6 25 5 7 26 6 8 27 7 7 28 5 7 29 6 7 30 8 8 31 1 7 32 2 7 33 3 7 34 1 8 35 2 7 36 3 7
Paul
1

голосов
1

ответ
618

Просмотры

Scipy dendrogram with names

I'm using the example dendrogram from this post in my work but would also like to keep track of which row / column is from which piece of data. I've edited the code with records of names of the data as names as follows and would like to print out the names at the bottom and to the right of the distance matrix visualization. I've tried adding labels = names in the call to dendrogram but this didn't help. Does anyone know how to add labels to this? import scipy import pylab import scipy.cluster.hierarchy as sch # Generate random features and distance matrix. x = scipy.rand(40) D = scipy.zeros([40,40]) for i in range(40): for j in range(40): D[i,j] = abs(x[i] - x[j]) ### new code names = [ ] for i in range(40): names.append( 'str%i'%( i ) ) print names[-1] ### end new code # Compute and plot first dendrogram. fig = pylab.figure(figsize=(8,8)) ax1 = fig.add_axes([0.09,0.1,0.2,0.6]) Y = sch.linkage(D, method='centroid') Z1 = sch.dendrogram(Y, orientation='right') ax1.set_xticks([]) ax1.set_yticks([]) # Compute and plot second dendrogram. ax2 = fig.add_axes([0.3,0.71,0.6,0.2]) Y = sch.linkage(D, method='single') Z2 = sch.dendrogram(Y) ax2.set_xticks([]) ax2.set_yticks([]) # Plot distance matrix. axmatrix = fig.add_axes([0.3,0.1,0.6,0.6]) idx1 = Z1['leaves'] idx2 = Z2['leaves'] D = D[idx1,:] D = D[:,idx2] im = axmatrix.matshow(D, aspect='auto', origin='lower', cmap=pylab.cm.YlGnBu) axmatrix.set_xticks([]) axmatrix.set_yticks([]) # Plot colorbar. #axcolor = fig.add_axes([0.91,0.1,0.02,0.6]) #pylab.colorbar(im, cax=axcolor) fig.show() fig.savefig('dendrogram.png')
drjrm3
1

голосов
2

ответ
130

Просмотры

Создать иерархический объект кластера

У меня есть п наблюдений, на которых я вычисленные м кластеризации. В кластеризациях я сгенерированные на самом деле иерархическая рознь, даже если они были вычислены независимо друг от друга. здесь является подмножеством моих данных: печать (тест) m_0 m_13000 m_14608 m_16278 1 1 10 101 1001 2 1 10 101 1 002 3 1 11 102 1003 4 1 11 102 1004 5 1 12 103 1005 6 1 12 104 1006 7 2 13 105 +1007 8 2 13 106 1008 9 2 13 106 1009 10 2 14 107 1010 .. ... ... ... ... Каждая строка = 1: п наблюдение, а каждый столбец J = 1: т является членство наблюдений на основе кластерной у. Идентификаторы кластера являются уникальными по различным решениям кластеризации, т.е. мин (тест [, J])> макс (тест [, J-1]). Наблюдения представлены в виде вершин, по igraph графика. Я хочу, чтобы включить тестовые данные выше в матрицу слияния, чтобы перейти к igraph :: make_clusters для дальнейших манипуляций. Что такое лучший способ сделать это? Я посмотрел на матрице объединения, созданной в этом примере, но я действительно не понимаю. Может кто-нибудь мне помочь?
mikeck
1

голосов
1

ответ
346

Просмотры

Сложность сравнения дендрограммы

У меня есть набор данных с 2 различными (1 внешне бежать, 1) сделали себе кластерные решения. Я хочу, чтобы сравнить их с помощью команды tanglegram и запутывания в пакете dendextend, однако я все имеющие ошибки относительно метки, и я не могу понять, почему. Чтобы проиллюстрировать это, я приготовил простой пример использования mtcars: DF1
user2498193
6

голосов
1

ответ
99

Просмотры

Дендрограмма ось у маркировки путаница

У меня есть большая (106x106) корреляционная матрица в панде со следующей структурой: + --- + ------------------- + --------- --------- + ------------------ + ------------------ + - ---------------- + ----------------- + --------------- --- + ------------------ + ------------------ + -------- ----------- + | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | + --- + ------------------- + ------------------ + ------ ------------ + ------------------ + ------------------ + ----------------- + ------------------ + ------------ ------ + ------------------ + ------------------- + | 0 | 1,0 | +0,465539925807 | +0,736955649673 | +0,733077703346 | -0,177380436347 | -0,268022641963 | +0,0642473239514 | -0,0136866435594 | -0,025596700815 | -0. 00385065532308 | | 1 | +0,465539925807 | 1,0 | -0,173472213691 | -0,16898620433 | -0,0460674481563 | +0,0994673318696 | +0,137137216943 | +0,061999118034 | +0,0944808695878 | +0,0229095105328 | | 2 | +0,736955649673 | -0,173472213691 | 1,0 | +0,996627003263 | -0,172683935315 | -0,33319698831 | -0,0562591684255 | -0,0306820050477 | -0,0657065745626 | -0,0457836647012 | | 3 | +0,733077703346 | -0,16898620433 | +0,996627003263 | 1,0 | -0,153606414649 | -0,321562257834 | -0,0465540370732 | -0,0224318843281 | -0,0586629098513 | -0,0417237678539 | | 4 | -0,177380436347 | -0,0460674481563 | -0,172683935315 | -0,153606414649 | 1,0 | +0,0148395123941 | +0,191615549534 | +0,289211355855 | +0,28799868259 | +0,291523969899 | | 5 | -0,268022641963 | +0,0994673318696 | -0. 33319698831 | -0,321562257834 | +0,0148395123941 | 1,0 | +0,205432455075 | +0,445668299971 | +0,454982398693 | +0,427323555674 | | 6 | +0,0642473239514 | +0,137137216943 | -0,0562591684255 | -0,0465540370732 | +0,191615549534 | +0,205432455075 | 1,0 | +0,674329392219 | +0,727261969241 | +0,67891326835 | | 7 | -0,0136866435594 | +0,061999118034 | -0,0306820050477 | -0,0224318843281 | +0,289211355855 | +0,445668299971 | +0,674329392219 | 1,0 | +0,980543049288 | +0,939548790275 | | 8 | -0,025596700815 | +0,0944808695878 | -0,0657065745626 | -0,0586629098513 | +0,28799868259 | +0,454982398693 | +0,727261969241 | +0,980543049288 | 1,0 | +0,930281915882 | | 9 | -0,00385065532308 | +0,0229095105328 | -0,0457836647012 | -0,0417237678539 | +0,291523969899 | 0. 427323555674 | +0,67891326835 | +0,939548790275 | +0,930281915882 | 1,0 | + --- + ------------------- + ------------------ + ------ ------------ + ------------------ + ------------------ + ----------------- + ------------------ + ------------ ------ + ------------------ + ------------------- + Усеченные здесь для простоты , Если я вычислить связь, а затем построить дендрограммы, используя следующий код: от scipy.cluster.hierarchy импорта дендрограммы, сцепления Z = сцепления (result_df.corr (), «средний») plt.figure () рис, оси = PLT .subplots (1, 1, figsize = (20, 20)) axes.tick_params (ось = 'и', что = 'основным', labelsize = 15) дендрограммы (Z = Z, метки = result_df_null_cols.columns, leaf_rotation = 90 ., ах = оси, color_threshold = 2) Это дает дендрограммы как:. Мой вопрос окружает ось ординат. На всех примерах, которые я видел, ось Y связана между 0,2 - которую я прочитал интерпретировать как (1-корр). В моем результате граница значительно выше. 0 означают элементы, которые имеют высокую корреляцию (1-1 = 0), и 2 будучи отсечкой на смиренном коррелировала материала (1 - -1 = 2). Я нашел следующий ответ, но он не согласен с этим ответом и на который ссылаются лекция отмечает здесь. Во всяком случае - надеюсь кто-то может выяснить, какой источник является правильным, и помочь распространить некоторые знания по данной теме.
jason m
1

голосов
1

ответ
331

Просмотры

Сходство Матрица / Иерархическая агломерационная кластеризация искра

Я пытаюсь реализовать метод кластеризации, основанный на пороге подобия. Идея заключается в том, чтобы определить порог для того, что считается сходным и получить различные кластеры. Данные у меня есть содержит 300 миллионов записей. Я имел взгляд на Apache искру для этого. Однако, через пару часов у меня больше вопросов, чем ответов: 1- Все методы kmeans (https://spark.apache.org/docs/2.2.0/mllib-clustering.html), реализованных в Спарк являются основным на сходство векторов делает трудно расширить для других типов объектов. В моем случае, у меня есть набор объектов, и я хотел бы распространить метод, который определил, как два независимых объекта подобны, таким же образом, мы Продолжим функцию сравнения в Java, чтобы сделать сравнение. Это возможно? Может кто-нибудь привести пример? Во всех примерах, которые я видел, являются основными на векторах или предложения, которые преобразуются в векторы с использованием Word2Vector. 2- Все методы кластеризации в Спарк вам нужно знать число кластеров K заранее. Кто-нибудь знает реализацию Иерархическая кластеризация, который работает в Спарк. С наилучшими пожеланиями и спасибо заранее. BTW: у меня есть проверить, что многие люди заинтересованы в этой теме в StackOverflow, но никто не произвел полный ответ.
ypriverol
1

голосов
1

ответ
410

Просмотры

R - Автоматическое оптимальное число кластеров последовательности Алгоритм

Я заинтересован в нахождении функции для автоматического определения оптимального числа кластеров в R. Я использую алгоритм последовательности из пакета Траминера, чтобы вычислить мои расстояния. библиотека (Траминер) данные (biofam) biofam.seq
giacomo
1

голосов
1

ответ
181

Просмотры

Как использовать Flann для маркировки и кластеризации?

Я прочитал статью, что их поисковая система основана на SIFT дескрипторе и быстрые приближенные к-средства кластеризации. Я установил pyflann. Если я не ошибаюсь, следующие команды только найти индексы близких точек данных для конкретного образца (например, здесь, индексы 5 ближайших точек из набора данных testset) из pyflann импорта * из Numpy импорта * от импорта numpy.random * набор данных = Rand (10000, 128) testset = Rand (1000, 128) Flann = Flann () результат, dists = flann.nn (набор данных, testset, 5, алгоритм = "kmeans", разветвленности = 32, итерации = 7, чеки = 16) я пошел через руководство пользователя, однако, может найти, как я могу сделать, к-значит кластерин с Flann. и как я могу соответствовать тест, основанный на кластерных центров. Как мы можем использовать kmeans ++ clustering` в scikitlearn, а затем мы приспосабливают набор данных на основе модели: kmeans = KMeans (n_clusters = 100, INIT = «к-средства ++», random_state = 0, многословен = 0) kmeans.fit (набор данных), а затем мы можем присвоить метки к тесту, используя KDTree, например. КДТ = KDTree (kmeans.cluster_centers_) Q = testset #query kdt_dist, kdt_idx = kdt.query (Q, к = 1) #knn test_labels = kdt_idx # КННЫ = 1 этикетка Может кто-то пожалуйста, помогите мне, как я могу использовать ту же самую процедуру с Flann? (Я имею в виду кластеризации набора данных (нахождение кластерных центров и квантование функции), а затем квантование testset на основе кластерных центров, найденных на предыдущем шаге). к = 1) #knn test_labels = kdt_idx # КННЫ = 1 этикетка Может кто-то пожалуйста, помогите мне, как я могу использовать ту же самую процедуру с Flann? (Я имею в виду кластеризации набора данных (нахождение кластерных центров и квантование функции), а затем квантование testset на основе кластерных центров, найденных на предыдущем шаге). к = 1) #knn test_labels = kdt_idx # КННЫ = 1 этикетка Может кто-то пожалуйста, помогите мне, как я могу использовать ту же самую процедуру с Flann? (Я имею в виду кластеризации набора данных (нахождение кластерных центров и квантование функции), а затем квантование testset на основе кластерных центров, найденных на предыдущем шаге).
S.EB
1

голосов
1

ответ
309

Просмотры

Выбор кластеров ниже определенной высоты в дендрограммой R, но только если кластер больше, чем один

Я ищу, чтобы написать простой код, который будет выбрать для определенных кластеров ниже пороговой высоты и выделить их (либо с коробкой или по цвету). До сих пор я использовал cutree, который выбирает кластеры я после, но он также выбирает все кластеры размера 1. Я сумел использовать для выбора кластеров я на самом деле хочу, но это лишь очень небольшая часть данных у меня есть, я не хочу, чтобы пройти вручную выбрать их. Есть ли способ, что я могу срубить дерево, но выбрать только кластеры больше, чем один? Это код, я использую в данный момент: участок (hClust, повесьте = -1, CEX = 0,5) abline (ч = 0,0018, цв = «синий») карат
Kate Bamford
1

голосов
1

ответ
75

Просмотры

Уникальный принцип Жаккара коэффициента

Привет У меня есть набор данных, которые могут быть смоделированы с использованием: set.seed (123) v1
akash87
1

голосов
1

ответ
369

Просмотры

ошибка памяти во время иерархической кластеризации Python 3.6

У меня есть довольно большой набор данных (1841000 * 32 матрицы) Я хочу, чтобы запустить иерархический алгоритм кластеризации на. Оба класса AgglomerativeClustering и класс FeatureAgglomeration в sklearn.cluster дают ошибку ниже. -------------------------------------------------- ------------------------- MemoryError Traceback (самый последний вызов последнего) в () 1 2 ----> 3 mat_red = manifold.SpectralEmbedding ( n_components = 2) .fit_transform (мат) 4 clustering.fit (mat_red, у = отсутствует) ~ / anaconda3 / Библиотека / python3.6 / сайт-пакеты / sklearn / коллектор / spectral_embedding_.py в fit_transform (я, х, у) 525 X_new: массив типа, форма (n_samples, n_components) 526 ""»-> 527 self.fit (X) 528 возвращение self.embedding_ ~ / anaconda3 / Библиотека / python3. 188 а = пусто (форма, DTYPE, заказ) 189 multiarray.copyto (а, 1, литье = «небезопасный») 190 возвращает MemoryError: Моя оперативная память 8GB и произошла та же ошибка, когда я запустил его на системе 64 Гб. Я понимаю, что Иерархическая кластеризация вычислительно дорого, и не рекомендуется для больших наборов данных, но мне нужно, чтобы создать дендрограммы всех моих данных на один раз. Я создаю словарное дерево из пакетика визуальных слов с использованием функции ORB. Если есть какой-либо другой способ достижения этой цели или способ исправить ошибку, пожалуйста, загореться! Спасибо. но мне нужно, чтобы создать дендрограммы всех моих данных на один раз. Я создаю словарное дерево из пакетика визуальных слов с использованием функции ORB. Если есть какой-либо другой способ достижения этой цели или способ исправить ошибку, пожалуйста, загореться! Спасибо. но мне нужно, чтобы создать дендрограммы всех моих данных на один раз. Я создаю словарное дерево из пакетика визуальных слов с использованием функции ORB. Если есть какой-либо другой способ достижения этой цели или способ исправить ошибку, пожалуйста, загореться! Спасибо.
Deepti Hegde
1

голосов
1

ответ
70

Просмотры

Неопределенность в Кластеризация

Я подаю иерархическую кластеризацию на мой набор данных, который включает в себя 30 исследований. Пример моего набора данных: Х0 X1 X2 X3 X4 X5 X6 X7 X8 X9, Х10 Х11 Х12 Х13 Х14 1 2 2 7 7 0 0 0 0 0 0 0 0 0 0 0 2 0 5 37 27 5 1 2 2 2 2 1 1 1 0 0:: 30 0 0 3 1 2 5 7 0 0 0 0 0 0 0 0 Я использовал следующий код, чтобы применить самозагрузки версию выборки теста Колмогорова-sminrov для расчета расстояния матрицы D и применяется ' комплектно-связь»алгоритм. п
Ali
1

голосов
1

ответ
22

Просмотры

Кластеризация IP-адреса на доменные имена

У меня есть IP-сеть, которая в основном список последовательных IP-адреса. Из этого списка я хочу сгруппировать диапазоны IP-адресов в независимые сущности. Я хочу, чтобы дать каждому IP в диапазоне набор свойств, таких как время, чтобы жить, имен серверов и доменных имен, связанных с ним. Затем я хочу, чтобы определить расстояние между каждым IP-адресом и его соседями и начать кластеризацию на основе кратчайшего расстояния. Мой вопрос заключается в функции расстояния. TTL является числом, так что не должно быть проблемой. Сервера имен и доменные имена являются строки, однако, как бы вы представить их как числа в векторе? В принципе, если 2 IP-адреса имеют один и тот же сервер имен или очень похожие доменные имена (равно 2LD) Вы хотите, чтобы они имели меньшее расстояние. Я смотрел на то, как word2vec, но не могу найти полезную реализацию.
mBo
1

голосов
1

ответ
0

Просмотры

связывая корень иерархических кластеров с их Чайлдс в MATLAB

Я использую иерархический алгоритм кластеризации для кластеризации моего набора данных с разным числом кластеров. Так, например, а = [1; 2; 3; 4; 5; 20; 21; 22; 28; 29] Z = сцепления (а, 'Ward') [clusterIndexes] = кластер (Z, 'maxclust', 2) это кластеры данных фрагментов пользовательского на два на то, где первый кластер имеет 1,2,3,4,5. Назовем этот кластер A, а второй держит 20,21,22,28,29, который является кластер B. Когда я выполнить следующий сценарий и кластерных данных в 3 а = [1, 2, 3, 4, 5; 20; 21; 22; 28; 29] Z = сцепления (а, 'Ward') [clusterIndexes] = кластер (Z, 'maxclust', 3) Это дает мне кластеры (1 2 3 4 5) = кластера X, (20 , 21,22) = кластера Y, (28,29) = кластер З. Как можно продемонстрировать, что программно кластера B разбивается на кластерной Y и Z Cluster? Извините за наивный вопрос я новичок в MATLAB.
user3079364
1

голосов
1

ответ
0

Просмотры

Сиборн изменения clustermap опция визуализация без переделывания кластеризации

Можно ли запустить seaborn.clustermap предварительно полученного объекта ClusterGrid? Например пользователя Я clustermap получить г в следующем примере: импорт Сиборн в качестве данных нс = sns.load_dataset ( «ирис») видовой = iris.pop ( «вид») г = sns.clustermap (данные, CMAP = «мако» , col_cluster = False, yticklabels = False, figsize = (5, 10), метод = «подопечные», метрика = «евклидовое») Я хотел бы попробовать различные варианты визуализации как различные цветовые карты, размеры фигуры, как она выглядит и без этикетки и т.д. с радужкой набор данных все происходит очень быстро, но у меня есть способ большего набор данных и кластеризация часть занимает много времени. Могу ли я использовать г, чтобы показать Heatmap и дендрограммы, используя различные варианты?
lucacerone
1

голосов
1

ответ
0

Просмотры

Simple coloring of Scipy dendrograms

I am trying to create a monochrome (eg., black on white) dendrogram using Scipy. After the Scipy documentation, I have been playing with the set_link_color_pallete function, but kept getting just one of the groups in black, while the remaining of the dendrogram is in blue (see the figure below). Here is my test code: import numpy as np import matplotlib.pyplot as plt from scipy.cluster import hierarchy ytdist = np.array([662., 877., 255., 412., 996., 295., 468., 268., 400., 754., 564., 138., 219., 869., 669.]) Z = hierarchy.linkage(ytdist, 'single') hierarchy.set_link_color_palette(['k', 'k', 'k', 'k', 'k']) dn = hierarchy.dendrogram(Z) plt.show() Here is a question that should address this problem, but I could not understand it very clearly. Any hints or suggestions?
maurobio
1

голосов
1

ответ
0

Просмотры

R rect.hclust: прямоугольники слишком высоко в dendogram

Я задал несколько различных экспертов для сортировки 92 объектов на основе их сходства. На основе их ответов, я построил несходство матрицу 92 х 92. в R, я исследовал эту матрицу с помощью следующих команд: CLUSTER1
DomB
1

голосов
2

ответ
772

Просмотры

Clustering data after linkage algorithm

I am not an expert in statistics and data analysis, hence I can't understand if the behavior which I obtain is correct or not. I am here looking for your help. Assume I have these samples which I would like to cluster (10 points in the plane - reduced version of the problem): [X Y] = 266 450 266 400 258 168 290 442 295 438 273 432 294 158 318 161 250 423 253 413 To cluster them I can use a cluster tree Z = linkage([ X Y ],'complete'); which is (by dendrogram(Z,10)) Now I would like to extract clusters on the basis of the distance attached to the nodes of the tree. Say that my distance is 150, I would expect that the call T = cluster(Z,'Cutoff',150); returns me 2 clusters. But it gives me just one (I suppose), i.e. T = 1 1 1 1 1 1 1 1 1 1 What am I missing?
Acorbe
1

голосов
1

ответ
406

Просмотры

Использование Елки на пользовательских объектах и ​​осмысление результатов

Я пытаюсь использовать реализацию Slink Елки в иерархической кластеризации в моей программе. У меня есть набор объектов (моего собственного типа), которые должны быть сгруппированы. Для этого я преобразовать их, чтобы показать векторы перед кластеризация. Это, как я в настоящее время получил его для запуска и получения некоторого результата (код в Scala): VAL кластеризатор = новый красться (CosineDistanceFunction.STATIC, 3) вал соединение = новый ArrayAdapterDatabaseConnection (featureVectors) Вал базы данных = новый StaticArrayDatabase (соединение, нуль) database.initialize () Вэл результат = clusterer.run (база данных) .asInstanceOf [кластеризация [_
notan3xit
1

голосов
2

ответ
3.1k

Просмотры

Как использовать кластеризацию с OpenCV C ++ классифицировать подключенный компонент на основе площади и высоты

Привет, с OpenCV C ++, что я хочу сделать кластеризацию классифицировать подсоединенные компоненты, основанные на площади и высоте. Я понимаю понятие кластеризации, но у меня есть трудное время, чтобы реализовать его в OpenCV C ++. В OpenCV http://docs.opencv.org/modules/core/doc/clustering.html Существует кластеризация Методы kmeans Большинство веб-сайта я искал, они просто объяснить понятие и параметры функции kmeans в OpenCV C ++ и большинство из них были скопированы с сайта OpenCV документа. двойные kmeans (данные InputArray, Int K, InputOutputArray bestLabels, критерии TermCriteria, внутр потуги, Int флаги, OutputArray центры = noArray ()) Существует также хороший пример здесь, но он был реализован в Python http://docs.opencv.org/ ствол / док / py_tutorials / py_ml / py_kmeans / py_kmeans_opencv / py_kmeans_opencv.html? выделить = kmeans Как я уже упоминал выше, У меня есть все компоненты связности, и я могу вычислять площади и высоты каждого соединения компонентов. Я хочу использовать кластеризацию различать компоненты связности. Так, например, с помощью методов, к-означает, что я использовал бы к = 2. Поблагодарить..
sayvortana
1

голосов
1

ответ
417

Просмотры

Оценка иерархической кластеризации с использованием пары подсчета п-мера

Ситуация выглядит следующим образом: У меня есть набор данных документов, которые я вручную присвоенные (земля) кластер на основе их предмет. Я тогда использовал Иерархическую агломерационную кластеризацию (HAC) автоматически группироваться тем же набором данных. Я сейчас пытаюсь оценить кластеры HAC с использованием парой подсчета ф-меры (как описано в характеристике и оценка мер подобия для пар кластеризаций Дария Pfitzner, Ричард Leibbrandt и Дэвид Пауэрс). Проблема я столкнулся, однако, что мое руководство кластеризации производства плоских кластеров (так не имеет никакого отношения между кластерами, что так когда-либо), в то время как кластеры, найденные по HAC являются иерархическими. Таким образом, если смотреть на дендрограмме, на основе глубины (горизонтальная линия), который вы выбрали у Вас есть разное количество кластеров (на глубине 0 (корневой узел) у Вас есть только 1 кластер; на глубине MAX, ваше число кластеров равно числу элементов в наборе данных). Итак, мои вопросы сейчас: мне нужно выбрать глубину (так что у меня есть фиксированный набор кластеров), для того, чтобы использовать пару подсчета диафрагменное меру ли (или я что-то не хватает?). Если да, то какие критерии необходимо использовать для определения этой глубины?
Niels
1

голосов
1

ответ
1.4k

Просмотры

Иерархическая кластеризация Дендрограмма с помощью питона

Теория графов и интеллектуальный анализ данных являются две областями информатики Я еще новичок в, так что простит мое основное понимание. Меня попросили, чтобы построить дендрограмму иерархически кластерном графа. Вход я был дан следующий: список всех ребер этого графа. До сих пор я был в состоянии нарисовать график от входа. Следующий шаг будет кластеризация графика, то построение дендрограммы из этого кластерного графа. Мой вопрос: Может ли кто-нибудь дать мне шаг за шагом руководство, чтобы следовать? что требуется вход / выход / возвращается во время обоих этапов процесса. (Кластеризация, получение дендрограммы) Примечание: До сих пор я использовал граф-инструмент для рисования графиков, я также провел тестовый код, который я нашел в Интернете из пакета Scipy.clustering.hierarchy, и, кажется, есть все необходимые функции.
MrNoober
1

голосов
2

ответ
607

Просмотры

Соотношение между дендрограмма участка и координаты ClusterNodes в SciPy

Я ищу способ, чтобы получить координаты точки кластера в дендрограммах участка на основании его CLUSTERNODE возвращения to_tree. Использование SciPy построить dendogram из данных, таких как: X = данных Y = pdist (X) Z = связь (Y) dend = дендрограммы (Z) RootNode, nodesList = to_tree (Z, м = True) То, что я хотел бы сделать это построить функцию get_coords (somClusterNode), который будет возвращать кортеж (х, у), определяющее положение узла в сюжете. Благодаря этому ответу, мне удалось выяснить, как получить позицию из возвращаемых значений дендрограммы, таких как: I, D = список (почтовый индекс (dend [ 'icoord'], dend [ 'dcoord'])) [- 1 ] х = 0,5 * сумма (я [1: 3]) у = D [1] plt.plot (х, у, 'ро') Но я могу выяснить соотношение между упорядочением nodesList и icoord / dcoord упорядочения в заказать карту друг к другу. Есть ли у вас какие-либо идеи, где я мог бы искать? Спасибо за вашу помощь !
mazieres
1

голосов
1

ответ
729

Просмотры

Как сделать график кластерные булевых переменных в R?

У меня есть набор данных, который целиком состоит из логических переменных. Точно так же как преобразованный животное набор данных ниже, только с большим количеством более столбцов. # Http://stats.stackexchange.com/questions/27323/cluster-analysis-of-boolean-vectors-in-r библиотека (кластер) голова (Mona (животные) [[1]]) война лететь версию конца GRO хай муравей 0 0 0 0 1 0 пчелиный 0 1 0 0 1 1 кошка 1 0 1 0 0 1 компл 0 0 0 0 0 1 чи 1 0 1 1 1 1 коровы 1 0 1 0 1 1 цель состоит в том, чтобы изменить строки в таким образом, что группировки подобных моделей членства легче идентифицировать визуально. Я полагал, что какой-то алгоритм кластеризации, вероятно, будет путь, но я не уверен, какие функции использовать или, как идти об этом точно. В таблице, в идеале быть рентгенографический как вид шахматной доски.
Henry E
1

голосов
1

ответ
200

Просмотры

Range of possible values for alpha, gamma and eta params of HLDA's Mallet implementation

Я пытаюсь запустить HLDA algorytmm и производить описательную иерархию входных документов. Проблема в том, я бег различных параметров конфиги и пытаясь понять, как он работает в «эмпирическом пути», потому что я не могу соответствовать тем, которые используются в оригинальных работах (я понимаю, что это другая команда). Например, альфа в Малле, кажется, ет в газете, но я не очень уверен. Кроме того, я не могу знать границы для каждого из них. То есть, диапазон возможных значений для каждого параметра. В исходном коде, есть некоторая помощь: двойной альфа; // сглаживание на тему распределении двойной гаммы; // «мнимые» клиенты на следующую двойную эта-; // сглаживание распределений слов. Во-первых, я использовал значения по умолчанию: альфа = 10,0; гамма = 1,0; ETA = 0,1; Затем, Я судимый запустить Algorythm, изменяя значения и интерпретацию результатов, но я не могу понять смысл их. Например, я думаю, что изменение гаммы (в Маллет) оказывает влияние на клиентов decition: чтобы начать новый узел в дереве или быть помещены в существующий. Итак, если я изложу гамма = 0,5, меньше узлы должны быть произведены, потому что 0,5 это половина вероятности установленного по умолчанию, не так ли? Но результаты с гамма = 1 дают мне 87 узлов, и с гамма = 0,5, она возвращает 98! А потом, я прошу меня что-то новое: это то, что вероятность? Я пытался найти диапазон возможных значений в этих двух работах, но я не нашел их: Иерархическая тему Модель сюжету Уплотненного Китайского ресторан Процесс Процесс Уплотненного Китайского ресторана и BayesianNonparametric Умозаключение Тематических иерархий Я знаю, что может быть что-то не хватаю, потому что я не имею хороший фон на это, но именно поэтому я и спрашиваю здесь, может быть, кто-то уже имел эту проблему и может помочь мне понять эти пределы. Заранее спасибо!
gal007
1

голосов
1

ответ
549

Просмотры

Why does hclust gives a different cluster than pvclust in r?

Я пытаюсь получить значения р для иерархического кластерного анализа на следующий dataset.The Дендрограммы порождены pvclust и hclust полностью different.Because pvclust отметил, что они использовали тот же метод, как hclust, он должен быть одинаковым. требует (веганский) Тест S1, S2, S3, S4, S5, S6, S7-S8, S9, S10, 1 1 1 1 1 1 1 0 1 1 0 2 0 0 1 0 0 0 0 0 0 0 3 1 0 0 1 1 0 0 0 1 1 4 1 0 1 0 1 1 0 1 0 1 5 0 1 0 1 0 0 0 0 1 0 6 1 0 1 0 1 1 0 0 0 1 7 1 1 0 1 0 0 1 0 1 0 8 1 1 0 1 0 1 1 0 1 0 9 0 1 1 0 1 1 0 1 0 0 div.norm = decostand (тест, "нормализации") div.ch = vegdist (div.norm, "Bray") div.ch.UPGMA = hclust (DIV. ч, метод = «средний») участок (div.ch.UPGMA) Это порождает следующие дендрограммы: Кластер с помощью hclust Затем я попытался запустить один и тот же набор данных, используя pvclust. требуется (pvclust) test.tr = т (тест) результат = pvclust (test.tr, method.dist = "кор", method.hclust = "средний", nboot = 1000) участок (результат) я получаю следующее дендрограммы который отличается от той, порожденной hclust. кластер с использованием pvclust Некоторые предположили, что я не должен перенести данные. Но это производит дендрограммы, где столбцы кластерные (я не хочу этого). Любая помощь будет принята с благодарностью! Но это производит дендрограммы, где столбцы кластерные (я не хочу этого). Любая помощь будет принята с благодарностью! Но это производит дендрограммы, где столбцы кластерные (я не хочу этого). Любая помощь будет принята с благодарностью!
user127213
1

голосов
1

ответ
995

Просмотры

как найти кластеры с сетью на основе плотности и веса ребер в питоне - NetworkX пакет

Я построил сеть с помощью питона пакет - NetworkX, каждое ребро имеет вес, который указывает, насколько близко два узла, с точки зрения корреляции. Было бы идеально, если есть встроенный алгоритм, который будет возвращать кластерный график, назначая каждый узел это кластер ID (1 к). Было бы еще лучше, если бы он мог кластер на основе веса ребер, но не критично ... Любая идея, как это можно сделать?
Rob
1

голосов
2

ответ
144

Просмотры

Учитывая список слов, как разработать алгоритмический способ семантически сгруппировать их?

Я работаю с API Google Адресов, и они содержат перечень 97 различных мест. Я хочу, чтобы сократить список мест, в меньшее количество из них, так как многие из них являются групповыми. Например, банкомат и банк в финансовый; храм, церковь, мечеть, синагога в богослужение; школа, университет в области образования; subway_station, train_station, transit_station, gas_station в транспортировке. Но кроме того, он не должен overgeneralize; например, pet_store, city_hall, здание суда, ресторан в нечто вроде зданий. Я попробовал немало способов сделать это. Сначала я скачал синонимы каждого из 97 слов в списке из нескольких словарей. Потом я узнал, сходство между 2-х словами, основываясь на том, что доля уникальных синонимов они имеют в общей (Жаккаре схожести): Но после этого, как я группа слов в кластеры? При использовании традиционных методов кластеризации (K-средства, к-медоид, иерархическая кластеризация, и ТСМ), я не получаю хорошую кластеризацию (я определил несколько Ошибочного путем сканирования результатов вручную): Я даже попробовал word2vec модель, обученную на данных новости Google (где каждое слово выражается как вектор 300 функций), и я не получаю хорошие кластеры, основанные на том, что, а также:
Kristada673

Просмотр дополнительных вопросов

Связанные вопросы