Кластеризация k-medoids
выполняет кластеризацию k-medoids для разбиения наблюдений матрицы n-by-p idx = kmedoids(X,k)X в k кластеры и возвращает вектор n-by-1 idx содержит кластерные индексы каждого наблюдения. Ряды X соответствуют точкам и столбцам соответствуют переменным. По умолчанию kmedoids использует квадратную метрику евклидова расстояния и алгоритм k-means + + для выбора начальных положений медоида кластера.
использует дополнительные параметры, указанные одним или несколькими idx = kmedoids(X,k,Name,Value)Name,Value аргументы пары.
Случайная генерация данных.
rng('default'); % For reproducibility X = [randn(100,2)*0.75+ones(100,2); randn(100,2)*0.55-ones(100,2)]; figure; plot(X(:,1),X(:,2),'.'); title('Randomly Generated Data');

Группировать данные в два кластера с помощью kmedoids. Используйте cityblock метрика расстояния.
opts = statset('Display','iter'); [idx,C,sumd,d,midx,info] = kmedoids(X,2,'Distance','cityblock','Options',opts);
rep iter sum
1 1 209.856
1 2 209.856
Best total sum of distances = 209.856
info - структура, содержащая сведения о выполнении алгоритма. Например, bestReplicate указывает репликацию, которая использовалась для получения конечного раствора. В этом примере используется репликация номер 1, так как число репликаций по умолчанию равно 1 для алгоритма по умолчанию, то есть pam в данном случае.
info
info = struct with fields:
algorithm: 'pam'
start: 'plus'
distance: 'cityblock'
iterations: 2
bestReplicate: 1
Постройте графики кластеров и кластерных медоидов.
figure; plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',7) hold on plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',7) plot(C(:,1),C(:,2),'co',... 'MarkerSize',7,'LineWidth',1.5) legend('Cluster 1','Cluster 2','Medoids',... 'Location','NW'); title('Cluster Assignments and Medoids'); hold off

В этом примере используется набор данных «Грибы» [3][4][5] [6][7] из архива машинного обучения UCI [7], описанного в разделе http://archive.ics.uci.edu/ml/datasets/Mushroom. Набор данных включает 22 предиктора для 8124 наблюдений различных грибов. Предикторы являются категориальными типами данных. Например, форма колпачка классифицируется с элементами 'b' для колоколообразного колпачка и 'c' для конических. Грибной цвет также классифицируется с особенностями 'n' для коричневого, и 'p' для розового. Набор данных также включает классификацию для каждого гриба съедобного или ядовитого.
Поскольку особенности набора данных гриба категоричны, невозможно определить среднее из нескольких точек данных, и поэтому широко используемый алгоритм кластеризации k-means не может быть значимо применен к этому набору данных. k-medoids - это связанный алгоритм, который разбивает данные на k различных кластеров, путем нахождения медоидов, которые минимизируют сумму различий между точками в данных и их ближайшими медоидами.
Медоид множества является членом того множества, средняя несопоставимость которого с другими членами множества является наименьшей. Подобие может быть определено для многих типов данных, которые не позволяют вычислить среднее значение, позволяя использовать k-медоиды для более широкого диапазона проблем, чем k-средства.
Используя k-медоиды, этот пример объединяет грибы в две группы, основываясь на предоставленных предикторах. Затем исследуется взаимосвязь между этими кластерами и классификацией грибов как съедобных или ядовитых.
В этом примере предполагается, что набор данных «Грибы» был загружен [3][4][5] [6][7] из базы данных UCI (http://archive.ics.uci.edu/ml/machine-learning-databases/mushroom/) и сохранен в текущей папке в виде текстового файла с именем agaricus-lepiota.txt. В данных нет заголовков столбцов, поэтому readtable использует имена переменных по умолчанию.
clear all data = readtable('agaricus-lepiota.txt','ReadVariableNames',false);
Отобразите первые 5 грибов с их первыми несколькими особенностями.
data(1:5,1:10)
ans =
Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8 Var9 Var10
____ ____ ____ ____ ____ ____ ____ ____ ____ _____
'p' 'x' 's' 'n' 't' 'p' 'f' 'c' 'n' 'k'
'e' 'x' 's' 'y' 't' 'a' 'f' 'c' 'b' 'k'
'e' 'b' 's' 'w' 't' 'l' 'f' 'c' 'b' 'n'
'p' 'x' 'y' 'w' 't' 'p' 'f' 'c' 'n' 'n'
'e' 'x' 's' 'g' 'f' 'n' 'f' 'w' 'b' 'k'Извлеките первую колонку, помеченные данные для съедобных и ядовитых групп. Затем удалите столбец.
labels = data(:,1);
labels = categorical(labels{:,:});
data(:,1) = [];Хранить названия предикторов (признаков), которые описаны в http://archive.ics.uci.edu/ml/machine-learning-databases/mushroom/agaricus-lepiota.names.
VarNames = {'cap_shape' 'cap_surface' 'cap_color' 'bruises' 'odor' ...
'gill_attachment' 'gill_spacing' 'gill_size' 'gill_color' ...
'stalk_shape' 'stalk_root' 'stalk_surface_above_ring' ...
'stalk_surface_below_ring' 'stalk_color_above_ring' ...
'stalk_color_below_ring' 'veil_type' 'veil_color' 'ring_number' ....
'ring_type' 'spore_print_color' 'population' 'habitat'};Задайте имена переменных.
data.Properties.VariableNames = VarNames;
Имеется в общей сложности 2480 отсутствующих значений, обозначенных как '?'.
sum(char(data{:,:}) == '?')ans =
2480На основании проверки набора данных и его описания отсутствующие значения принадлежат только 11-й переменной (stalk_root). Удалите столбец из таблицы.
data(:,11) = [];
kmedoids принимает только числовые данные. Необходимо преобразовать имеющиеся категории в числовые. Функция расстояния, используемая для определения разнородности данных, будет основана на двойном представлении категориальных данных.
cats = categorical(data{:,:});
data = double(cats);kmedoids может использовать любую метрику расстояния, поддерживаемую pdist2 в кластере. В этом примере данные будут сгруппированы с использованием расстояния Хэмминга, поскольку это подходящий показатель расстояния для категориальных данных, как показано ниже. Расстояние Хэмминга между двумя векторами - это процент различных векторных компонентов. Например, рассмотрим эти два вектора.
v1 = [1 0 2 1];
v2 = [1 1 2 1];
Они равны в 1-й, 3-й и 4-й координатах. Поскольку 1 из 4 координат различаются, расстояние Хэмминга между этими двумя векторами равно .25.
Можно использовать функцию pdist2 для измерения расстояния Хэмминга между первой и второй строками данных числовое представление данных категориального гриба. Значение .2857 означает, что 6 из 21 признаков гриба различаются.
pdist2(data(1,:),data(2,:),'hamming')ans =
0.2857В этом примере выполняется кластеризация данных грибов в два кластера на основе особенностей, чтобы увидеть, соответствует ли кластеризация съедобности. kmedoids функция гарантированно сходится к локальным минимумам критерия кластеризации; однако это, возможно, не является глобальным минимумом для этой проблемы. Это хорошая идея, чтобы сгруппировать проблему несколько раз, используя 'replicates' параметр. Когда 'replicates' установлено значение n, больше 1, алгоритм k-medoids выполняется n раз, и возвращается наилучший результат.
Бежать kmedoids чтобы сгруппировать данные в 2 кластера на основе расстояния Хэмминга и вернуть наилучший результат из 3 репликаций, выполните следующие действия.
rng('default'); % For reproducibility [IDX, C, SUMD, D, MIDX, INFO] = kmedoids(data,2,'distance','hamming','replicates',3);
Предположим, что грибы в предсказанной группе 1 ядовиты, а группа 2 - съедобна. Чтобы определить эффективность результатов кластеризации, вычислите, сколько грибов в группе 1 действительно ядовиты, а группа 2 съедобна на основе известных меток. Другими словами, вычислить количество ложных срабатываний, ложных негативов, а также истинных срабатываний и истинных негативов.
Создайте матрицу путаницы (или совпадающую матрицу), где диагональные элементы представляют количество истинных положительных и истинных отрицательных значений соответственно. Внедиагональные элементы представляют ложноотрицательные и ложноположительные, соответственно. Для удобства используйте confusionmat функция, которая вычисляет матрицу путаницы, заданную известными метками и предсказанными метками. Получение прогнозируемой информации о метке из IDX переменная. IDX содержит значения 1 и 2 для каждой точки данных, представляющие ядовитую и съедобную группы соответственно.
predLabels = labels; % Initialize a vector for predicted labels. predLabels(IDX==1) = categorical({'p'}); % Assign group 1 to be poisonous. predLabels(IDX==2) = categorical({'e'}); % Assign group 2 to be edible. confMatrix = confusionmat(labels,predLabels)
confMatrix =
4176 32
816 3100Из 4208 съедобных грибов 4176 были правильно предсказаны в группе 2 (съедобная группа), а 32 были неправильно предсказаны в группе 1 (ядовитая группа). Аналогично, из 3916 ядовитых грибов 3100 были правильно предсказаны в группе 1 (ядовитая группа), и 816 были неправильно предсказаны в группе 2 (съедобная группа).
Учитывая эту матрицу путаницы, вычислите точность, которая является пропорцией истинных результатов (как истинных положительных, так и истинных отрицательных) к общим данным, и точность, которая является пропорцией истинных положительных результатов ко всем положительным результатам (истинных положительных и ложных положительных).
accuracy = (confMatrix(1,1)+confMatrix(2,2))/(sum(sum(confMatrix)))
accuracy =
0.8956precision = confMatrix(1,1) / (confMatrix(1,1)+confMatrix(2,1))
precision =
0.8365Результаты показали, что применение алгоритма k-medoids к категориальным особенностям грибов привело к кластерам, которые были связаны с съедобностью.
X - ДанныеДанные, указанные как числовая матрица. Строки X соответствуют наблюдениям, а столбцы - переменным.
k - Количество медоидовЧисло медоидов в данных, указанное как положительное целое число.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'Distance','euclidean','Replicates',3,'Options',statset('UseParallel',1) задает евклидово расстояние, три копируют медиоиды с различными начальными значениями и используют параллельные вычисления.'Algorithm' - Алгоритм поиска медоидов'pam' | 'small' | 'clara' | 'large'Алгоритм поиска медоидов, определяемый как разделенная запятыми пара, состоящая из 'Algorithm' и 'pam', 'small', 'clara', или 'large'. Алгоритм по умолчанию зависит от количества строк X.
Если количество строк X менее 3000, 'pam' является алгоритмом по умолчанию.
Если число строк находится в диапазоне от 3000 до 10000, 'small' является алгоритмом по умолчанию.
Для всех остальных случаев: 'large' является алгоритмом по умолчанию.
Можно переопределить выбор по умолчанию, явно указав алгоритм. В этой таблице представлены доступные алгоритмы.
| Алгоритм | Описание |
|---|---|
'pam' |
Разделение вокруг медоидов (PAM) - классический алгоритм решения задачи k-medoids, описанной в [1]. После применения функции инициализации для выбора начальных позиций медоида программа выполняет шаг подкачки алгоритма PAM, то есть осуществляет поиск по всем возможным перестановкам между медоидами и немедоидами, чтобы увидеть, идет ли сумма расстояний от медоида до члена кластера вниз. Можно указать, какую функцию инициализации использовать с помощью Алгоритм работает следующим образом.
Алгоритм выполняет итерацию шагов сборки и подкачки до тех пор, пока медоиды не изменятся или не будут выполнены другие критерии завершения. В некоторых ситуациях алгоритм может создавать лучшие решения, чем другие алгоритмы, но он может быть чрезмерно длительным. |
'small' |
Используйте алгоритм, аналогичный алгоритму k-means, чтобы найти Алгоритм работает следующим образом.
Алгоритм повторяет эти шаги до тех пор, пока не произойдет никаких дальнейших обновлений или не будут выполнены другие критерии завершения. Алгоритм имеет опциональную PAM-подобную фазу оперативного обновления (заданную |
'clara' |
Clustering LARge Applications (CLARA) [1] многократно выполняет алгоритм PAM для случайных подмножеств данных. Он направлен на преодоление проблем масштабирования, связанных с алгоритмом PAM, посредством выборки. Алгоритм работает следующим образом.
Алгоритм повторяет эти шаги до тех пор, пока медоиды не изменятся или не будут выполнены другие критерии завершения. Для достижения максимальной производительности рекомендуется выполнять несколько репликаций. По умолчанию программа выполняет пять репликаций. Каждая репликация образцов |
'large' |
Это похоже на |
Пример: 'Algorithm','pam'
'OnlinePhase' - Флаг для выполнения фазы оперативного обновления, подобной PAM'on' (по умолчанию) | 'off'Флаг для выполнения PAM-подобной фазы оперативного обновления, заданной как пара, разделенная запятыми, состоящая из 'OnlinePhase' и 'on' или 'off'.
Если это так on, то kmedoids выполняет PAM-подобное обновление медоидов после итераций Ллойда в small и large алгоритмы. Во время этой фазы оперативного обновления алгоритм выбирает небольшое подмножество точек данных в каждом кластере, которые являются наиболее удаленными от медиоида и ближайшими к нему. Для каждой выбранной точки он переназначает кластеризацию всего набора данных и проверяет, не создает ли это меньшую сумму расстояний, чем наиболее известная.
Другими словами, соображения свопа ограничены точками вблизи медоидов и далеко от медоидов. Для уточнения кластеризации рассматриваются близкие точки. Дальние точки рассматриваются для того, чтобы избежать локальных минимумов. Включение этой функции повышает качество решений, генерируемых обоими алгоритмами. Общее время выполнения также имеет тенденцию к увеличению, но увеличение обычно составляет менее одной итерации PAM.
Пример: OnlinePhase,'off'
'Distance' - Метрика расстояния'sqEuclidean' (по умолчанию) | 'euclidean' | символьный вектор | строковый скаляр | дескриптор функции |...Метрика расстояния, заданная как имя метрики расстояния, описанной в следующей таблице, или дескриптор функции. kmedoids минимизирует сумму расстояний от медиоида до элемента кластера.
| Стоимость | Описание |
|---|---|
'sqEuclidean' | Квадрат евклидова расстояния (по умолчанию) |
'euclidean' | Евклидово расстояние |
'seuclidean' | Стандартизированное евклидово расстояние. Каждая разность координат между наблюдениями масштабируется делением на соответствующий элемент стандартного отклонения, |
'cityblock' | Расстояние между городскими кварталами |
'minkowski' | Минковская дистанция. Показатель степени равен 2. |
'chebychev' | Расстояние Чебычева (максимальная разность координат) |
'mahalanobis' | Расстояние Махаланобиса с использованием ковариации образца |
'cosine' | Один минус косинус включенного угла между точками (рассматривается как векторы) |
'correlation' | Один минус выборочная корреляция между точками (обрабатывается как последовательности значений) |
'spearman' | Один минус выборка ранговой корреляции Спирмена между наблюдениями (рассматривается как последовательности значений) |
'hamming' | Расстояние хэмминга, которое представляет собой процент различающихся координат |
'jaccard' | Один минус коэффициент Jaccard, который является процентом ненулевых координат, которые отличаются |
@ | Пользовательский дескриптор функции расстояния. Функция расстояния имеет вид function D2 = distfun(ZI,ZJ) % calculation of distance ...
Если данные не разрежены, можно, как правило, быстрее вычислять расстояние, используя встроенное расстояние вместо дескриптора функции. |
Определение каждой метрики расстояния см. в разделе Метрики расстояния.
Пример: 'Distance','hamming'
'Options' - Варианты управления итеративным алгоритмом для минимизации критериев подгонки[] (по умолчанию) | массив структуры, возвращенный statsetОпции управления итеративным алгоритмом для минимизации критериев подгонки, указанные как пара, разделенная запятыми, состоящая из 'Options' и массив структуры, возвращенный statset. Поддерживаемые поля массива структуры определяют параметры управления итеративным алгоритмом. В этой таблице представлены поддерживаемые поля.
| Область | Описание |
|---|---|
Display | Уровень вывода на дисплей. Варианты: 'off' (по умолчанию) и 'iter'. |
MaxIter | Максимально допустимое число итераций. Значение по умолчанию: 100. |
UseParallel | Если true, вычислять параллельно. Если функция Parallel Computing Toolbox™ недоступна, то вычисления выполняются в последовательном режиме. Значение по умолчанию: false, что означает последовательное вычисление. |
UseSubstreams | Установить в значение true вычислять параллельно воспроизводимым образом. Значение по умолчанию: false. Для воспроизводимого вычисления необходимо также установить Streams к типу, допускающему субпотоки: 'mlfg6331_64' или 'mrg32k3a'. |
Streams | A RandStream объект или массив ячеек таких объектов. Дополнительные сведения об этих параметрах и параллельных вычислениях в Toolbox™ статистики и машинного обучения см. в разделе Ускорение статистических вычислений или ввод help parallelstats в командной строке. |
Пример: 'Options',statset('Display','off')
'Replicates' - Количество повторений кластеризации с использованием новых начальных позиций кластераЧисло повторений кластеризации с использованием новых начальных позиций медоида кластера, указанных как положительное целое число. Значение по умолчанию зависит от выбора алгоритма. Для pam и small, значение по умолчанию - 1. Для clara, значение по умолчанию - 5. Для large, значение по умолчанию - 3.
Пример: 'Replicates',4
'NumSamples' - Количество выборок для взятия из данных при выполнении clara алгоритм40+2*k (по умолчанию) | положительное целое числоКоличество выборок, которые должны быть взяты из данных при выполнении clara алгоритм, заданный как положительное целое число. Количество образцов по умолчанию рассчитывается как 40+2*k.
Пример: 'NumSamples',160
'PercentNeighbors' - Процент набора данных для проверки с использованием большого алгоритмаПроцент набора данных для проверки с помощью large алгоритм, указанный как положительное число.
Программа рассматривает percentneighbors*size(X,1) количество соседей для медоидов. Если нет улучшения в внутрикластерной сумме расстояний, то алгоритм завершается.
Значение этого параметра между 0 и 1, где значение ближе к 1 имеет тенденцию давать решения более высокого качества, но алгоритм требует больше времени для выполнения, а значение ближе к 0 имеет тенденцию давать решения более низкого качества, но заканчивается быстрее.
Пример: 'PercentNeighbors',0.01
'Start' - Способ выбора исходных кластерных медоидных положений'plus' (по умолчанию) | 'sample' | 'cluster' | матрицаМетод выбора исходных кластерных позиций медоидов, определяемый как разделенная запятыми пара, состоящая из 'Start' и 'plus', 'sample', 'cluster'или матрица. В этой таблице представлены доступные методы.
| Метод | Описание |
|---|---|
'plus' (по умолчанию) | Выбрать k наблюдения из X согласно алгоритму k-means + + для инициализации кластерного центра. |
'sample' | Выбрать k наблюдения из X наугад. |
'cluster' | Выполните предварительную фазу кластеризации для случайной выборки (10%) X. Эта предварительная фаза инициализируется с помощью sampleто есть наблюдения выбираются случайным образом. |
| матрица | Обычай k-by-p матрица начальных расположений. В этом случае можно пройти [] для k входной аргумент и kmedoids выводит k от первого размера матрицы. Можно также предоставить массив 3-D, подразумевая значение для 'Replicates' из третьего измерения массива. |
Пример: 'Start','sample'
Типы данных: char | string | single | double
idx - Медоидные индексыИндексы Medoid, возвращаемые в виде числового вектора столбца. idx имеет столько строк, сколько X, и каждая строка указывает медоидное назначение соответствующего наблюдения.
C - Кластерные медоидыМестоположения медиоидов кластера, возвращаемые в виде числовой матрицы. C является матрицей k-by-p, где строка j является медоидом кластера j
sumd - Внутрикластерные суммы расстояний точка-медоидСуммы расстояний точка-медоид внутри кластера, возвращаемые в виде числового вектора столбца. sumd является k-by1 вектор, где элемент j - сумма расстояний точка-медоид в кластере j.
D - Расстояния от каждой точки до каждого медоидаРасстояния от каждой точки до каждого медоида, возвращаемые в виде числовой матрицы. D является n-by-k матрица, где элемент (j, m) - расстояние от наблюдения j до медиоида m.
info - Информация о алгоритмеИнформация алгоритма, возвращенная в виде структуры. info содержит параметры, используемые функцией при выполнении, например, алгоритм кластеризации k-medoid (algorithm), метод, используемый для выбора исходных кластерных медоидных положений (start), метрика расстояния (distance), количество итераций, взятых в лучшей копии (iterationsи номер копии возвращенных результатов (bestReplicate).
Кластеризация k-medoids - это метод разбиения, обычно используемый в доменах, которые требуют устойчивости к отклонению данных, произвольных метрик расстояния или для которых среднее или среднее значение не имеет четкого определения.
Он аналогичен k-среднему, и целью обоих методов является разделение набора измерений или наблюдений на k подмножеств или кластеров так, чтобы подмножества минимизировали сумму расстояний между измерением и центром кластера измерения. В алгоритме k-means центром подмножества является среднее значение измерений в подмножестве, часто называемое центроидом. В алгоритме k-medoids центром подмножества является член подмножества, называемый медоидом.
Алгоритм k-medoids возвращает medoids, которые являются фактическими точками данных в наборе данных. Это позволяет использовать алгоритм в ситуациях, когда среднее значение данных не существует в наборе данных. Это основное различие между k-медоидами и k-средствами, где центроиды, возвращаемые k-средствами, могут не находиться в наборе данных. Следовательно, k-medoids полезен для кластеризации категориальных данных, где среднее значение невозможно определить или интерпретировать.
Функция kmedoids предоставляет несколько итеративных алгоритмов, которые минимизируют сумму расстояний от каждого объекта до его кластерного медоида, по всем кластерам. Один из алгоритмов называется разбиением вокруг медоидов (PAM) [1], которое продолжается в два этапа.
Build-step: Каждый из k кластеров связан с потенциальным медоидом. Это назначение выполняется с использованием метода, указанного в 'Start' аргумент пары имя-значение.
Шаг подкачки: В каждом кластере каждая точка проверяется как потенциальный медиоид, проверяя, уменьшается ли сумма расстояний внутри кластера, используя эту точку в качестве медоида. Если это так, точка определяется как новый медоид. Каждая точка затем назначается кластеру с ближайшим медоидом.
Алгоритм выполняет итерацию шагов сборки и подкачки до тех пор, пока медоиды не изменятся или не будут выполнены другие критерии завершения.
Можно управлять подробностями минимизации с помощью нескольких дополнительных входных параметров для kmedoidsв том числе для начальных значений медоидов кластера и для максимального количества итераций. По умолчанию kmedoids использует алгоритм k-means + + для инициализации медоида кластера и квадратную евклидову метрику для определения расстояний.
[1] Кауфман, Л. и Руссью, П. Дж. (2009). Поиск групп в данных: введение в кластерный анализ. Хобокен, Нью-Джерси: John Wiley & Sons, Inc.
[2] Парк, H-S и Jun, C-H. (2009). Простой и быстрый алгоритм кластеризации K-medoids. Экспертные системы с приложениями. 36, 3336-3341.
[3] Шлиммер, Дж.С. (1987). Приобретение концепции посредством репрезентационной корректировки (технический отчет 87-19). Докторская диссертация, факультет информации и компьютерных наук Калифорнийского университета в Ирвайне.
[4] Иба, У., Вогулис, Дж., и Лэнгли, П. (1988). Торг простотой и охватом в инкрементном концептуальном обучении. В трудах пятой Международной конференции по машинному обучению, 73-79. Энн Арбор, Мичиган: Морган Кауфманн.
[5] Duch W, A.R. и Grabchewski, K. (1996) Извлечение логических правил из обучающих данных с использованием сетей обратного распространения. Протокол 1-го онлайн-семинара по мягким вычислениям, 19-30, стр. 25-30.
[6] Дуч, В., Адамчак, Р., Грабчевски, К., Исикава, М. и Уэда, Х. (1997). Извлечение четких логических правил с использованием ограниченных сетей обратного распространения - сравнение двух новых подходов. Прок Европейского симпозиума по искусственным нейронным сетям (ESANN '97), Брюге, Бельгия 16-18.
[7] Баше, К. и Личман, М. (2013). Репозиторий машинного обучения UCI [http://archive.ics.uci.edu/ml]. Ирвин, Калифорния: Калифорнийский университет, Школа информации и компьютерных наук.
Для параллельного выполнения укажите 'Options' аргумент name-value в вызове этой функции и установка 'UseParallel' поле структуры опций для true использование statset.
Например: 'Options',statset('UseParallel',true)
Дополнительные сведения о параллельных вычислениях см. в разделе Запуск функций MATLAB с автоматической параллельной поддержкой (панель инструментов параллельных вычислений).
clusterdata | evalclusters | kmeans | linkage | linkage | pdist | silhouette
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.