kmedoids

k-medoids кластеризация

Синтаксис

idx = kmedoids(X,k)
idx = kmedoids(X,k,Name,Value)
[idx,C] = kmedoids(___)
[idx,C,sumd] = kmedoids(___)
[idx,C,sumd,D] = kmedoids(___)
[idx,C,sumd,D,midx] = kmedoids(___)
[idx,C,sumd,D,midx,info] = kmedoids(___)

Описание

пример

idx = kmedoids(X,k) выполняет k-medoids, Кластеризирующийся, чтобы разделить наблюдения за n-by-p матричный X в кластеры k, и возвращает n-by-1 векторный idx, содержащий кластерные индексы каждого наблюдения. Строки X соответствуют точкам, и столбцы соответствуют переменным. По умолчанию использование kmedoids придало квадратную форму Евклидовой метрике расстояния и k - средние значения ++ алгоритм для выбора начального кластера medoid положения.

idx = kmedoids(X,k,Name,Value) дополнительные опции использования заданы одним или несколькими аргументами пары Name,Value.

[idx,C] = kmedoids(___) возвращает кластер k medoid местоположения в k-by-p матричный C.

[idx,C,sumd] = kmedoids(___) возвращает суммы в кластере point-to-medoid расстояний в k-by-1 векторный sumd.

[idx,C,sumd,D] = kmedoids(___) возвращает расстояния от каждой точки до каждого medoid в n-by-k матричный D.

[idx,C,sumd,D,midx] = kmedoids(___) возвращает индексы midx, таким образом что C = X (midx, :). midx является k-by-1 вектор.

[idx,C,sumd,D,midx,info] = kmedoids(___) возвращает структуру info с информацией об опциях, используемых алгоритмом, когда выполняется.

Примеры

свернуть все

Случайным образом сгенерируйте данные.

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 является struct, который содержит информацию о том, как алгоритм выполнялся. Например, поле bestReplicate указывает на реплицирование, которое использовалось, чтобы произвести конечное решение. В этом примере использовался реплицировать номер 1, поскольку количество по умолчанию реплицирует, 1 для алгоритма по умолчанию, который является pam в этом случае.

info
info = struct with fields:
        algorithm: 'pam'
            start: 'plus'
         distance: 'cityblock'
       iterations: 2
    bestReplicate: 1

Постройте кластеры и кластер medoids.

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 предиктора для 8 124 наблюдений за различными грибами. Предикторы являются типами категориальных данных. Например, форма прописной буквы категоризирована с функциями 'b' для колоколообразной прописной буквы и 'c' для конического. Грибной цвет также категоризирован с функциями 'n' для коричневого и 'p' для розового. Набор данных также включает классификацию для каждого гриба или съедобного или ядовитого.

Поскольку функции грибного набора данных являются категориальными, не возможно задать среднее значение нескольких точек данных, и поэтому широко используемый k - означает кластеризироваться, алгоритм не может быть обоснованно применен к этому набору данных. k-medoids является связанным алгоритмом, что данные о разделах в k отличные кластеры, путем нахождения medoids, которые минимизируют сумму несходств между точками в данных и их самом близком medoid.

medoid набора является членом того набора, среднее несходство которого с другими членами набора является самым маленьким. Подобие может быть задано для многих типов данных, которые не позволяют среднему значению быть вычисленным, позволяя k-medoids использоваться для более широкой области значений проблем, чем k - средние значения.

Используя k-medoids, этот пример кластеризирует грибы в две группы, на основе обеспеченных предикторов. Это затем исследует отношение между теми кластерами и классификациями грибов или как съедобное или как ядовитое.

Этот пример принимает, что вы загрузили "Грибной" [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;

Существует в общей сложности 2 480 отсутствующих значений, обозначенных как '?'.

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

Из 4 208 съедобных грибов, 4176 были правильно предсказаны, чтобы быть в группе 2 (съедобная группа), и 32 были неправильно предсказаны, чтобы быть в группе 1 (ядовитая группа). Точно так же из 3 916 ядовитых грибов, 3100 были правильно предсказаны, чтобы быть в группе 1 (ядовитая группа), и 816 были неправильно предсказаны, чтобы быть в группе 2 (съедобная группа).

Учитывая эту матрицу беспорядка, вычислите точность, которая является пропорцией истинных результатов (и истинные положительные стороны и истинные отрицательные стороны) против полных данных и точности, которая является пропорцией истинных положительных сторон против всех положительных результатов (истинные положительные стороны и ложные положительные стороны).

accuracy = (confMatrix(1,1)+confMatrix(2,2))/(sum(sum(confMatrix)))
accuracy =

    0.8956
precision = confMatrix(1,1) / (confMatrix(1,1)+confMatrix(2,1))
precision =

    0.8365

Результаты показали, что применение k-medoids алгоритма к категориальным функциям грибов привело к кластерам, которые были сопоставлены со съедобностью.

Входные параметры

свернуть все

Данные, заданные как числовая матрица. Строки X соответствуют наблюдениям, и столбцы соответствуют переменным.

Количество medoids в данных, заданных как положительное целое число.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Distance','euclidean','Replicates',3,'Options',statset('UseParallel',1) указывает, что Евклидово расстояние, три реплицируют medoids в различных начальных значениях, и использовать параллельные вычисления.

Алгоритм, чтобы найти medoids, заданный как пара, разделенная запятой, состоящая из 'Algorithm' и 'pam', 'small', 'clara' или 'large'. Алгоритм по умолчанию зависит от количества строк X.

  • Если количество строк X - меньше чем 3 000, 'pam' является алгоритмом по умолчанию.

  • Если количество строк между 3 000 и 10000, 'small' является алгоритмом по умолчанию.

  • Для всех других случаев 'large' является алгоритмом по умолчанию.

Можно заменить выбор по умолчанию путем явного утверждения алгоритма. Эта таблица суммирует доступные алгоритмы.

АлгоритмОписание
'pam'

Разделение вокруг Medoids (PAM) является классическим алгоритмом для решения k-medoids проблема, описанная в [1]. После применения функции инициализации, чтобы выбрать начальную букву medoid положения, программа выполняет шаг подкачки алгоритма PAM, то есть, это ищет по всем возможным подкачкам между medoids и non-medoids, чтобы видеть, понижается ли сумма medoid к кластерным членским расстояниям. Можно задать, какую инициализацию функционируют, чтобы использовать через аргумент пары "имя-значение" 'Start'.

Алгоритм продолжает можно следующим образом.

  1. Шаг сборки: Каждый из кластеров k сопоставлен с потенциалом medoid. Это присвоение выполняется с помощью метода, заданного аргументом пары "имя-значение" 'Start'

  2. Шаг подкачки: В каждом кластере каждая точка тестируется как потенциал medoid путем проверки, получает ли сумма расстояний в кластере меньшее использование, которые указывают как medoid. Если так, точка задана как новый medoid. Каждая точка затем присвоена кластеру с самым близким medoid.

Алгоритм выполняет итерации сборки - и шаги подкачки, пока medoids не изменяются, или другим критериям завершения соответствуют.

Алгоритм может произвести лучшие решения, чем другие алгоритмы в некоторых ситуациях, но это может быть предельно длительно.

'small'

Используйте алгоритм, подобный k-среднему алгоритму, чтобы найти k medoids. Эта опция использует вариант итераций Lloyd's на основе [2].

Алгоритм продолжает можно следующим образом.

  1. Для каждой точки в каждом кластере вычислите сумму расстояний от точки до любой точки в кластере. Выберите точку, которая минимизирует сумму как новый medoid.

  2. Обновите кластерное членство для каждой точки данных, чтобы отразить новый medoid.

Алгоритм повторяет эти шаги, пока никакие дальнейшие обновления не происходят, или другим критериям завершения соответствуют. Алгоритм имеет дополнительную подобную PAM онлайновую фазу обновления (заданный аргументом пары "имя-значение" 'OnlinePhase'), который улучшает кластерное качество. Это имеет тенденцию возвращать более высокие качественные решения, чем clara или алгоритмы large, но это не может быть лучший выбор для очень больших данных.

'clara'

Кластеризация Крупных приложений (CLARA) [1] неоднократно выполняет алгоритм PAM на случайных подмножествах данных. Это стремится преодолевать масштабирующиеся проблемы, поставленные алгоритмом PAM посредством выборки.

Алгоритм продолжает можно следующим образом.

  1. Выберите подмножество данных и примените алгоритм PAM к подмножеству.

  2. Присвойте точки полного набора данных к кластерам путем выбора самого близкого medoid.

Алгоритм повторяет эти шаги, пока medoids не изменяются, или другим критериям завершения соответствуют.

Для лучшей производительности рекомендуется, чтобы вы выполнили, несколько реплицируют. По умолчанию программа выполняет пять, реплицирует. Каждый реплицирует выборки строки s от X (заданный аргументом пары "имя-значение" 'NumSamples'), чтобы выполнить кластеризацию на. По умолчанию выборки 40+2*k выбраны.

'large'

Это подобно алгоритму шкалы small и неоднократно выполняет поисковые запросы с помощью k-средние-значения как обновление. Однако алгоритм исследует только случайную выборку кластерных участников во время каждой итерации. Корректируемый пользователем параметр, 'PercentNeighbors', управляет количеством соседей, чтобы исследовать. Если нет никакого улучшения после того, как соседи исследованы, алгоритм отключает локальный поиск. Алгоритм выполняет в общей сложности r, реплицирует (заданный аргументом пары "имя-значение" 'Replicates') и возвращает лучший результат кластеризации. Алгоритм имеет дополнительную подобную PAM онлайновую фазу (заданный аргументом пары "имя-значение" 'OnlinePhase'), который улучшает кластерное качество.

Пример: 'Algorithm','pam'

Флаг, чтобы выполнить подобную PAM онлайновую фазу обновления, заданную как пара, разделенная запятой, состоящая из 'OnlinePhase' и 'on' или 'off'.

Если это - on, то kmedoids выполняет подобное PAM обновление medoids после итераций Ллойда в алгоритмах large и small. Во время этой онлайновой фазы обновления алгоритм выбирает небольшое подмножество точек данных в каждом кластере, которые являются самыми далекими от и самыми близкими к medoid. Для каждой выбранной точки это повторно присваивает кластеризацию целого набора данных и проверку, если это создает меньшую сумму расстояний, чем самое известное.

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

Пример: OnlinePhase,'off'

Метрика расстояния, в p-мерном-пространстве, заданном как отдельная от запятой пара, состоящая из 'Distance' и 'euclidean', 'seuclidean', 'cityblock', 'minkowski', 'chebychev', 'mahalanobis', 'cosine', 'correlation', 'spearman', 'hamming', 'jaccard' или пользовательской функции расстояния.

kmedoids минимизирует сумму medoid к кластерным членским расстояниям. Смотрите pdist для определения каждой метрики расстояния. kmedoids поддерживает все метрики расстояния, поддержанные pdist.

Пример: 'Distance','hamming'

Опции, чтобы управлять итеративным алгоритмом, чтобы минимизировать подходящие критерии, заданные как пара, разделенная запятой, состоящая из 'Options' и массива структур, возвращенного statset. Поддерживаемые поля массива структур задают опции для управления итеративным алгоритмом. Эта таблица суммирует поддерживаемые поля.

Поле Описание
DisplayУровень отображает вывод. Выбором является 'off' (значение по умолчанию) и 'iter'.
MaxIterМаксимальное количество итераций позволено. Значением по умолчанию является 100.
UseParallelЕсли true, вычислите параллельно. Если Parallel Computing Toolbox™ не доступен, то вычисление происходит в последовательном режиме. Значением по умолчанию является false, означая последовательное вычисление.
UseSubstreamsУстановите на true, чтобы вычислить параллельно восстанавливаемым способом. Значением по умолчанию является false. Чтобы вычислить восстанавливаемо, необходимо также установить Streams на тип, позволяющий подпотоки: 'mlfg6331_64' или 'mrg32k3a'.
StreamsОбъектный массив RandStream или массив ячеек таких объектов. Для получения дополнительной информации об этих опциях и параллельных вычислениях в Statistics and Machine Learning Toolbox™, смотрите, Ускоряют Статистические Вычисления или вводят help parallelstats в командной строке.

Пример: 'Options',statset('Display','off')

Число раз, чтобы повторить кластеризацию с помощью нового начального кластера medoid положения, заданные как положительное целое число. Значение по умолчанию зависит от выбора алгоритма. Для pam и small, значение по умолчанию равняется 1. Для clara значение по умолчанию равняется 5. Для large значение по умолчанию равняется 3.

Пример: 'Replicates',4

Количество выборок, чтобы взять из данных при выполнении алгоритма clara, заданного как положительное целое число. Количество по умолчанию выборок вычисляется как 40+2*k.

Пример: 'NumSamples',160

Процент набора данных, чтобы исследовать использование алгоритма large, заданного как положительное число.

Программа исследует количество percentneighbors*size(X,1) соседей к medoids. Если нет никакого улучшения суммы в кластере расстояний, то алгоритм останавливается.

Значение этого параметра между 0 и 1, где значение ближе к 1 имеет тенденцию давать более высокие качественные решения, но алгоритм занимает больше времени, чтобы запуститься, и значение ближе к 0, имеет тенденцию давать более низкие качественные решения, но заканчивается быстрее.

Пример: 'PercentNeighbors',0.01

Метод для выбора начального кластера medoid положения, заданные как пара, разделенная запятой, состоящая из 'Start' и 'plus', 'sample', 'cluster' или матрицы. Эта таблица суммирует доступные методы.

МетодОписание
'plus' (значение по умолчанию)Выберите наблюдения k из X согласно k - средние значения ++ алгоритм для кластерной центральной инициализации.
'sample'Выберите наблюдения k из X наугад.
'cluster'Выполните предварительную фазу кластеризации на случайной подвыборке (10%) X. Эта предварительная фаза самостоятельно инициализируется с помощью sample, то есть, наблюдения выбраны наугад.
матрицаПользовательский k-by-p матрица стартовых местоположений. В этом случае можно передать в [] для входного параметра k, и kmedoids выводит k из первой размерности матрицы. Можно также предоставить трехмерный массив, подразумевая значение для 'Replicates' от третьей размерности массива.

Пример: 'Start','sample'

Типы данных: char | string | single | double

Выходные аргументы

свернуть все

Индексы Medoid, возвращенные как числовой вектор-столбец. idx имеет столько же строк сколько X, и каждая строка указывает на medoid присвоение соответствующего наблюдения.

Кластер medoid местоположения, возвращенные как числовая матрица. C является k-by-p матрица, где строка j является medoid кластерного j

Суммы в кластере point-to-medoid расстояний, возвращенных как числовой вектор-столбец. sumd является вектором k-by1, где элемент j является суммой point-to-medoid расстояний в кластерном j.

Расстояния от каждой точки до каждого medoid, возвращенного как числовая матрица. D является n-by-k матрица, где элемент (j, m) является расстоянием от наблюдения j к medoid m.

Индексируйте к X, возвращенному как вектор-столбец индексов. midx является k-by-1 вектор, и индексы удовлетворяют C = X(midx,:).

Информация об алгоритме, возвращенная как struct. info содержит опции, используемые функцией, когда выполняется, такие как k-medoid кластеризирующийся алгоритм (algorithm), метод раньше выбирал начальный кластер medoid положения (start), метрика расстояния (distance), количество проделанных итераций в лучшем реплицируют (iterations) и реплицировать количество возвращенных результатов (bestReplicate).

Больше о

свернуть все

k-medoids кластеризация

k-medoids кластеризация является методом разделения, обычно используемым в областях, которые требуют робастности к данным о выбросе, произвольным метрикам расстояния или единицам, для которых среднее значение или медиана не имеют ясного определения.

Это подобно k - средние значения, и цель обоих методов состоит в том, чтобы разделить набор измерений или наблюдений в подмножества k или кластеры так, чтобы подмножества минимизировали сумму расстояний между измерением и центром кластера измерения. В k - средний алгоритм, центр подмножества является средним значением измерений в подмножестве, часто названном центроидом. В k-medoids алгоритм, центр подмножества является членом подмножества, названного medoid.

k-medoids алгоритм возвращает medoids, которые являются фактическими точками данных в наборе данных. Это позволяет вам использовать алгоритм в ситуациях, где среднее значение данных не существует в наборе данных. Это - основное различие между k-medoids и k - средние значения, где центроиды, возвращенные k - средние значения, не могут быть в наборе данных. Следовательно k-medoids полезен для кластеризации категориальных данных, где среднее значение невозможно задать или интерпретировать.

Функциональный kmedoids обеспечивает несколько итеративных алгоритмов, которые минимизируют сумму расстояний от каждого объекта до его кластера medoid по всем кластерам. Один из алгоритмов называется разделением вокруг medoids (PAM) [1], который продолжает на двух шагах.

  1. Шаг сборки: Каждый из кластеров k сопоставлен с потенциалом medoid. Это присвоение выполняется с помощью метода, заданного аргументом пары "имя-значение" 'Start'

  2. Шаг подкачки: В каждом кластере каждая точка тестируется как потенциал medoid путем проверки, получает ли сумма расстояний в кластере меньшее использование, которые указывают как medoid. Если так, точка задана как новый medoid. Каждая точка затем присвоена кластеру с самым близким medoid.

Алгоритм выполняет итерации сборки - и шаги подкачки, пока medoids не изменяются, или другим критериям завершения соответствуют.

Можно управлять деталями минимизации с помощью нескольких дополнительных входных параметров для kmedoids, включая единицы для начальных значений кластера medoids, и для максимального количества итераций. По умолчанию kmedoids использует k - средние значения ++ алгоритм для кластера medoid инициализация и Евклидова метрика в квадрате, чтобы определить расстояния.

Ссылки

[1] Кауфман, L. и Rousseeuw, P. J. (2009). Нахождение групп в данных: введение в кластерный анализ. Хобокен, Нью-Джерси: John Wiley & Sons, Inc.

[2] Припаркуйтесь, H-S, и июнь, C-H. (2009). Простой и алгоритм FAST для кластеризации K-medoids. Экспертные системы с Приложениями. 36, 3336-3341.

[3] Schlimmer, J.S. (1987). Приобретение концепции Посредством Представительной Корректировки (Технический отчет 87-19). Докторская диссертация, Отдел Информатики и вычислительной техники, Калифорнийский университет, Ирвин.

[4] Iba, W., Wogulis, J. и Лэнгли, P. (1988). Обменивание простоты и покрытия в инкрементном изучении концепции. В продолжениях 5-й международной конференции по вопросам машинного обучения, 73-79. Анн-Арбор, Мичиган: Морган Кофманн.

[5] Дуч В, A.R., и Грабцзевский, K. (1996) Экстракция логических правил от данных тренировки с помощью сетей обратной связи. Proc. 1-го Онлайнового Семинара по Мягкому Вычислению, 19-30, стр 25-30.

[6] Дуч, W., Adamczak, R., Грабцзевский, K., Ishikawa, M. и Уэда, H. (1997). Экстракция четких логических правил с помощью ограниченных сетей обратной связи - сравнение двух новых подходов. Proc. европейского Симпозиума по Искусственным Нейронным сетям (ESANN '97), Брьюг, Бельгия 16-18.

[7] Bache, K. и Личмен, M. (2013). Репозиторий машинного обучения UCI [http://archive.ics.uci.edu/ml]. Ирвин, CA: Калифорнийский университет, школа информатики и вычислительной техники.

Расширенные возможности

Смотрите также

| | | | | |

Введенный в R2014b