Оцените функции безнадзорного изучения с помощью Лапласовых баллов
ранги показывают (переменные) в 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' | Расстояние Mahalanobis с помощью выборочной ковариации |
'cityblock' | Расстояние городского квартала |
'minkowski' | Расстояние Минковскего. Экспонента по умолчанию равняется 2. Используйте |
'chebychev' | Расстояние Чебычева (максимум координируют различие), |
'cosine' | Один минус косинус включенного угла между наблюдениями (обработанный как векторы) |
'correlation' | Один минус корреляция выборки между наблюдениями (обработанный как последовательности значений) |
'hamming' | Расстояние Хемминга, которое является процентом координат, которые отличаются |
'jaccard' | Один минус коэффициент Jaccard, который является процентом ненулевых координат, которые отличаются |
'spearman' | Один минус порядковая корреляция демонстрационного Копьеносца между наблюдениями (обработанный как последовательности значений) |
@ | Пользовательский указатель на функцию расстояния. Функция расстояния имеет форму function D2 = distfun(ZI,ZJ) % calculation of distance ...
Если ваши данные не разреженны, можно обычно вычислять расстояние более быстро при помощи встроенного расстояния вместо указателя на функцию. |
Для получения дополнительной информации смотрите Метрики Расстояния.
Когда вы используете 'seuclidean'
, 'minkowski'
, или 'mahalanobis'
метрика расстояния, можно задать дополнительный аргумент пары "имя-значение" 'Scale'
P
, или 'Cov'
, соответственно, чтобы управлять метриками расстояния.
Пример: 'Distance','minkowski','P',3
задает, чтобы использовать метрику расстояния Минковскего с экспонентой 3
.
'P'
— Экспонента для метрики расстояния Минковскего
(значение по умолчанию) | положительная скалярная величинаЭкспонента для метрики расстояния Минковскего, заданной как разделенная запятой пара, состоящая из 'P'
и положительная скалярная величина.
Этот аргумент допустим только если 'Distance'
'minkowski'
.
Пример: 'P',3
Типы данных: single
| double
'Cov'
— Ковариационная матрица для метрики расстояния Mahalanobisnancov(X)
(значение по умолчанию) | положительная определенная матрицаКовариационная матрица для метрики расстояния Mahalanobis, заданной как разделенная запятой пара, состоящая из 'Cov'
и положительная определенная матрица.
Этот аргумент допустим только если 'Distance'
'mahalanobis'
.
Пример: 'Cov',eye(4)
Типы данных: single
| double
'Scale'
— Масштабные коэффициенты для стандартизированной Евклидовой метрики расстоянияnanstd(X)
(значение по умолчанию) | числовой вектор неотрицательных значенийМасштабные коэффициенты для стандартизированной Евклидовой метрики расстояния, заданной как разделенная запятой пара, состоящая из 'Scale'
и числовой вектор неотрицательных значений.
Scale
имеет длину p (количество столбцов в X
), потому что каждая размерность (столбец) X
имеет соответствующее значение в Scale
. Для каждой размерности X
, fsulaplacian
использует соответствующее значение в Scale
стандартизировать различие между наблюдениями.
Этот аргумент допустим только если 'Distance'
'seuclidean'
.
Типы данных: single
| double
'NumNeighbors'
— Количество самых близких соседейlog(size(X,1))
(значение по умолчанию) | положительное целое числоКоличество самых близких соседей раньше создавало график подобия, заданный как разделенная запятой пара, состоящая из 'NumNeighbors'
и положительное целое число.
Пример: 'NumNeighbors',10
Типы данных: single
| double
'KernelScale'
ScaleFactor
(значение по умолчанию) | 'auto'
| положительная скалярная величинаМасштабный коэффициент для ядра, заданного как разделенная запятой пара, состоящая из 'KernelScale'
и 'auto'
или положительная скалярная величина. Программное обеспечение использует масштабный коэффициент, чтобы преобразовать расстояния до мер по подобию. Для получения дополнительной информации см. График Подобия.
'auto'
опция поддерживается только для 'euclidean'
и 'seuclidean'
метрики расстояния.
Если вы задаете 'auto'
, затем программное обеспечение выбирает соответствующий масштабный коэффициент с помощью эвристической процедуры. Эта эвристическая процедура использует подвыборку, таким образом, оценки могут варьироваться от одного вызова до другого. Чтобы воспроизвести результаты, установите seed случайных чисел с помощью 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
средние значения, что узлы i и j графика подобия не соединяются.
Матрицей степени Dg является n-by-n диагональная матрица, полученная путем подведения итогов строк матрицы подобия S. Таким образом, i th диагональный элемент Dg
Матрица Лапласа, которая является одним способом представлять график подобия, задана как различие между матрицей степени Dg и матрицей подобия S.
fsulaplacian
функционируйте функции рангов с помощью Лапласовых баллов [1] полученный из самого близкого соседнего графика подобия.
fsulaplacian
вычисляет значения в scores
можно следующим образом:
Для каждой точки данных в X
, задайте локальное окружение с помощью самого близкого соседнего метода и найдите попарные расстояния для всех точек i и j в окружении.
Преобразуйте расстояния до матрицы подобия
S с помощью преобразования ядра , где σ является масштабным коэффициентом для ядра, как задано 'KernelScale'
аргумент пары "имя-значение".
Сосредоточьте каждую функцию путем удаления ее среднего значения.
где xr является r th функция, Dg является матрицей степени, и .
Вычислите счет sr для каждой функции.
Обратите внимание на то, что [1] задает Лапласов счет как
где L является Матрица Лапласа, заданная как различие между Dg и S. fsulaplacian
функция использует только второй термин этого уравнения для значения счета scores
так, чтобы большое значение счета указало на важную функцию.
Выбор функций с помощью Лапласового счета сопоставим с минимизацией значения
где xir представляет i th наблюдение за r th функция. Минимизация этого значения подразумевает, что алгоритм предпочитает функции с большим отклонением. Кроме того, алгоритм принимает, что две точки данных важной функции близки, если и только если график подобия имеет ребро между этими двумя точками данных.
[1] Он, X., Д. Цай и П. Нииоджи. "Лапласов счет к выбору признаков". Продолжения NIPS. 2005.
[2] Фон Люксбург, U. “Пример на Спектральной Кластеризации”. Статистика и Вычисляющий Журнал. Vol.17, Номер 4, 2007, стр 395–416.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.