Published on

July 18, 2020

Создание и использование моделей машинного обучения в SQL Server 2017

Сервисы машинного обучения SQL Server 2017 предоставляют возможность использования машинного обучения в SQL Server путем интеграции R и Python. В этой статье мы рассмотрим, как создавать и использовать модели машинного обучения в SQL Server 2017.

Прежде чем мы углубимся в детали, важно понимать, что машинное обучение включает в себя много статистики и исследования данных. Первый шаг в любом анализе машинного обучения – исследование данных и выбор подходящей модели машинного обучения. SQL Server предоставляет различные функции машинного обучения, которые можно использовать для создания прогностических моделей.

Давайте начнем с создания модели машинного обучения в SQL Server 2017. Мы будем использовать R и T-SQL для разработки и хранения модели. Сначала нам нужно создать таблицу для хранения модели. Таблица должна иметь как минимум два поля – имя модели и определение модели. Вот пример того, как создать таблицу:

CREATE TABLE ml_models (
   model_name varchar(30) not null default('default model') primary key,
   model varbinary(max) not null);

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

CREATE PROC linear_model
AS
BEGIN
EXEC sp_execute_external_script
      @language = N'R'
    , @script = N'
         Celsius <- 1:10
         Fahrenheit <- ((Celsius * 9) / 5) + 32
         DF <- data.frame(Celsius, Fahrenheit)
         linearmodel <- rxLinMod(formula = Fahrenheit ~ Celsius, data = DF);
         trained_model <- data.frame(payload = as.raw(serialize(linearmodel, connection=NULL)));
    '
    , @output_data_1_name = N'trained_model'
    WITH RESULT SETS ((model varbinary(max)));
END

После создания модели мы можем вставить ее в таблицу ml_models с помощью следующего скрипта:

INSERT INTO ml_models (model)
EXEC linear_model

Теперь, когда у нас есть обученная модель, мы можем протестировать ее, чтобы проверить ее точность. Мы можем передать тестовые значения модели и проверить, правильно ли она предсказывает результат. Вот пример того, как протестировать модель:

DECLARE @CFmodel varbinary(max) = (SELECT model FROM [dbo].[ml_models] WHERE model_name = 'default model');
EXEC sp_execute_external_script
      @language = N'R'
    , @script = N'
            current_model <- unserialize(as.raw(CFmodel));
            Celcius <- c(11.5, 50)
            testDF <- data.frame(Celcius)
            predicted.temp <- rxPredict(current_model, testDF);
            OutputDataSet <- cbind(testDF$Celcius, predicted.temp);
            '
    , @params = N'@CFmodel varbinary(max)'
    , @CFmodel = @CFmodel
WITH RESULT SETS ((Celcius FLOAT, Predicted_Farenheit FLOAT))

В этом примере мы извлекаем модель из таблицы ml_models и передаем ее в скрипт R. Затем мы создаем тестовые значения в градусах Цельсия и используем модель для предсказания соответствующих значений в градусах Фаренгейта. Результат предсказания отображается в конечном наборе результатов.

Важно отметить, что этот пример является только демонстрацией того, как разрабатывать, хранить и использовать модели машинного обучения в SQL Server. Фактический процесс анализа данных, выбора модели и улучшения модели намного сложнее и выходит за рамки этой статьи.

Однако процесс создания, хранения, чтения и использования моделей машинного обучения в SQL Server остается одинаковым независимо от сложности модели. Эта статья предоставляет базовое понимание того, как работать с моделями машинного обучения в SQL Server 2017 с использованием T-SQL и R.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.