exponenta event banner

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

В этом примере показано, как визуализировать разнородные данные с помощью неклассических форм многомерного масштабирования (MDS).

Разнородность данных возникает, когда у нас есть некоторый набор объектов, и вместо того, чтобы измерять характеристики каждого объекта, мы можем измерить только то, насколько сходна или отличается каждая пара объектов. Например, вместо того, чтобы знать широту и долготу набора городов, мы можем знать только их межгородские расстояния. Однако MDS также работает с разнородностями, которые более абстрактны, чем физическое расстояние. Например, мы, возможно, попросили потребителей оценить, насколько похожи они находят несколько марок арахисового масла.

Типичной целью MDS является создание конфигурации точек в одном, двух или трех измерениях, межточечные расстояния которых «близки» к исходным различиям. Различные формы MDS используют различные критерии для определения «закрытия». Эти точки представляют набор объектов, поэтому график точек можно использовать в качестве визуального представления их разнородности.

Некоторые приложения «классической» MDS описаны в примере классического многомерного масштабирования, применяемого к непространственным расстояниям.

Набор данных кода Морса Роткопфа

Чтобы продемонстрировать MDS, мы будем использовать данные, собранные в эксперименте, чтобы исследовать восприятие кода Морзе (Rothkopf, E.Z., J.Exper.Psych., 53 (2): 94-101). Субъекты в исследовании прослушивали два кодовых сигнала Морса (слышимые последовательности одной или нескольких «точек» и «тире», представляющие 36 алфавитно-цифровых символов), воспроизводимых последовательно, и их спрашивали, были ли сигналы одинаковыми или разными. Испытуемые не знали кода Морзе. Отличием двух разных символов является частота, с которой эти символы были правильно различены.

Матрица 36х36 разнородностей хранится в виде 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 возвращает набор точек в, для этого примера, двух измерениях. Мы могли бы построить их график, но прежде чем использовать это решение (т.е. конфигурацию) для визуализации данных, мы сделаем несколько графиков, чтобы помочь проверить, воссоздают ли расстояния между точками от этого решения исходные различия.

Участок Шепарда

График Шепарда - это график рассеяния межпунктовых расстояний (их n (n-1 )/2) по сравнению с исходными разнородностями. Это может помочь определить правильность подгонки решения MDS. Если посадка плохая, то визуализация может ввести в заблуждение, поскольку большие (малые) расстояния между точками могут не соответствовать большим (малым) различиям в данных. На графике Шепарда узкий разброс вокруг линии 1:1 указывает на хорошую подгонку расстояний до разнородностей, в то время как большой разброс или нелинейный рисунок указывает на отсутствие подгонки.

distances1 = pdist(Y1);
plot(dissimilarities,distances1,'bo', [0 200],[0 200],'k--');
xlabel('Dissimilarities')
ylabel('Distances')

Figure contains an axes. The axes contains 2 objects of type line.

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

Сравнение метрических критериев

Мы могли бы попробовать использовать третье измерение, чтобы улучшить точность визуализации, потому что при большем количестве степеней свободы соответствие должно улучшиться. Мы также можем попробовать другой критерий. Два других популярных критерия метрики известны как Sammon Mapping и квадратное напряжение («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');

Figure contains an axes. The axes contains 4 objects of type line. These objects represent Stress, Sammon Mapping, Squared Stress.

Обратите внимание, что при наибольших значениях разнородности разброс для критерия квадратного напряжения имеет тенденцию быть ближе к линии 1:1, чем для двух других критериев. Таким образом, для этих данных напряжение в квадрате несколько лучше при сохранении самых больших различий, хотя оно сильно занижает некоторые из них. При меньших значениях разнородности рассеяние для критерия картирования Саммона имеет тенденцию быть несколько ближе к линии 1:1, чем для двух других критериев. Таким образом, Sammon Mapping немного лучше сохраняет небольшие различия. Стресс где-то между ними. Все три критерия показывают определенную степень нелинейности, указывая, что масштабирование метрики может быть неподходящим. Однако выбор критерия зависит от цели визуализации.

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

Неметрическое масштабирование - это вторая форма 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');

Figure contains an axes. The axes with title Nonmetric MDS solution for Rothkopf's Morse code data contains 37 objects of type line, text.

Эта реконструкция указывает на то, что символы могут быть описаны в терминах двух осей: грубо говоря, северо-западное/юго-восточное направление различает длину сигнала, в то время как юго-западное/северо-восточное направление различает точки от тире. Два символа с самыми короткими сигналами, «E» и «T», несколько не расположены в этой интерпретации.

Неметрический график Shepard

В неметрическом масштабировании принято показывать различия, а также расстояния на графике Шепарда. Это дает возможность проверить, насколько хорошо расстояния воссоздают различия, а также насколько нелинейным является монотонное преобразование из различий в различия.

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');

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Distances, Disparities.

Этот график показывает, как расстояния в неметрическом масштабировании аппроксимируют различия (разброс синих кругов вокруг красной линии), а различия отражают ряды разнородностей (красная линия нелинейна, но увеличивается). Сравнение этого графика с графиком Шепарда из метрического масштабирования показывает разницу в двух методах. Неметрическое масштабирование пытается воссоздать не исходные разнородности, а нелинейное их преобразование (различия).

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

Неметрическое масштабирование в 3D

Поскольку напряжение в конструкции 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

Figure contains an axes. The axes with title Nonmetric MDS solution for Rothkopf's Morse code data contains 37 objects of type line, text.

Из этого угла видно, что символы с одно- и двухсимвольными сигналами хорошо отделены от символов с более длинными сигналами, и друг от друга, потому что их легче всего отличить. Если мы повернем вид в другую перспективу, мы увидим, что более длинные символы могут, как в 2D конфигурации, примерно быть описаны в терминах количества символов и количества точек или тире. (Из этого второго угла некоторые из более коротких символов ложно перемежаются с более длинными.)

view(-9,8);

Figure contains an axes. The axes with title Nonmetric MDS solution for Rothkopf's Morse code data contains 37 objects of type line, text.

Эта 3D конфигурация восстанавливает расстояния точнее, чем 2D конфигурация, однако сообщение по сути одно и то же: испытуемые воспринимают сигналы прежде всего в терминах, сколько символов они содержат, и сколько точек против тире. На практике 2D конфигурация может быть вполне приемлемой.