Как мы можем поместить начальные центроиды в функцию FCM ( Matlab)
Я использую функцию fcm в Matlab для кластеризации. Однако начальные центроиды устанавливаются случайным образом. Мне нужно самостоятельно установить начальные значения центроидов. Я думаю, чтобы изменить функцию stepfcm в Matlab. Может кто-нибудь сказать мне, как я могу поставить начальные центроиды самостоятельно?
1 ответ
Я сделал edit('fcm.m')
,
В строке 84 (я использую MATLAB R2016b) у вас есть:
U = initfcm(cluster_n, data_n); % Initial fuzzy partition
Это инициализация кластеров центроидов.
Если вы замените его своим, вы получите то, что хотите.
Как?
В командной строке MATLAB запустите команду edit('fcm.m')
,
Сохраните копию с именем FcmInit
,
Изменить сигнатуру функции с [center, U, obj_fcn] = fcm(data, cluster_n, options)
к [center, obj_fcn] = FcmInit(data, cluster_n, U, options)
,
Удалить строку U = initfcm(cluster_n, data_n);
поэтому он не будет перезаписывать ввод.