Я использую набор инструментов Matlab для самоорганизующихся карт, а именно newsom
и родственное семейство функций. Я применяю кластер SOM к большому набору документов, и я использовал plotsomhits(net, features)
для визуализации того, сколько шаблонов/документов назначено каждому нейрону. Однако я не могу найти никаких функций в панели инструментов, которые извлекают эти образы в структуре данных, а не просто визуализируют их.Поиск находок нейронов на самоорганизующейся карте программно
Теперь я знаю, что я могу найти сЗппы себя, выбирая нейрон, который максимизирует отрицательное расстояние метрики для каждого шаблона в простом for
цикле:
nweights = net.IW{1}; % retrieve weights
mx = -Inf; winner = 1;
for i = 1:length(nweights)
distance = negdist(nweights(i, :), pattern);
if distance > mx % update index of winner
mx = distance;
winner = i;
end
end
Однако это кажется очень странным, что там недоступна в панели инструментов SOM, поскольку функция визуализации таких результатов существует.
Кто-нибудь знает об этом? Кроме того, существует ли более быстрый способ найти нейрон для каждого шаблона «назначен», чем тот, который я описываю выше?
Каковы типичные размеры различных переменных? Любые минимальные данные выборки для работы? – Divakar
Технические характеристики 8296x1, и у меня есть набор из 500 документов (== 500 функций). Размер ЗВОЛ составляет 10x10. – VHarisop
'negdist', похоже, использует какие-то вычисления расстояния. На этом я мог бы предложить методы, основанные на матричном умножении, см. [Здесь] (http://stackoverflow.com/a/23911671/3293881) и [здесь] (http://stackoverflow.com/a/26994722/3293881) , – Divakar