В этом примере показано, как визуализировать данные о несходстве с помощью неклассических форм многомерного масштабирования (MDS).
Данные о несходстве возникают, когда у нас есть некоторый набор объектов, и вместо того, чтобы измерить характеристики каждого объекта, мы можем только измериться, насколько подобный или отличающийся каждая пара объектов. Например, вместо того, чтобы знать широту и долготу набора городов, мы можем только знать их междугородние расстояния. Однако MDS также работает с несходствами, которые более абстрактны, чем физическое расстояние. Например, мы, возможно, спросили потребителей к уровню, как подобный они находят несколько брендов арахисового масла.
Типичная цель MDS состоит в том, чтобы создать настройку точек в один, два, или три измерения, чьи разделяют расстояния знаками препинания, "близки" к исходным несходствам. Различные формы MDS используют различные критерии, чтобы задать "близко". Эти точки представляют набор объектов, и таким образом, график точек может использоваться в качестве визуального представления их несходств.
Некоторые приложения "классического" MDS описаны в Классическом Многомерном Масштабировании, Примененном Непространственный пример Расстояний.
Чтобы продемонстрировать MDS, мы будем использовать данные, собранные в эксперименте, чтобы исследовать восприятие Кода Морзе (Rothkopf, E.Z., J.Exper.Psych., 53 (2):94-101). Предметы в исследовании слушали два сигнала Кода Морзе (слышимые последовательности одной или нескольких "точек" и "тире", представляя эти 36 алфавитно-цифровых символов) проигрываемый по очереди, и были спрошены, были ли сигналы тем же самым или отличающийся. Предметы не знали Код Морзе. Несходство между двумя различными символами является частотой, с которой правильно отличили те символы.
36x36 матрица несходств хранится как вектор с 630 элементами, содержащий поддиагональные элементы матрицы. Можно использовать функциональный squareform
преобразовать между векторным форматом и полной матричной формой. Вот первые 5 букв и их несходства, восстановленные в матричной форме.
load morse
morseChars(1:5,:)
ans = 5x2 cell
{'A'} {'.-' }
{'B'} {'-...'}
{'C'} {'-.-.'}
{'D'} {'-..' }
{'E'} {'.' }
dissMatrix = squareform(dissimilarities); dissMatrix(1:5,1:5)
ans = 5×5
0 167 169 159 180
167 0 96 79 163
169 96 0 141 166
159 79 141 0 172
180 163 166 172 0
В этих данных большие значения указывают, что более участники эксперимента смогли отличить два сигнала, и таким образом, сигналы более отличались.
Метрический MDS создает настройку точек, таким образом, что их разделять расстояния знаками препинания аппроксимируют исходные несходства. Одна мера качества подгонки того приближения известна как "напряжение", и это - то, что мы будем использовать первоначально. Чтобы вычислить настройку, мы обеспечиваем mdscale
функция с данными о несходстве, количеством размерностей, в которых мы хотим создать точки (два), и имя критерия качества подгонки, который мы используем.
Y1 = mdscale(dissimilarities, 2, 'criterion','metricstress'); size(Y1)
ans = 1×2
36 2
mdscale
возвращает набор точек в, для этого примера, двух размерностей. Мы могли построить их, но перед использованием этого решения (i.e. настройка), чтобы визуализировать данные, мы сделаем некоторые графики помочь проверять, воссоздают ли разделять знаками препинания расстояния от этого решения исходные несходства.
График Шепарда является scatterplot разделять знаками препинания расстояний (существуют n (n-1)/2 их) по сравнению с исходными несходствами. Это может помочь определить качество подгонки решения для MDS. Если подгонка плоха, то визуализация могла вводить в заблуждение, потому что большие (маленькие) расстояния между точками не могут соответствовать большим (маленьким) несходствам в данных. В графике Шепарда узком рассеянии вокруг 1:1 линия указывает на хорошую подгонку расстояний до несходств, в то время как большое рассеяние или нелинейный шаблон указывают на отсутствие подгонки.
distances1 = pdist(Y1); plot(dissimilarities,distances1,'bo', [0 200],[0 200],'k--'); xlabel('Dissimilarities') ylabel('Distances')
Этот график показывает, что это метрическое решение в двух измерениях является, вероятно, не соответствующим, потому что это показывает и нелинейный шаблон и большое рассеяние. Первый подразумевает, что многие самые большие несходства имели бы тенденцию быть несколько преувеличенными в визуализации, в то время как умеренные и маленькие несходства будут иметь тенденцию быть преуменьшенными. Последний подразумевает, что расстояние в визуализации обычно было бы плохим отражением несходства. В частности, хорошая часть больших несходств была бы плохо преуменьшена.
Мы могли попытаться использовать третью размерность, чтобы улучшить точность визуализации, потому что с большим количеством степеней свободы, подгонка должна улучшиться. Мы можем также попробовать различный критерий. Два других популярных метрических критерия известны как Отображение Sammon и напряжение в квадрате ("sstress"). Каждый приводит к различному решению, и один или другая сила быть более полезным в визуализации исходных несходств.
Y2 = mdscale(dissimilarities,2, 'criterion','sammon'); distances2 = pdist(Y2); Y3 = mdscale(dissimilarities,2, 'criterion','metricsstress'); distances3 = pdist(Y3);
График Шепарда показывает различия в этих трех решениях до сих пор.
plot(dissimilarities,distances1,'bo', ... dissimilarities,distances2,'r+', ... dissimilarities,distances3,'g^', ... [0 200],[0 200],'k--'); xlabel('Dissimilarities') ylabel('Distances') legend({'Stress', 'Sammon Mapping', 'Squared Stress'}, 'Location','NorthWest');
Заметьте, что в самых больших значениях несходства, рассеяние для критерия напряжения в квадрате имеет тенденцию быть ближе к 1:1 линия, чем для других двух критериев. Таким образом, для этих данных, напряжение в квадрате несколько лучше в сохранении самых больших несходств, несмотря на то, что это плохо преуменьшает некоторых из тех. В меньших значениях несходства рассеянии для Sammon Отображение критерия имеет тенденцию быть несколько ближе к 1:1 линия, чем для других двух критериев. Таким образом Отображение Sammon немного лучше в сохранении маленьких несходств. Напряжение является где-нибудь промежуточным. Все три критерия показывают определенное количество нелинейности, указывая, что метрическое масштабирование не может подойти. Однако выбор критерия зависит от цели визуализации.
Неметрическое масштабирование является второй формой MDS, который имеет немного менее амбициозную цель, чем метрическое масштабирование. Вместо того, чтобы пытаться создать настройку точек, для которых попарные расстояния аппроксимируют исходные несходства, неметрический MDS пытается только аппроксимировать ранги несходств. Другой способ сказать это состоит в том, что неметрический MDS создает настройку точек, чьи разделяют знаками препинания расстояния, аппроксимированные монотонное преобразование исходных несходств.
Практическое применение такой конструкции является настолько большим, разделяют расстояния знаками препинания, соответствуют большим несходствам, и маленький разделяют расстояния знаками препинания до маленьких несходств. Это часто достаточно, чтобы передать отношения среди элементов или изучаемых категорий.
Во-первых, мы создадим настройку точек в 2D. Неметрика, масштабирующаяся с неметрическим критерием напряжения Краскэла, является значением по умолчанию для mdscale
.
[Y,stress,disparities] = mdscale(dissimilarities,2); stress
stress = 0.1800
Второй выход mdscale
значение используемого критерия, как мера того, как хорошо решение воссоздает несходства. Меньшие значения указывают на лучшую подгонку. Напряжение для этой настройки, приблизительно 18%, рассматривается плохим к ярмарке для неметрического критерия напряжения. Области значений приемлемых значений критерия отличаются для различных критериев.
Третий выход mdscale
вектор из того, что известно как несоизмеримости. Это просто монотонное преобразование несходств. Они будут использоваться в неметрике, масштабирующей график Шепарда ниже.
Несмотря на то, что эта подгонка не так хороша, как мы хотели бы, 2D представление является самым легким визуализировать. Мы можем построить точки каждого сигнала и тире, чтобы помочь видеть, почему предметы чувствуют различия среди символов. Ориентация и шкала этой настройки абсолютно произвольны, таким образом, никакие подписи по осям или значения не показали.
plot(Y(:,1),Y(:,2),'.', 'Marker','none'); text(Y(:,1),Y(:,2),char(morseChars(:,2)), 'Color','b', ... 'FontSize',12,'FontWeight','bold', 'HorizontalAlignment','center'); h_gca = gca; h_gca.XTickLabel = []; h_gca.YTickLabel = []; title('Nonmetric MDS solution for Rothkopf''s Morse code data');
Эта реконструкция указывает, что символы могут быть описаны в терминах двух осей: примерно говоря, северо-западное/юго-восточное направление отличает длину сигнала, в то время как юго-западное/северо-восточное направление отличает точки от тире. Эти два символа с самыми короткими сигналами, 'E' и 'T', несколько вне положения в той интерпретации.
В неметрическом масштабировании это обычно, чтобы показать несоизмеримости, а также расстояния в графике Шепарда. Это обеспечивает проверку о том, как хорошо расстояния воссоздают несоизмеримости, а также насколько нелинейный монотонное преобразование от несходств до несоизмеримостей.
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','NorthWest');
Этот график показывает, как расстояния в неметрике, масштабирующейся аппроксимированный, несоизмеримости (рассеяние синих кругов о красной линии) и несоизмеримости отражают ранги несходств (красная линия нелинейна, но увеличивается). Сравнение этого графика к графику Шепарда от метрического масштабирования показывает различие в этих двух методах. Неметрическое масштабирование пытается воссоздать не исходные несходства, а скорее нелинейное преобразование их (несоизмеримости).
В выполнении этого неметрическое масштабирование сделало компромисс: неметрические расстояния воссоздают несоизмеримости лучше, чем метрические расстояния воссоздали несходства - рассеяние в этом графике меньше это в метрическом графике. Однако несоизмеримости довольно нелинейны в зависимости от несходств. Таким образом, в то время как мы можем быть более уверены, что с неметрическим решением, маленькие расстояния в визуализации соответствуют маленьким несходствам в данных, важно помнить, что абсолютные расстояния между точками в той визуализации не должны быть взяты слишком буквально - только относительные расстояния.
Поскольку напряжение в 2D конструкции было несколько высоко, мы можем попробовать 3D настройку.
[Y,stress,disparities] = mdscale(dissimilarities,3); stress
stress = 0.1189
Это значение напряжений вполне немного ниже, указывая на лучшую подгонку. Мы можем построить настройку в 3 размерностях. Живая фигура MATLAB® может вращаться в интерактивном режиме; здесь мы согласимся на взгляд от двух различных углов.
plot3(Y(:,1),Y(:,2),Y(:,3),'.', 'Marker','none'); text(Y(:,1),Y(:,2),Y(:,3),char(morseChars(:,2)), 'Color','b', ... 'FontSize',12,'FontWeight','bold', 'HorizontalAlignment','center'); set(gca,'XTickLabel',[], 'YTickLabel',[], 'ZTickLabel',[]); title('Nonmetric MDS solution for Rothkopf''s Morse code data'); view(59,18); grid on
От этого угла мы видим, что символы с одним - и сигналы 2D символа хорошо разделяются от символов с более длинными сигналами, и друг от друга, потому что их является самым легким отличить. Если мы вращаем представление к другой точке зрения, мы видим, что более долгие символы могут, как в 2D настройке, примерно быть описанными в терминах количества символов и количества точек или тире. (От этого второго угла некоторые более короткие символы побочно, кажется, вкраплены более длинными единицами.)
view(-9,8);
Эта 3D настройка восстанавливает расстояния более точно, чем 2D настройка, однако, сообщение является по существу тем же самым: предметы чувствуют сигналы, в основном, в терминах того, сколько символов они содержат, и сколько точек по сравнению с тире. На практике 2D настройка может быть совершенно приемлемой.