Как мне найти параметры, используемые в kmeans для создания кластеров? - PullRequest
1 голос
/ 14 марта 2011

Из предыдущего вопроса в R-списке я видел два подхода к проверке пакетов, загруженных в:

ls("package:ts") 
lsf.str("package:ts")

В моем случае я хочу исследовать, чтовывод kmeans is, который является функцией в пакете stats, поэтому я использовал:

lsf.str("package:stats")

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

Ответы [ 2 ]

3 голосов
/ 14 марта 2011

В разделе Значение справочной страницы kmeans указан формат объекта, возвращаемого функцией:

Объект класса "kmeans", который имеетметод print и список с компонентами:

cluster: вектор целых чисел (от '1: k'), обозначающий кластер, которому назначена каждая точка.

центров:Матрица центров кластеров.

insidess: сумма квадратов внутри кластера для каждого кластера.

totss: общая сумма квадратов внутри кластера.

tot.insidess: общая сумма квадратов внутри кластера, т. е. 'sum (insidess)'.

weenss: сумма квадратов между кластерами.

size: количество точек в каждом кластере.

В общем случае вы также можете перечислить эти значения непосредственно из вашего kmeans объекта с помощью функции names:

R> names(km)
[1] "cluster"      "centers"      "totss"        "withinss"    
[5] "tot.withinss" "betweenss"    "size"      

Из описания значений в справкестранице, я бы сказал, что параметры, используемые для кластеризации, не сохраняются в результирующемобъект.Так что если у вас есть доступ только к результирующему объекту kmeans, а не к исходному вызову функции, я бы сказал, что эти параметры, к сожалению, потеряны ...

1 голос
/ 14 марта 2011

Если вы введете kmeans, вы получите исходный код метода, доступный в pastebin на http://pastebin.com/6VnnhU7J.Я не уверен, что вы имеете в виду о параметрах, поскольку они передаются в качестве аргументов (x, центров, iter.max = 10, nstart = 1, алгоритма = c ("Хартиган-Вонг", "Ллойд", "Подделка"), "MacQueen") и у вас есть легкий доступ к ним (с чем вы изначально называли kmeans?)

...