Ранжирование ключевых признаков по критериям разделяемости классов
[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))
[1] Теодоридис, С. и Коутрумбас, К. (1999). Распознавание образов, Академическая пресса, 341-342.
[2] Лю, Х., Мотода, Х. (1998). Выбор функций для обнаружения знаний и интеллектуального анализа данных, Kluwer Academic Publishers.
[3] Росс, Д.Т. et.al. (2000). Систематическое изменение паттернов экспрессии генов в клеточных линиях рака человека. Генетика природы. 24 (3), 227-235.
classify | classperf | crossvalind | randfeatures | sequentialfs