Nano Hash - криптовалюты, майнинг, программирование

Как передать параметр функции карты во время вызова функции mapreduce?

У меня есть функция mapreduce, вывод которой должен быть передан другой функции mapreduce, код выглядит следующим образом

function clustering = parallel_clustering_kmeans(data)
%% find first clustering from all chunks
result = mapreduce(data,@k_means_Mapper,@k_means_Reducer);
result = readall(result);
index = result{:,1};
index = cell2mat(cellfun(@str2num,strrep(index,',',' '),'un',0));
clustering = mapreduce(data,@k_means_Mapper_second,@k_means_Reducer);
end

Первая функция работает хорошо result = mapreduce(data,@k_means_Mapper,@k_means_Reducer); однако я хочу передать индекс в качестве параметра для k_means_Mapper_second

Код должен быть следующим

function k_means_Mapper_second(data,index,intermidiateValuesOut)
distance = zeros(size(data,1),size(index,1));
parfor i = 1:size(data,1)
    for j = 1:size(index,1)
        distance(i,j) =  sum((data(i,:)-index(j,:)).^2).^0.5;
    end
end
for i = 1:size(distance,1)
    x = distance(i,:);
    [~,ind] = min(x);
    key = combine_values(data(i,:));
    addmulti(intermidiateValuesOut,key,ind);
end
end

Мой вопрос: как я могу передать индекс в качестве параметра функции k_means_Mapper_second в последней строке

clustering = mapreduce(data,@k_means_Mapper_second,@k_means_Reducer);

заранее спасибо

30.04.2016


Ответы:


1

Вам нужно обернуть вашу функцию в анонимную функцию, которая принимает все входные данные, переданные ей mapreduce, но затем вызывает вашу функцию, передавая только соответствующие значения. Для вашего случая это будет выглядеть примерно так:

mapperFunc = @(data, info, interim)k_means_Mapper_second(data, index, interim);
clustering = mapreduce(data, mapperFunc, @k_means_Reducer);
30.04.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..