Pull to refresh
3
0
Казаков Денис @Mind08

Data scientist

Send message

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

Level of difficultyEasy
Reading time2 min
Views3.6K

Уведомление о возможности ускорить работу появляется при установке 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

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

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments7

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

Level of difficultyMedium
Reading time5 min
Views5.6K

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

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

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

Читать далее
Total votes 5: ↑4 and ↓1+7
Comments4

Information

Rating
Does not participate
Registered
Activity

Specialization

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