Как стать автором
Обновить
3
0
Казаков Денис @Mind08

Data scientist

Отправить сообщение

Патч от Intel для ускорения алгоритмов библиотеки scikit-learn

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров3.4K

Уведомление о возможности ускорить работу появляется при установке scikit-learn, поэтому пишу для тех, кто давно не переустанавливал эту библиотеку.

Подробное описание ускорителя – по ссылке https://intel.github.io/scikit-learn-intelex/

Ниже перечислил важные моменты и результаты испытаний по повышению производительности.

Установка

Устанавливать можно с помощью pip или conda. Важный момент: ускоритель пока не работает с версиями python 3.10 и новее, поэтому лучше ставить в окружение с версией 3.9. Например, так:

conda create -n env python=3.9 scikit-learn-intelex

Сама библиотека scikit-learn при этом устанавливается автоматически.

Работа с GPU поддерживается.

Использование

Предусмотрено несколько вариантов применения «заплатки». Например, при запуске своего приложения без изменения его кода:

python -m sklearnex my_application.py

Второй вариант – подключать ускоритель внутри приложения. В этом случае можно применять и отменять заплатку.

Важно загружать запускать ускоритель до загрузки самой библиотеки:

from sklearnex import patch_sklearn

patch_sklearn()

from sklearn import…

Если нужно отменить, то после отмены снова загружаем sklearn:

sklearnex.unpatch_sklearn()

from sklearn import …

Ограничения

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

Полный список ограничений: https://intel.github.io/scikit-learn-intelex/algorithms.html

Тест на скорость

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии7

HalvingSearch: ускорение поиска по сетке (grid search). Библиотека sklearn

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров4.6K

Подбор гиперпараметров модели – одна из самых распространенных задач в data science. Если заранее неизвестно, какими могут быть оптимальные значения, приходится искать по сетке значений. Если у нас есть m гиперпараметров и для каждого задано n возможных значений, то число вариантов равно mn и для каждого нужно обучить модель и определить ее точность. Если мы используем перекрестную проверку (cross-validation), то это число надо умножить на число частей, на которые мы разбиваем набор данных.

Есть ряд алгоритмов оптимизации поиска, например байесовский – «осмысленный» поиск, при котором рассматриваются не все возможные сочетания гиперпараметров.

Относительно недавно sklearn был реализован еще один метод – halving search.

Читать далее
Всего голосов 9: ↑8 и ↓1+7
Комментарии4

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Data Analyst, Data Scientist
От 120 000 ₽
Machine learning
Python
Keras
Pandas
R
Math statistics
Data Analysis
SQL
Git
English