exponenta event banner

rankfeatures

Ранжирование ключевых признаков по критериям разделяемости классов

Синтаксис

[IDX, Z] = rankfeatures(X, Group)
[IDX, Z] = rankfeatures(X, Group, ...'Criterion', CriterionValue, ...)
[IDX, Z] = rankfeatures(X, Group, ...'CCWeighting', ALPHA, ...)
[IDX, Z] = rankfeatures(X, Group, ...'NWeighting', BETA, ...)
[IDX, Z] = rankfeatures(X, Group, ...'NumberOfIndices', N, ...)
[IDX, Z] = rankfeatures(X, Group, ...'CrossNorm', CN, ...)

Описание

[IDX, Z] = rankfeatures(X, Group) ранжирует элементы в X использование независимого критерия оценки для бинарной классификации. X является матрицей, где каждый столбец является наблюдаемым вектором и количество строк соответствует исходному количеству признаков. Group содержит метки класса.

IDX - список индексов к строкам в X с наиболее значимыми особенностями. Z - абсолютное значение используемого критерия (см. ниже).

Group может быть числовым вектором, массивом ячеек символьных векторов или строковым вектором. numel(Group) совпадает с количеством столбцов в X, и Group должно иметь только два уникальных значения. Если он содержит какие-либо значения NaN, функция игнорирует соответствующий вектор наблюдения в X.

[IDX, Z] = rankfeatures(X, Group, ...'PropertyName', PropertyValue, ...) требования rankfeatures с необязательными свойствами, использующими пары имя/значение свойства. Можно указать одно или несколько свойств в любом порядке. Каждый PropertyName должен быть заключен в одинарные кавычки и не учитывать регистр. Эти пары имя/значение свойства следующие:

[IDX, Z] = rankfeatures(X, Group, ...'Criterion', CriterionValue, ...) задает критерий, используемый для оценки значимости каждого элемента для разделения двух помеченных групп. Возможны следующие варианты:

  • 'ttest' (по умолчанию) - абсолютное значение двухпробного t-теста с объединенной оценкой дисперсии.

  • 'entropy' - относительная энтропия, также известная как расстояние Куллбэка - Лейблера или дивергенция.

  • 'bhattacharyya' - Минимально достижимая ошибка классификации или граница Черноффа.

  • 'roc' - Площадь между кривой эмпирической рабочей характеристики приемника (ROC) и случайным наклоном классификатора.

  • 'wilcoxon' - Абсолютное значение стандартизированной u-статистики двух образцов непарного теста Уилкоксона, также известного как Манн-Уитни.

Примечание

'ttest', 'entropy', и 'bhattacharyya' предположить нормальные распределенные классы, пока 'roc' и 'wilcoxon' непараметрические тесты. Все тесты независимы от функций.

[IDX, Z] = rankfeatures(X, Group, ...'CCWeighting', ALPHA, ...) использует информацию корреляции, чтобы перевесить Z значение потенциальных элементов с использованием Z * (1-ALPHA*(RHO)), где RHO - среднее абсолютных значений коэффициента взаимной корреляции между признаком-кандидатом и всеми ранее выбранными признаками. ALPHA устанавливает весовой коэффициент. Это скалярное значение между 0 и 1. Когда ALPHA является 0 (по умолчанию) потенциальные элементы не взвешиваются. Большое значение RHO (близко к 1) перевешивает статистику значимости; это означает, что элементы, которые сильно коррелированы с уже выбранными элементами, реже включаются в выходной список.

[IDX, Z] = rankfeatures(X, Group, ...'NWeighting', BETA, ...) использует региональную информацию, чтобы перевесить Z значение потенциальных элементов с использованием Z * (1-exp(-(DIST/BETA).^2)), где DIST - расстояние (в строках) между элементом-кандидатом и ранее выбранными элементами. BETA устанавливает весовой коэффициент. Он больше или равен 0. Когда BETA является 0 (по умолчанию) потенциальные элементы не взвешиваются. Маленькое DIST (близко к 0) перевешивает статистику значимости только близких признаков. Это означает, что элементы, близкие к уже выбранным элементам, реже включаются в выходной список. Эта опция полезна для извлечения элементов из временных рядов с временной корреляцией.

BETA также может быть функцией расположения элемента, указанного с помощью @ или анонимная функция. В обоих случаях rankfeatures передает положение строки элемента в BETA() и ожидает обратно значение, большее или равное 0.

Примечание

Вы можете использовать 'CCWeighting' и 'NWeighting' вместе.

[IDX, Z] = rankfeatures(X, Group, ...'NumberOfIndices', N, ...) устанавливает количество выходных индексов в IDX. Значение по умолчанию совпадает с количеством элементов, когда ALPHA и BETA являются 0, или 20 в противном случае.

[IDX, Z] = rankfeatures(X, Group, ...'CrossNorm', CN, ...) применяет независимую нормализацию к наблюдениям для каждого элемента. Перекрестная нормализация обеспечивает сопоставимость различных характеристик, хотя это не всегда необходимо, поскольку выбранный критерий может уже учитывать это. Возможны следующие варианты:

  • 'none' (по умолчанию) - интенсивности не нормируются.

  • 'meanvar'x_new = (x - mean(x))/std(x)

  • 'softmax'x_new = (1+exp((mean(x)-x)/std(x)))^-1

  • 'minmax'x_new = (x - min(x))/(max(x)-min(x))

Примеры

свернуть все

Найдите уменьшенный набор генов, который достаточен для дифференциации клеток рака молочной железы от всех других типов рака в наборе данных t-matrix NCI60. Загрузить данные образца.

load NCI60tmatrix

Получить вектор логического индекса для клеток рака молочной железы.

BC = GROUP == 8;

Выберите элементы.

I = rankfeatures(X,BC,'NumberOfIndices',12);

Проверка элементов с помощью линейного классификатора дискриминантов.

C = classify(X(I,:)',X(I,:)',double(BC));
cp = classperf(BC,C);
cp.CorrectRate
ans =

     1

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

I = rankfeatures(X,BC,'CCWeighting',0.7,'NumberOfIndices',8);
C = classify(X(I,:)',X(I,:)',double(BC));
cp = classperf(BC,C);
cp.CorrectRate 
ans =

     1

Найдите дискриминантные пики двух групп сигналов с гауссовыми импульсами, модулированными двумя различными источниками.

load GaussianPulses
f = rankfeatures(y',grp,'NWeighting',@(x) x/10+5,'NumberOfIndices',5);
plot(t,y(grp==1,:),'b',t,y(grp==2,:),'g',t(f),1.35,'vr')

Ссылки

[1] Теодоридис, С. и Коутрумбас, К. (1999). Распознавание образов, Академическая пресса, 341-342.

[2] Лю, Х., Мотода, Х. (1998). Выбор функций для обнаружения знаний и интеллектуального анализа данных, Kluwer Academic Publishers.

[3] Росс, Д.Т. et.al. (2000). Систематическое изменение паттернов экспрессии генов в клеточных линиях рака человека. Генетика природы. 24 (3), 227-235.

Представлен до R2006a