mdscale

Неклассическое многомерное масштабирование

Синтаксис

Y = mdscale(D,p)
[Y,stress] = mdscale(D,p)
[Y,stress,disparities] = mdscale(D,p)
[...] = mdscale(D,p,'Name',value)

Описание

Y = mdscale(D,p) выполняет неметрическое многомерное масштабирование на матрице различий n на n D, и возвращает Y, a строения n точек (строк) в p размерности (столбцы). Евклидовы расстояния между точками в Y аппроксимировать монотонное преобразование соответствующих различий в D. По умолчанию mdscale использует нормированный критерий Крускаля стресс1.

Можно задать D как полная n-на-n матрица, или в форме верхнего треугольника, такой как выводится pdist. Полная матрица расхождения должна быть действительной и симметричной, и иметь нули вдоль диагональных и неотрицательных элементов повсюду. Матрица неоднородности в форме верхнего треугольника должна иметь вещественные, неотрицательные значения. mdscale лечит NaNs в D как отсутствующие значения и игнорирует эти элементы. Inf не принят.

Можно также задать D как полная матрица подобия, с таковыми по диагонали и всеми остальными элементами меньше единицы. mdscale преобразует матрицу подобия в матрицу различия таким образом, чтобы расстояния между точками, возвращенными в Y аппроксимировать sqrt(1-D). Чтобы использовать другое преобразование, преобразуйте сходства перед вызовом mdscale.

[Y,stress] = mdscale(D,p) возвращает минимизированное напряжение, т.е. напряжение, рассчитанное в Y.

[Y,stress,disparities] = mdscale(D,p) возвращает различия, то есть монотонное преобразование различий D.

[...] = mdscale(D,p,'Name',value) задает одну или несколько необязательных пар имя/значение параметра, которые управляют дополнительными деталями mdscale. Задайте Name в одинарных кавычках. Доступные параметры:

  • Criterion- Критерий качества подгонки для минимизации. Это также определяет тип масштабирования, неметрический или метрический, который mdscale выполняет. Варианты для неметрического масштабирования:

    • 'stress' - Напряжение, нормированное суммой квадратов межточечных расстояний, также известное как стресс 1. Это значение по умолчанию.

    • 'sstress' - Квадратное напряжение, нормированное с суммой 4-й степеней межточечных расстояний.

    Варианты для метрического масштабирования:

    • 'metricstress' - Напряжение, нормированное с суммой квадратов различий.

    • 'metricsstress' - Квадратное напряжение, нормированное с суммой 4-й степеней различий.

    • 'sammon' - нелинейный критерий отображения Саммона. Диагональные различия должны быть строго положительными с этим критерием.

    • 'strain' - критерий, эквивалентный используемому в классическом многомерном масштабировании.

  • Weights - Матрица или вектор того же размера, что и D, содержащих неотрицательные веса различий. Можно использовать их для взвешивания вклада соответствующих элементов D в вычислении и минимизации напряжения. Элементы D соответствующие нулевым весам эффективно игнорируются.

    Примечание

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

  • Start - Метод, используемый для выбора начального строения точек для Y. Варианты:

    • 'cmdscale' - Используйте классическое многомерное решение масштабирования. Это значение по умолчанию. 'cmdscale' недопустимо при нулевых весах.

    • 'random' - Выбирайте местоположения случайным образом из соответственно масштабированного p-размерного нормального распределения с некоррелированными координатами.

    • n-by- p матрица начальных местоположений, где n - размер матрицы D и p - количество столбцов выходной матрицы Y. В этом случае можно пройти [] для p и mdscale выводит p от второго измерения матрицы. Можно также задать трехмерный массив, подразумевающий значение для 'Replicates' из третьей размерности массива.

  • Replicates - Количество раз, чтобы повторить масштабирование, каждый с новым начальным строением. Значение по умолчанию является 1.

  • Options - Опции итерационного алгоритма, используемого для минимизации критерия аппроксимации. Передайте в структуре опций, созданной statset. Для примера,

    opts = statset(param1,val1,param2,val2, ...);
    [...] = mdscale(...,'Options',opts)

    Выбор statset параметры следующие

    • 'Display' - Уровень вывода дисплея. Выбор следующий 'off' (по умолчанию), 'iter', и 'final'.

    • 'MaxIter' - Максимально допустимое количество итераций. Значение по умолчанию является 200.

    • 'TolFun' - Допуск на разрыв для критерия напряжения и его градиента. Значение по умолчанию является 1e-4.

    • 'TolX'- Допуск на разрыв для размера шага конфигурирования. Значение по умолчанию является 1e-4.

Примеры

load cereal.mat
X = [Calories Protein Fat Sodium Fiber ...
     Carbo Sugars Shelf Potass Vitamins];

% Take a subset from a single manufacturer.
X = X(strcmp('K',cellstr(Mfg)),:);

% Create a dissimilarity matrix.
dissimilarities = pdist(X);
 
% Use non-metric scaling to recreate the data in 2D,
% and make a Shepard plot of the results.
[Y,stress,disparities] = mdscale(dissimilarities,2);
distances = pdist(Y);
[dum,ord] = sortrows([disparities(:) dissimilarities(:)]);
plot(dissimilarities,distances,'bo', ...
dissimilarities(ord),disparities(ord),'r.-');
xlabel('Dissimilarities'); ylabel('Distances/Disparities')
legend({'Distances' 'Disparities'},'Location','NW');

% Do metric scaling on the same dissimilarities.
figure
[Y,stress] = ... 
mdscale(dissimilarities,2,'criterion','metricsstress');
distances = pdist(Y);
plot(dissimilarities,distances,'bo', ...
[0 max(dissimilarities)],[0 max(dissimilarities)],'r.-');
xlabel('Dissimilarities'); ylabel('Distances')

См. также

| |

Представлено до R2006a