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

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

Как всегда, для тех, кто в основном пытается решить свою проблему, есть команды и код:

Чтобы установить kydavra, просто напишите в терминале следующую команду:

pip install kydavra

Теперь вы можете импортировать селектор и применить его к своему набору данных следующим образом:

from kydavra import ChiSquaredSelector
selector = ChiSquaredSelector()
new_columns = selector.select(df, ‘target’)

Чтобы проверить это, давайте применим его к Набору данных Heart Disease UCI с небольшими изменениями. Вместо того, чтобы сохранять все функции, мы удалим числовые столбцы. Таким образом, наш новый набор данных будет состоять только из следующих функций:

sex, cp, fbs, restecg, exang, slope, ca and thal

Итак, поскольку я выбрал алгоритм SVC, и до выбора функции cross_val_score был:

0.6691582491582491

Но после применения ChiSquaredSelector cross_val_score станет:

0.8452525252525251

Сохранение следующих функций: sex, cp, exang, slope, ca, thal.

Итак, как это работает?

Итак, как и в случае с другими селекторами, ChiSquaredSelector был вдохновлен статистикой, конечно, из Chi2-test. В качестве p-значений критерий Chi2 используется для подтверждения или опровержения нулевой гипотезы. Просто напомнить:

Нулевая гипотеза - это общее утверждение, что нет никакой связи между двумя измеряемыми явлениями (или также говорящими характеристиками).

Итак, чтобы определить, связаны ли функции, нам нужно посмотреть, можем ли мы отклонить нулевую гипотезу. Технически говоря, ChiSquaredSelector принимает значения p, полученные при вычислении chi2-s. Просто чтобы резюмировать.

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

Таким образом, устанавливая уровень значимости (параметр ChiSquaredSelector), мы итеративно исключаем признаки с наивысшими p-значениями.

БОНУС!

Если вас интересует, почему селектор выбрал одни функции, а другие пропустили, вы всегда можете построить график процесса выбора функций. ChiSquaredSelector имеет 2 функции построения графика: одну для Chi2, а другую - для p-значений:

selector.plot_chi2()

и для p-значений:

selector.plot_p_value()

Каждая функция имеет следующие параметры:

  • title - название сюжета.
  • save - логическое значение, True означает, что он сохранит график, а False - нет. По умолчанию установлено значение false.
  • file_path - путь к файлу вновь созданного сюжета.

Если вы хотите глубже изучить такие понятия, как нулевая гипотеза, Chi2 - тест и p-значения, или как работает этот выбор функций, ниже у вас есть список ссылок.

Если вы хотите глубже понять, как работает хи-квадрат, я настоятельно рекомендую ссылки в конце статьи. Если вы пробовали kydavra, я предлагаю вам оставить отзыв и поделиться своим опытом использования, бросив ответ на эту форму.

Сделано с ❤ от Sigmoid.

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