Я работаю над выполнением HDBSCAN и выполняю анализ с использованием модуля Python hdbscan
в R. У меня есть следующий код:
library(reticulate)
hdb <- import("hdbscan") # Import hdbscan Python library
# Create dummy data. My actual data set is an already cleaned data frame.
dat <- data.frame(id=1:100, a = rbinom(100, 1, .4), b = rbinom(100, 1, .8), c = rbinom(100, 1, .6), d = rbinom(100, 1, .2))
datMat <- as.matrix(dat) # Convert to matrix so it correctly converts to a 2d array
clusterer = hdb$HDBSCAN(metric='jaccard') # Start clusterer with Jaccard distance metric
clusterer$fit(datMat) # Fit the data
Далее я хочу взглянуть научасток уплотненного дерева.Код Python для этого будет:
clusterer.condensed_tree_.plot()
Переводится в R:
clusterer$condensed_tree_$plot()
Вывод этой команды:
AxesSubplot (0.125,0.11; 0.31744x0.77)
Я могу поместить все это в файл RMarkdown, используя сырой python, и получу нужный мне график.Однако это работает только при вязании всего файла, что может занять некоторое время.Тем более, что в настоящее время я рассматриваю различные настройки параметров HDBSCAN, было бы замечательно, если бы существовал способ построения сжатого дерева (и других диагностических диаграмм) без необходимости связывать весь файл RMarkdown.
Кто-нибудь знает, если / как я могу построить сгенерированный Python график в R без использования RMarkdown?
Пример файла RMarkdown:
\```{r}
dat <- data.frame(id=1:100, a = rbinom(100, 1, .4), b = rbinom(100, 1, .8), c = rbinom(100, 1, .6), d = rbinom(100, 1, .2))
datMat <- as.matrix(dat)
\```
\```{python}
import hdbscan
clusterer = hdbscan.HDBSCAN(metric='jaccard') # Start clusterer with Jaccard distance metric
clusterer.fit(r.datMat) # Fit the data
clusterer.condensed_tree_.plot()
\```