Выбор признаков — действительно важная задача, когда речь идет о сложных данных. Один из методов, который мог бы помочь нам справиться с этим, — алгоритм 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.
Если вы пробовали кидавру, приглашаем вас поделиться своим впечатлением, заполнив эту форму.
Полезные ссылки:
Подпишитесь на нас: