Важность перестановки функций с помощью eli5 | Навстречу AI

Как использовать библиотеку scikit-learn «eli5» для вычисления важности перестановки?

Понимание работы библиотеки scikit-learn ‘eli5’ для вычисления важности функций в образце набора данных о жилье и интерпретации его результатов

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

Но они не знают, какие особенности их модели считают важными?

Для ответа на вышеупомянутый вопрос важна перестановка.

Что это?

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

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

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

Должен ли я вычислять важность данных обучения или тестирования (данные проверки)?

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

eli5 - библиотека scikit-learn: -

eli5 - это обучающая библиотека scikit, используемая для вычисления важности перестановок.

осторожность перед использованием eli5: -

1. Важность перестановки вычисляется после подбора модели.

2. Мы всегда вычисляем важность перестановки на тестовых данных (данные проверки).

3. Вывод eli5 в формате HTML. Таким образом, мы можем использовать его только в блокноте ipython (например, блокнот Jupiter, ядро ​​google collab и kaggle и т. Д.).

А теперь давайте проверим коды 😋

Я построил элементарную модель (RandomForestRegressor) для прогнозирования продажной цены набора данных о жилье.
Это хороший пример набора данных для демонстрации важности перестановки, потому что этот набор данных имеет множество функций.
Итак, , мы можем видеть, какие функции оказывают влияние при прогнозировании значений, а какие нет.

Теперь мы используем библиотеку «eli5» для расчета важности перестановки.

вы можете увидеть результат выполнения приведенного выше кода ниже: -

Результаты интерпретации: -

Функции имеют убывающую важность в порядке сверху вниз.
Первое число в каждой строке показывает снижение производительности модели из-за перетасовки этой функции.
Второе число является мерой случайности снижения производительности для различных перетасовок столбца функций.
generalQual (общее качество) набора данных о жилье оказывает наибольшее влияние на модель при прогнозировании продажной цены.

Вы можете получить набор данных о жилье в формате .csv в моем профиле GitHub
ССЫЛКА: - https://github.com/abhinavsp0730/housing_data/blob/master/home-data -for-ml-course.zip

Вы также можете получить файл .ipnyb (ядро kaggle) из моего профиля GitHub
ССЫЛКА: -

Https://github.com/abhinavsp0730/housing_data/blob/master/kernel659579854a(2).ipynb

СПАСИБО

Если вам понравилась моя статья, хлопайте в ладоши и подписывайтесь на меня ❤️.