Как применять различные методы для выбора функций с помощью пакета Xverse.

Выбор функций - это процесс, при котором вы автоматически или вручную выбираете те функции, которые больше всего влияют на вашу прогнозируемую переменную или выходные данные, которые вас интересуют.
Одна из основных причин заключается в том, что машинное обучение следует правилу «мусор вывозить», и поэтому вам нужно очень заботиться о функциях, которые скармливается модели.

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

Основные причины для применения выбора функции:

  • Это позволяет алгоритму машинного обучения тренироваться быстрее.
  • Это снижает сложность модели и упрощает интерпретацию.
  • Это повышает точность модели, если выбрано правильное подмножество.
  • Это снижает переобучение.

«Я подготовил модель, выбрав все функции, и получил точность около 65%, что не очень хорошо для прогнозной модели, и после выбора некоторых функций и разработки функций без внесения каких-либо логических изменений в мой код модели моя точность подскочила до 81%, что весьма впечатляет »- Рахил Шейх

Методы выбора характеристик предназначены для уменьшения количества функций до тех, которые считаются наиболее полезными / важными для модели, чтобы спрогнозировать целевую функцию. Доступны различные методы выбора функций, которые могут помочь вам выбрать важные функции. Самые популярные методы - это.

Вы можете узнать больше о методах выбора функций в Scikit learn library.

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

Пакет Xverse может помочь вам решить эту проблему.

«В конце концов, некоторые проекты машинного обучения успешны, а некоторые - нет. В чем разница? Несомненно, наиболее важным фактором являются используемые функции ». - Педро Домингос

Что такое Xverse?

Xverse означает X Universe, который представляет собой пакет Python для машинного обучения, помогающий специалистам по данным с преобразованием функций и выбором функций. Xverse создан Сундар Кришнан.

Как это работает?

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

Xverse использует следующие методы для выбора важных функций.

  • Информационная ценность с использованием веса доказательств.
  • Переменная важность с использованием случайного леса.
  • Рекурсивное исключение признаков.
  • Переменная Важность с использованием классификатора дополнительных деревьев.
  • Лучшие переменные хи-квадрат.
  • Выбор функции на основе L1.

Установка

Пакет требует numpy, pandas, scikit-learn, scipy и statsmodels. Кроме того, пакет протестирован на Python версии 3.5 и выше.

Выполните следующую команду, чтобы установить Xverse.

pip install xverse

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

Импортируйте важные пакеты для этой проблемы.

Загрузите набор данных ссуды.

Loan_ID
Gender
Married
Dependents
Education
Self_Employed
ApplicantIncome
CoapplicantIncome
LoanAmount
Loan_Amount_Term
Credit_History
Property_Area
Loan_Status

У нас есть 12 независимых функций и цель (Loan_Status). Вы можете прочитать описание каждой функции здесь.

Я создал простую функцию Python для обработки недостающих данных и разработки функций.

Давайте предварительно обработаем набор данных ссуды.

data = prepocessing(data)

Разделить на независимые функции и цель.

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

Я установил minimum_votes = 2, это означает, что выбираемая функция должна иметь в сумме не менее 2 голосов из шести методов выбора функции, представленных в Xverse. Функции, набравшие меньше 2 голосов, не будут учитываться.

После обучения мы можем увидеть важность функции в каждом методе выбора функции, используемом во время обучения.

В выходных данных показаны все функции и их значения для каждого метода.

Теперь давайте посмотрим, как проголосовали эти методы выбора функций.

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

Как видите, Credit_History набрал в общей сложности 6 голосов, что означает, что Credit_History является очень важной функцией для этого. Кредитная проблема. Но обе функции Пол и Самостоятельная работа набрали 0 голосов, , что означает, что мы можем пренебречь этими двумя функциями из-за очень низкого вклада в прогноз, заслуживает ли клиент получение ссуды или нет.

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

Заключение

Xverse находится в активной разработке. В настоящее время пакет xverse обрабатывает только двоичную цель.

Код этого поста доступен на Github.

Если вы узнали что-то новое или вам понравилось читать эту статью, поделитесь ею, чтобы другие могли ее увидеть. Не стесняйтесь оставлять комментарии. А пока до встречи в следующем посте! Со мной также можно связаться в Twitter @Davis_McDavid