exponenta event banner

fsulaplacian

Ранговые характеристики для неконтролируемого обучения с использованием лапласианских баллов

Описание

пример

idx = fsulaplacian(X) ранжирует элементы (переменные) в X используя оценки Лапласа. Функция возвращает idx, который содержит индексы элементов, упорядоченные по важности элементов. Вы можете использовать idx выбрать важные функции для неконтролируемого обучения.

пример

idx = fsulaplacian(X,Name,Value) указывает дополнительные параметры, использующие один или несколько аргументов пары имя-значение. Например, можно указать 'NumNeighbors',10 для создания графа подобия с использованием 10 ближайших соседей.

[idx,scores] = fsulaplacian(___) также возвращает оценки функций scores, используя любую из комбинаций входных аргументов в предыдущих синтаксисах. Большое значение балла указывает на важность соответствующей функции.

Примеры

свернуть все

Загрузите образцы данных.

load ionosphere

Ранжирование элементов по важности.

[idx,scores] = fsulaplacian(X);

Создайте штрих-график показателей важности элемента.

bar(scores(idx))
xlabel('Feature rank')
ylabel('Feature importance score')

Figure contains an axes. The axes contains an object of type bar.

Выберите пять наиболее важных функций. Найдите столбцы этих функций в X.

idx(1:5)
ans = 1×5

    15    13    17    21    19

15-я колонна X является наиболее важной особенностью.

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

Загрузите набор данных радужки Фишера.

load fisheriris

Найдите расстояние между каждой парой наблюдений в meas с помощью pdist и squareform с метрикой евклидова расстояния по умолчанию.

D = pdist(meas);
Z = squareform(D);

Создайте матрицу подобия и подтвердите, что она симметрична.

S = exp(-Z.^2);
issymmetric(S)
ans = logical
   1

Ранжирование элементов.

idx = fsulaplacian(meas,'Similarity',S)
idx = 1×4

     3     4     1     2

Ранжирование с использованием матрицы подобия S совпадает с ранжированием путем указания 'NumNeighbors' как size(meas,1).

idx2 = fsulaplacian(meas,'NumNeighbors',size(meas,1))
idx2 = 1×4

     3     4     1     2

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

свернуть все

Входные данные, определенные как n-by-p-числовая матрица. Строки X соответствуют наблюдениям (или точкам), а столбцы - элементам.

Программное обеспечение обрабатывает NaNs в X как отсутствующие данные и игнорирует любую строку X содержащий, по крайней мере, один NaN.

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

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

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'NumNeighbors',10,'KernelScale','auto' определяет число ближайших соседей как 10 и масштабный коэффициент ядра как 'auto'.

Матрица подобия, заданная как пара, разделенная запятыми, состоящая из 'Similarity' и симметричную матрицу n-на-n, где n - число наблюдений. Матрица подобия (или матрица смежности) представляет входные данные путем моделирования локальных отношений соседства между точками данных. Значения в матрице подобия представляют ребра (или соединения) между узлами (точками данных), которые связаны в графе подобия. Дополнительные сведения см. в разделе Матрица подобия.

При указании 'Similarity' значение, то вы не можете указать какой-либо другой аргумент пары имя-значение. Если не указать 'Similarity' затем программное обеспечение вычисляет матрицу подобия, используя опции, заданные другими аргументами пары имя-значение.

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

Метрика расстояния, заданная как разделенная запятыми пара, состоящая из 'Distance' и символьный вектор, строковый скаляр или дескриптор функции, как описано в этой таблице.

СтоимостьОписание
'euclidean'

Евклидово расстояние (по умолчанию)

'seuclidean'

Стандартизированное евклидово расстояние. Каждая разность координат между наблюдениями масштабируется делением на соответствующий элемент стандартного отклонения, вычисленного из X. Используйте Scale аргумент пары «имя-значение» для указания другого коэффициента масштабирования.

'mahalanobis'

Расстояние Махаланобиса с использованием ковариации образца X, C = cov(X,'omitrows'). Используйте Cov аргумент пары имя-значение для указания другой ковариационной матрицы.

'cityblock'

Расстояние между городскими кварталами

'minkowski'

Минковская дистанция. Степень по умолчанию равна 2. Используйте P аргумент пары имя-значение для указания другой степени, где P - положительное скалярное значение.

'chebychev'

Расстояние Чебычева (максимальная разность координат)

'cosine'

Один минус косинус включенного угла между наблюдениями (рассматривается как векторы)

'correlation'

Один минус выборочная корреляция между наблюдениями (рассматривается как последовательность значений)

'hamming'

Расстояние хэмминга, которое представляет собой процент различающихся координат

'jaccard'

Один минус коэффициент Jaccard, который является процентом ненулевых координат, которые отличаются

'spearman'

Один минус выборка ранговой корреляции Спирмена между наблюдениями (рассматривается как последовательности значений)

@distfun

Пользовательский дескриптор функции расстояния. Функция расстояния имеет вид

function D2 = distfun(ZI,ZJ)
% calculation of distance
...
где

  • ZI является 1около-n вектор, содержащий одно наблюдение.

  • ZJ является m2около-n матрица, содержащая несколько наблюдений. distfun должен принять матрицу ZJ с произвольным числом наблюдений.

  • D2 является m2около-1 вектор расстояний, и D2(k) - расстояние между наблюдениями ZI и ZJ(k,:).

Если данные не разрежены, можно, как правило, быстрее вычислять расстояние, используя встроенное расстояние вместо дескриптора функции.

Дополнительные сведения см. в разделе Метрики расстояния.

При использовании 'seuclidean', 'minkowski', или 'mahalanobis' метрика расстояния, можно указать дополнительный аргумент пары имя-значение 'Scale', 'P', или 'Cov', соответственно, для управления метриками расстояния.

Пример: 'Distance','minkowski','P',3 указывает использовать метрику расстояния Минковского с показателем степени 3.

Экспонента для метрики расстояния Минковского, заданная как разделенная запятыми пара, состоящая из 'P' и положительный скаляр.

Этот аргумент допустим только в том случае, если 'Distance' является 'minkowski'.

Пример: 'P',3

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

Ковариационная матрица для метрики расстояния Махаланобиса, заданная как разделенная запятыми пара, состоящая из 'Cov' и положительная определенная матрица.

Этот аргумент допустим только в том случае, если 'Distance' является 'mahalanobis'.

Пример: 'Cov',eye(4)

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

Масштабные коэффициенты для стандартизированной евклидовой метрики расстояния, заданной как разделенная запятыми пара, состоящая из 'Scale' и числовой вектор неотрицательных значений.

Scale имеет длину p (количество столбцов в X), потому что каждое измерение (столбец) X имеет соответствующее значение в Scale. Для каждого измерения X, fsulaplacian использует соответствующее значение в Scale для стандартизации различий между наблюдениями.

Этот аргумент допустим только в том случае, если 'Distance' является 'seuclidean'.

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

Число ближайших соседей, использованных для построения графа подобия, заданного как пара, разделенная запятыми, состоящая из 'NumNeighbors' и положительное целое число.

Пример: 'NumNeighbors',10

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

Масштабный коэффициент для ядра, определяемый как разделенная запятыми пара, состоящая из 'KernelScale' и 'auto' или положительный скаляр. Программа использует масштабный коэффициент для преобразования расстояний в измерения подобия. Дополнительные сведения см. в разделе График подобия.

  • 'auto' поддерживается только для 'euclidean' и 'seuclidean' метрики расстояния.

  • При указании 'auto'затем программное обеспечение выбирает соответствующий масштабный коэффициент с использованием эвристической процедуры. Эта эвристическая процедура использует субдискретизацию, поэтому оценки могут варьироваться от одного вызова к другому. Чтобы воспроизвести результаты, задайте начальное число случайного числа с помощью rng перед вызовом fsulaplacian.

Пример: 'KernelScale','auto'

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

свернуть все

Индексы элементов в X упорядочен по важности элемента, возвращен как числовой вектор. Например, если idx(3) является 5, то третья по значимости особенность - пятая колонка в X.

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

Подробнее

свернуть все

График подобия

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

Если попарное расстояние Disti, j между любыми двумя узлами i и j положительное (или больше определенного порога), то граф подобия соединяет два узла с помощью ребра [2]. Ребро между двумя узлами взвешивается по попарному подобию Si, j, где Si, j = exp ((Disti, jλ) 2), для заданного значения шкалы ядер λ.

fsulaplacian строит график подобия с использованием метода ближайшего соседа. Функция соединяет точки в X это ближайшие соседи. Использовать 'NumNeighbors' для указания числа ближайших соседей.

Матрица подобия

Матрица подобия является матричным представлением графа подобия. Матрица n-на-n S = (Si, j) i, j = 1,..., n содержит попарные значения подобия между связными узлами в графе подобия. Матрица подобия графа также называется матрицей смежности.

Матрица подобия симметрична, потому что рёбра графа подобия не направлены. Значение Si,j = 0 означает, что узлы i и j графа подобия не связаны.

Матрица степеней

Матрица степени Dg представляет собой диагональную матрицу n-на-n, полученную суммированием строк матрицы подобия S. То есть i-й диагональный элемент Dg представляет собой Dg (i, i) =∑j=1nSi,j.

Лапласианская матрица

Матрица Лапласа, которая является одним из способов представления графа подобия, определяется как разность между матрицей степени Dg и матрицей подобия S.

L = Dg − S.

Алгоритмы

свернуть все

Лапласианский счёт

fsulaplacian функция ранжирует признаки, используя оценки Лапласа [1], полученные из ближайшего соседнего графа подобия.

fsulaplacian вычисляет значения в scores следующим образом:

  1. Для каждой точки данных в X, определите локальную окрестность, используя метод ближайшего соседа, и найдите попарные расстояния Disti, j для всех точек i и j в окрестности.

  2. Преобразуйте расстояния до матрицы подобия S использование ядерного преобразования Сай, j=exp (− (Disti, jσ) 2), где σ - коэффициент пропорциональности для ядра, как определено 'KernelScale' аргумент пары имя-значение.

  3. Центрируйте каждый элемент, удалив его среднее значение.

    x˜r=xr−xrTDg11TDg11,

    где xr - элемент rth, Dg - матрица степеней и 1T=[1,⋯,1]T.

  4. Вычислите оценку sr для каждой функции.

    sr=x˜rTSx˜rx˜rTDgx˜r.

Обратите внимание, что [1] определяет оценку Лапласа как

Lr=x˜rTLx˜rx˜rTDgx˜r=1−x˜rTSx˜rx˜rTDgx˜r,

где L - матрица Лапласа, определяемая как разность между Dg и S. fsulaplacian функция использует только второй член этого уравнения для значения оценки scores чтобы большое значение оценки указывало на важный признак.

Выбор элементов с помощью оценки Лапласа согласуется с минимизацией значения

∑i,j (xir xjr) 2Si,jVar (xr),

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

Ссылки

[1] Он, Х., Д. Кай и П. Нийоги. «Лапласианская оценка для выбора элементов». Процедуры NIPS. 2005.

[2] Фон Луксбург, У. «Учебное пособие по спектральной кластеризации». Статистика и вычислительный журнал. Vol.17, номер 4, 2007, стр. 395-416.

Представлен в R2019b