revoscalepy (пакет Python в Службах машинного обучения SQL Server)
Область применения: SQL Server 2017 (14.x) и более поздних версий
revoscalepy — это пакет Python от корпорации Майкрософт, который поддерживает распределенные вычисления, удаленные контексты вычислений и высокопроизводительные алгоритмы обработки и анализа данных. Этот пакет входит в состав Служб машинного обучения SQL Server.
Пакет предоставляет следующие функциональные возможности.
- локальные и удаленные контексты вычислений в системах с одной версией revoscalepy;
- функции преобразования и визуализации данных;
- функции обработки и анализа данных, масштабируемые с помощью распределенной или параллельной обработки;
- улучшенная производительность, включая использование библиотек Intel Math.
Источники данных и контексты вычислений, создаваемые в revoscalepy, можно также использовать в алгоритмах машинного обучения. Общие сведения об этих алгоритмах см. в статье microsoftml Python module in SQL Server (Модуль Python microsoftml в SQL Server).
Полная справочная документация
Пакет revoscalepy распространяется в нескольких продуктах Майкрософт, но его использование не зависит от того, получили ли вы его в SQL Server или в другом продукте. Благодаря сходству функций документация по отдельным функциям revoscalepy опубликована только в одном разделе в справочнике по Python. Если для конкретных продуктов функции будут действовать иначе, выявленные расхождения будут приведены на странице справки по функциям.
Версии и платформы
Модуль revoscalepy основан на Python 3.5 и доступен только при установке одного из следующих продуктов или скачиваемых файлов Майкрософт:
- Службы машинного обучения SQL Server
- Клиентские библиотеки Python для клиента обработки и анализа данных
Примечание.
В SQL Server 2017 полные версии выпусков продуктов доступны только для Windows. В SQL Server 2019 и более поздних версий пакет revoscalepy поддерживает Windows и Linux.
Функции по категориям
Чтобы можно было понять, как использовать каждую функцию, в этом разделе приводится описание функций по категориям. Для поиска функций в алфавитном порядке можно воспользоваться оглавлением.
1. Источники данных и вычисления
revoscalepy содержит функции для создания источников данных и настройки расположения или контекста вычисления, в котором выполняются вычисления. Функции, относящиеся к сценариям SQL Server, приведены в таблице ниже.
В некоторых случаях SQL Server и Python используют разные типы данных. Список сопоставлений между типами данных SQL и Python см. в разделе о типах данных Python и SQL.
Function | Description |
---|---|
RxInSqlServer | Создание объекта контекста вычисления SQL Server для отправки вычислений в удаленный экземпляр. Несколько функций revoscalepy принимают контекст вычисления в качестве аргумента. Пример переключения контекста см. в статье о создание модели с помощью пакета revoscalepy. |
RxSqlServerData | Создание объекта данных на основе запроса или таблицы SQL Server. |
RxOdbcData | Создание источника данных на основе соединения ODBC. |
RxXdfData | Создание источника данных на основе локального XDF-файла. XDF-файлы часто используются для разгрузки данных в памяти на диск. XDF-файл может быть полезен при работе с объемом данных, превышающим объем передаваемых данных из базы данных в одном пакете, или же превышающим допустимый объем данных в памяти. Например, если вам приходится часто перемещать большие объемы данных из базы данных на локальную рабочую станцию, то вместо того, чтобы выполнять запросы к базе данных для каждой операции R, вы можете использовать XDF-файл как кэш, чтобы сохранить данные локально, а затем работать с ними в рабочей области R. |
Совет
Если вы не знакомы с концепциями источников данных или контекстов вычислений, рекомендуется начать с изучения распределенных вычислений.
2. Работа с данными (ETL)
Function | Description |
---|---|
rx_import | Импорт данных в XDF-файл или кадр данных. |
rx_data_step | Преобразование данных из набора входных данных в набор выходных данных. |
3. Обучение и формирование сводных данных
Function | Description |
---|---|
rx_btrees | Подбор деревьев принятия решений со стохастическим градиентным усилением |
rx_dforest | Подбор лесов принятия решений по классификации и регрессии |
rx_dtree | Подбор деревьев классификации и регрессии |
rx_lin_mod | создание модели линейной регрессии; |
rx_logit | Создание модели машинного обучения с помощью R |
rx_summary | Создание однозначных сводок по объектам в revoscalepy. |
Кроме того, для реализации дополнительных подходов следует изучить функции в microsoftml.
4. Функции оценки
Function | Description |
---|---|
rx_predict | Создает прогнозы на основе обученной модели и может использоваться для оценки в реальном времени. |
rx_predict_default | Вычисление прогнозируемых значений и остатков с помощью объектов rx_lin_mod и rx_logit. |
rx_predict_rx_dforest | Вычисление прогнозируемых или подогнанных значений для набора данных на основе объектов rx_dforest или rx_btrees. |
rx_predict_rx_dtree | Вычисление прогнозируемых или подогнанных значений для набора данных на основе объекта rx_dtree. |
Работа с revoscalepy
Функции в revoscalepy вызываются в коде Python, инкапсулированном в хранимые процедуры. Большинство разработчиков создают решения revoscalepy локально, а затем переносят готовый код Python в хранимые процедуры, отрабатывая, таким образом, процедуру развертывания.
При локальном выполнении скрипт Python обычно запускается из командной строки или из среды разработки Python с указанием контекста вычисления SQL Server с помощью одной из функций revoscalepy. Удаленный контекст вычисления можно использовать для всего кода или для отдельных функций. Например, может потребоваться разгрузить обучение модели на сервер, чтобы работать с актуальными данными и исключить перемещение данных.
Когда вы будете готовы инкапсулировать скрипт Python в хранимую процедуру sp_execute_external_script, рекомендуется переписать код и оформить его в виде функции, которая содержит четко определенные входные и выходные данные.
Входные и выходные данные должны быть кадрами данных Pandas. После этого вы сможете вызывать хранимую процедуру из любого клиента, который поддерживает T-SQL, без труда передавать запросы SQL в качестве входных данных и сохранять результаты в таблицах SQL. Пример см. в статье об анализе данных с помощью Python для разработчиков SQL.
Использование revoscalepy с microsoftml
Функции Python для microsoftml интегрированы с контекстами вычислений и источниками данных, предоставленными в revoscalepy. При вызове функций из microsoftml, например при определении и обучении модели, функции revoscalepy можно использовать для выполнения кода Python в локальной среде или в удаленном контексте вычисления SQL Server.
В следующем примере показан синтаксис импорта модулей в коде Python. Затем вы можете ссылаться на отдельные нужные функции.
from microsoftml.modules.logistic_regression.rx_logistic_regression import rx_logistic_regression
from revoscalepy.functions.RxSummary import rx_summary
from revoscalepy.etl.RxImport import rx_import_datasource