Неклассическое многомерное масштабирование
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
лечит NaN
s в 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')