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 object. The axes object 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 имя аргумента и 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'

Расстояние 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

Ковариационная матрица для метрики расстояния Mahalanobis в виде разделенной запятой пары, состоящей из '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', затем программное обеспечение выбирает соответствующий масштабный коэффициент с помощью эвристической процедуры. Эта эвристическая процедура использует подвыборку, таким образом, оценки могут варьироваться от одного вызова до другого. Чтобы воспроизвести результаты, установите использование seed случайных чисел 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 средние значения, что узлы i и j графика подобия не соединяются.

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

Матрицей степени Dg является n-by-n диагональная матрица, полученная путем подведения итогов строк матрицы подобия S. Таким образом, i th диагональный элемент 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 th функция, 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 так, чтобы большое значение баллов указало на важную функцию.

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

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

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

Ссылки

[1] Он, X., Д. Цай и П. Нииоджи. "Лапласов счет к выбору признаков". Продолжения NIPS. 2005.

[2] Фон Люксбург, U. “Пример на Спектральной Кластеризации”. Статистика и Вычисляющий Журнал. Vol.17, Номер 4, 2007, стр 395–416.

Введенный в R2019b