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 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

См. также