fsulaplacian

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

Описание

пример

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 -by 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'

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

'spearman'

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

distfun

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

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

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

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

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

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

Для получения дополнительной информации см. «Метрики расстояния».

Когда вы используете 'seuclidean', 'minkowski', или 'mahalanobis' distance metric, можно задать дополнительный аргумент пары "имя-значение" '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' или положительная скалярная величина. Программа использует коэффициент шкалы, чтобы преобразовать расстояния к измерениям подобия. Для получения дополнительной информации см. «График подобия».

  • The '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 -by n S=(Si,j)i,j=1,,n содержит попарные значения подобия между связанными узлами в графике подобия. Матрица подобия графика также называется матрицей смежности.

Матрица подобия симметрична, потому что ребра графика подобия не имеют направления. Значение Si,j = 0 означает, что узлы < reservedrangesplaceholder1 > и < reservedrangesplaceholder0 > графика подобия не связаны.

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

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

Матрица Лапласа

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

L=DgS.

Алгоритмы

свернуть все

Лаплакский счет

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

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

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

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

  3. Центрируйте каждую функцию путем удаления среднего значения.

    x˜r=xrxrTDg11TDg11,

    где xr - r-й функция, Dg - матрица степеней, и1T=[1,,1]T.

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

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

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

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

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

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

i,j(xirxjr)2Si,jVar(xr),

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

Ссылки

[1] He, X., D. Cai, and P. Niyogi. Laplacian Счета for Feature Selection (неопр.) (недоступная ссылка) Материалы NIPS. 2005.

[2] Von Luxburg, U. «A Tutorial on Spectral Clustering». Журнал статистики и вычислений. Vol.17, № 4, 2007, с. 395-416.

Введенный в R2019b