4

Я пытался использовать функцию nbclust и получил ошибку: «Ошибка в t (jeu)% *% jeu: требуется числовая/сложная матрица/векторные аргументы» вот как Я бегу функции:nbclust не работает без матрицы данных

NbClust(input_data, diss = dissimilarity_matrix, 
         distance = NULL, 
         min.nc=2, max.nc=5, method = "ward.D2", 
         index = "all") 

ошибка, вероятно, потому, что мои данные не является числовым значением, а матрица несходство есть. все другие алгоритмы кластеризации не требуют матрицы данных, есть ли способ использовать функцию без данных?

+0

Вы можете сделать as.matrix (input_data) , чтобы сделать данные в виде матрицы –

+0

проблема не в том, что input_data не является матрицей, потому что сами данные не являются числовыми ... –

ответ

0

Некоторые из индексов требуют Числовые данные.

Следовательно, пакет не может использоваться в вашем наборе данных, если вы не отключите эти методы/индексы.

0

Просто взглянув на документацию NbClust, можно сделать только с матрицей несходства, исключающей исходный источник данных.

NbClust (данные = NULL, дисс = XYZ, расстояние = NULL ... и т.д.

Как подается матрица (здесь упоминается как XYZ, в отличие от вашей "дисс = dissimilarity_matrix"), данные и расстояние должен быть установлен в NULL. Это указано в функции Usage. Так что, пока ваш дисс будет таким, каким он должен быть, числовое значение, определяющее «data = NULL», может решить вашу проблему.

+0

поскольку вы предоставляете числовые значения матрицы diss (матрица различий) и задаете данные (в вашем случае не численные) как null, в соответствии с подробной функцией, вы должны иметь возможность извлекать индексы NbClust. –