Ранг функции для неконтролируемого обучения с использованием Laplacian счетов
ранжирует признаки (переменные) в idx
= fsulaplacian(X
)X
использование лапласианских счетов. Функция возвращается idx
, который содержит индексы функций, упорядоченных по функции важности. Можно использовать idx
выбрать важные функции для неконтролируемого обучения.
задает дополнительные опции, используя один или несколько аргументы пары "имя-значение". Для примера можно задать idx
= fsulaplacian(X
,Name,Value
)'NumNeighbors',10
создать график подобия с использованием 10 ближайших соседей.
Загрузите выборочные данные.
load ionosphere
Оцените функции на основе важности.
[idx,scores] = fsulaplacian(X);
Создайте штриховой график для счетов значения функции.
bar(scores(idx)) xlabel('Feature rank') ylabel('Feature importance score')
Выберите пять наиболее важных функций. Найдите столбцы этих функций в 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
X
- Входные данныеВходные данные, заданные как n -by p числовая матрица. Строки X
соответствуют наблюдениям (или точкам), а столбцы соответствуют функциям.
Программное обеспечение лечит NaN
s в X
как отсутствующие данные и игнорирует любую строку X
содержит, по меньшей мере, один NaN
.
Типы данных: single
| double
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'NumNeighbors',10,'KernelScale','auto'
задает количество ближайших соседей 10, и коэффициент шкалы ядра как 'auto'
.'Similarity'
- Матрица подобия[]
(пустая матрица) (по умолчанию) | симметричная матрицаМатрица подобия, заданная как разделенная разделенными запятой парами, состоящая из 'Similarity'
и n -by n симметричная матрица, где n - количество наблюдений. Матрица подобия (или матрица смежности) представляет входные данные путем моделирования отношений локального соседства между точками данных. Значения в матрице подобия представляют ребра (или связи) между узлами (точками данных), которые связаны в графике подобия. Для получения дополнительной информации см. «Матрица подобия».
Если вы задаете 'Similarity'
значение, тогда вы не можете задать любой другой аргумент пары "имя-значение". Если вы не задаете 'Similarity'
значение, затем программа вычисляет матрицу подобия, используя опции, заданные другими аргументами пары "имя-значение".
Типы данных: single
| double
'Distance'
- Метрика расстоянияМетрика расстояния, заданная как разделенная разделенными запятой парами, состоящая из 'Distance'
и вектор символов, строковый скаляр или указатель на функцию, как описано в этой таблице.
Значение | Описание |
---|---|
'euclidean' | Евклидово расстояние (по умолчанию) |
'seuclidean' | Стандартизированное евклидово расстояние. Каждое различие координат между наблюдениями масштабируется путем деления на соответствующий элемент стандартного отклонения, вычисленного из |
'mahalanobis' | Расстояние Махаланобиса с помощью выборочной ковариации |
'cityblock' | Расстояние между блоками |
'minkowski' | Расстояние Минковского. Экспонента по умолчанию является 2. Используйте |
'chebychev' | Расстояние Чебычева (максимальное различие координат) |
'cosine' | Один минус косинус включенного угла между наблюдениями (обрабатывается как векторы) |
'correlation' | Один минус корреляция выборки между наблюдениями (рассматривается как последовательности значений) |
'hamming' | Расстояние Хемминга, которое является процентом координат, которые различаются |
'jaccard' | Один минус коэффициент Жаккарда, который является процентом ненулевых координат, которые различаются |
'spearman' | Один минус выборки корреляции ранга Спирмена между наблюдениями (рассматриваются как последовательности значений) |
| Пользовательский указатель на функцию расстояния. Функция расстояния имеет вид function D2 = distfun(ZI,ZJ) % calculation of distance ...
Если ваши данные не разрежены, вы обычно можете вычислить расстояние быстрее, используя встроенное расстояние вместо указателя на функцию. |
Для получения дополнительной информации см. «Метрики расстояния».
Когда вы используете 'seuclidean'
, 'minkowski'
, или 'mahalanobis'
distance metric, можно задать дополнительный аргумент пары "имя-значение" 'Scale'
, 'P'
, или 'Cov'
, соответственно, для управления метриками расстояния.
Пример: 'Distance','minkowski','P',3
задает использование метрики расстояния Минковского с экспонентом 3
.
'P'
- Экспонента для метрики расстояния Минковского2
(по умолчанию) | положительная скалярная величинаЭкспонента для метрики расстояния Минковского, заданная как разделенная разделенными запятой парами, состоящая из 'P'
и положительная скалярная величина.
Этот аргумент действителен только в том случае, если 'Distance'
является 'minkowski'
.
Пример: 'P',3
Типы данных: single
| double
'Cov'
- Ковариационная матрица для метрики расстояния Махаланобисаcov(X,'omitrows')
(по умолчанию) | положительно определенную матрицуКовариационная матрица для метрики расстояния Махаланобиса, заданная как разделенная разделенными запятой парами, состоящая из 'Cov'
и положительно определенную матрицу.
Этот аргумент действителен только в том случае, если 'Distance'
является 'mahalanobis'
.
Пример: 'Cov',eye(4)
Типы данных: single
| double
'Scale'
- Коэффициенты масштабирования для стандартизированной метрики Евклидова расстоянияstd(X,'omitnan')
(по умолчанию) | числовой вектор неотрицательных значенийМасштабные коэффициенты для стандартизированной метрики Евклидова расстояния, заданные как разделенная разделенными запятой парами, состоящая из 'Scale'
и числовой вектор неотрицательных значений.
Scale
имеет p длины (количество столбцов в X
), поскольку каждая размерность (столбец) X
имеет соответствующее значение в Scale
. Для каждой размерности X
, fsulaplacian
использует соответствующее значение в Scale
стандартизировать различие между наблюдениями.
Этот аргумент действителен только в том случае, если 'Distance'
является 'seuclidean'
.
Типы данных: single
| double
'NumNeighbors'
- Количество ближайших соседейlog(size(X,1))
(по умолчанию) | положительное целое числоКоличество ближайших соседей, используемых для построения графика подобия, заданное как разделенная разделенными запятой парами, состоящая из 'NumNeighbors'
и положительное целое число.
Пример: 'NumNeighbors',10
Типы данных: single
| double
'KernelScale'
- Масштабный коэффициент1
(по умолчанию) | 'auto'
| положительная скалярная величинаМасштабный коэффициент для ядра, заданный как разделенная разделенными запятой парами, состоящая из 'KernelScale'
и 'auto'
или положительная скалярная величина. Программа использует коэффициент шкалы, чтобы преобразовать расстояния к измерениям подобия. Для получения дополнительной информации см. «График подобия».
The 'auto'
опция поддерживается только для 'euclidean'
и 'seuclidean'
метрики расстояния.
Если вы задаете 'auto'
затем программа выбирает соответствующий масштабный коэффициент с помощью эвристической процедуры. Эта эвристическая процедура использует субдискретизацию, поэтому оценки могут варьироваться от одного вызова к другому. Чтобы воспроизвести результаты, установите начальное число случайных чисел используя rng
перед вызовом fsulaplacian
.
Пример: 'KernelScale','auto'
idx
- Индексы признаков, упорядоченных по значимости функцийИндексы функций в X
упорядоченный по значению функции, возвращенный как числовой вектор. Для примера, если idx(3)
является 5
, тогда третья по значимости функция - пятый столбец в X
.
scores
- счета функцийСчета функций, возвращенные как числовой вектор. Большое значение баллов в scores
указывает, что соответствующая функция важна. Значения в scores
имеют тот же порядок, что и функции в X
.
График подобия моделирует отношения локального соседства между точками данных в X
как неориентированный граф. Узлы в графике представляют точки данных, а ребра, которые не имеют направления, представляют связи между точками данных.
Если попарное расстояние Disti,j между любыми двумя узлами i и j положительно (или больше определенного порога), то график подобия соединяет эти два узла с помощью ребра [2]. Ребро между этими двумя узлами взвешивается попарным Si,j подобия, где , для заданного значения σ шкалы ядра.
fsulaplacian
создает график подобия с помощью метода ближайшего соседа. Функция соединяет точки в X
которые являются ближайшими соседями. Использование 'NumNeighbors'
для определения количества ближайших соседей.
Матрица подобия является матричным представлением графика подобия. Матрица n -by n содержит попарные значения подобия между связанными узлами в графике подобия. Матрица подобия графика также называется матрицей смежности.
Матрица подобия симметрична, потому что ребра графика подобия не имеют направления. Значение Si,j = 0
означает, что узлы < reservedrangesplaceholder1 > и < reservedrangesplaceholder0 > графика подобия не связаны.
Матрица Лапласа, которая является одним из способов представления графика подобия, определяется как различие между Dg матрицы степени и S матрицы подобия.
fsulaplacian
функция ранжирует функции, используя оценки Лаплака [1], полученные из графика подобия ближайшего соседа.
fsulaplacian
вычисляет значения в scores
следующим образом:
Для каждой точки данных в X
, определите локальный район с помощью метода ближайшего соседа и найдите парные расстояния для всех точек i и j в районе.
Преобразуйте расстояния в матрицу подобия
S используя преобразование ядра , где σ является фактором шкалы для ядра, заданным 'KernelScale'
аргумент пары "имя-значение".
Центрируйте каждую функцию путем удаления среднего значения.
где xr - r-й функция, Dg - матрица степеней, и.
Вычислите счет sr для каждой функции.
Обратите внимание, что [1] определяет счет Лаплака как
где L - Матрица Лапласа, заданная как различие между Dg и S. fsulaplacian
функция использует только второй член этого уравнения для значения баллов scores
так что большое значение баллов указывает на важную функцию.
Выбор функций с помощью счета Laplacian согласуется с минимизацией значения
где 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.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.