Выбор признаков — действительно важная задача, когда речь идет о сложных данных. Один из методов, который мог бы помочь нам справиться с этим, — алгоритм MultiSURF, то есть Алгоритм на основе рельефа (RBA) — метод индивидуальной оценки фильтра.

Алгоритм MultiSURF использует алгоритм Relief, но отличается созданием порога, определяющего среднее попарное расстояние между целевым экземпляром и всеми остальными, в отличие от среднего значения всех пар экземпляров в данных. Таким образом, у него больше шансов выбрать лучшие функции

Использование MultiSURF из библиотеки Kydavra

Вам нужно сначала установить Kydavra, чтобы волшебство MultiSURF произошло:

pip install kydavra

Если он уже установлен, не забудьте обновить его:

pip install — upgrade kydavra

Далее нам нужно будет импортировать модель, создать селектор, а затем применить его к нашему набору данных:

from kydavra import MultiSURFSelector
msrf = MultiSURFSelector()
selected_cols = msrf.select(df,'target')

Функция выбора принимает фрейм данных и целевой столбец в качестве параметров. Сам селектор — MultiSURFSelector — принимает следующие параметры:

  • n_neighbors ( int, default = 7): количество соседей, которые следует учитывать при присвоении оценок важности объекта.
  • n_features ( int, default = 5): количество основных объектов (в соответствии с оценкой рельефа), которые необходимо сохранить после применения выбора объектов.

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

Вот пример:

Мы проверим производительность на наборе данных Heart Disease UCI.

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

['age' 'sex' 'cp' 'trestbps' 'chol' 'fbs' 'restecg' 'thalach' 'exang' 'oldpeak' 'slope' 'ca' 'thal']

Мы получаем показатель точности, равный 0,7973568281938326.

После использования MultiSURFSelector с сохранением 9 функций мы получаем следующие функции:

['fbs', 'exang', 'sex', 'thal', 'slope', 'restecg', 'ca', 'cp', 'oldpeak']

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

Заключение

Использование MultiSURFSelector может значительно улучшить вашу задачу по выбору объектов и, таким образом, повысить показатель точности, к которому вы так стремитесь.

Сделано с помощью ❤ от Sigmoid.

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

Полезные ссылки:

Подпишитесь на нас: