Учебник по R. Изучение и визуализация данных
Во второй части этой серии руководств вы изучите образец данных и создадите несколько графиков. Далее вы узнаете, как сериализовать графические объекты на Python, а затем десериализовать эти объекты и создать графики.
Во второй части этой серии руководств вы изучите образец данных, а затем создаете несколько графиков с помощью универсальных функций barplot и hist в базовом R.
Цель этой статьи — показать, как вызывать функции R из Transact-SQL в хранимые процедуры и сохранять результаты в форматах файлов приложения.
- Создание хранимой процедуры с помощью barplot для построения диаграммы R в виде данных типа varbinary. Использование bcp для экспорта двоичного потока в файл изображения.
- Создание хранимой процедуры с помощью hist для построения диаграммы и сохранения результатов в формате JPG и PDF.
Поскольку визуализация является мощным инструментом для понимания формы и распространения данных, R предоставляет ряд функций и пакетов для создания гистограмм, точечных диаграмм, блочных диаграмм и других типов диаграмм для исследования данных. Как правило, изображения в R создаются с помощью устройства R для вывода графики. Выходные данные можно записать и сохранить с типом данных varbinary для отрисовки в приложении. Изображения можно также сохранять в любом из поддерживаемых форматов файлов (JPG, PDF и т. д.).
Работая с этой статьей, вы узнаете о следующем.
- Изучение образца данных
- Создание графиков с помощью языка R в T-SQL
- Выходные графики в нескольких форматах файлов
В первой части были установлены необходимые компоненты и восстановлена демонстрационная база данных.
В третьей части вы узнаете, как создавать функции из необработанных данных с помощью функции Transact-SQL. Затем вы вызовите эту функцию из хранимой процедуры, чтобы создать таблицу, содержащую значения характеристик.
В четвертой части вы научитесь загружать модули и вызывать необходимые функции для создания и обучения модели с помощью хранимой процедуры SQL Server.
Из пятой части вы узнаете, как ввести в эксплуатацию модели, которые были обучены и сохранены в соответствии с инструкциями в четвертой части.
Изучение данных
Разработка решения для обработки и анализа данных обычно связана с большим числом операций по анализу и визуализации данных. Для начала немного изучите образец данных, если вы это еще не сделали.
В исходном общедоступном наборе данных идентификаторы такси и записи о поездках были предоставлены в отдельных файлах. Однако, чтобы образец данных было удобнее использовать, два исходных набора данных были объединены по столбцам medallion, hack_license, и pickup_datetime. Кроме того, была произведена выборка записей с целью получить 1 % от их общего числа. Полученный набор данных содержит 1 703 957 строк и 23 столбца.
Идентификаторы такси
В столбце medallion представлены уникальные идентификационные номера такси.
В столбце hack_license содержатся номера лицензий таксистов (без указания имен).
Записи о поездках и оплате
Каждая запись о поездке включает сведения о местах посадки и высадки, а также о расстоянии поездки.
Каждая запись об оплате включает такие сведения, как тип оплаты, общий размер платежа и размер чаевых.
Последние три столбца можно использовать для различных задач машинного обучения. Столбец tip_amount содержит непрерывный ряд числовых значений и может использоваться в качестве столбца меток для регрессионного анализа. Столбец tipped содержит значения "Да" или "Нет" и используется для двоичной классификации. Столбец tip_class содержит несколько меток классов и поэтому может использоваться в качестве метки для задач многоклассовой классификации.
В этом пошаговом руководстве демонстрируется только задача двоичной классификации. Вы можете самостоятельно попробовать создать модели для двух других задач машинного обучения: регрессии и многоклассовой классификации.
Все значения, используемые для столбцов меток, основаны на столбце tip_amount с применением следующих бизнес-правил.
Class 1: tip_amount > $0 and tip_amount <= $5
Class 2: tip_amount > $5 and tip_amount <= $10
Class 3: tip_amount > $10 and tip_amount <= $20
Создание графиков с помощью языка R в T-SQL
Начиная с SQL Server 2019, механизм изоляции требует предоставления соответствующих разрешений каталогу, в котором хранится файл графика. Дополнительные сведения о настройке этих разрешений см. в разделе Разрешения для файлов программы | SQL Server 2019 в Windows: изменения в изоляции в Службах машинного обучения.
Чтобы создать график, используйте функцию R barplot . На этом шаге выполняется построение гистограммы на основе данных, полученных из запроса Transact-SQL. Эту функцию можно включить в хранимую процедуру RPlotHistogram.
В SQL Server Management Studio в обозревателе объектов щелкните правой кнопкой мыши базу данных NYCTaxi_Sample и выберите пункт Создать запрос. Также можно выбрать Создать записную книжку в меню Файл Azure Data Studio и подключиться к базе данных.
Вставьте следующий скрипт для создания хранимой процедуры, которая строит гистограмму. Этому примеру задано имя RPlotHistogram.
В этом скрипте необходимо обратить внимание на следующие ключевые моменты.
Переменная @query определяет текст запроса ( 'SELECT tipped FROM nyctaxi_sample' ), который передается в скрипт R в качестве аргумента входной переменной @input_data_1 . Для скриптов R, которые выполняются в виде внешних процессов, требуется сопоставление "один-к-одному" между входными данными скрипта и входными данными системной хранимой процедуры sp_execute_external_script, запускающей сеанс R на SQL Server.
В скрипте R переменная ( image_file ) определяется для хранения изображения.
Функция barplot вызывается для создания графика.
Для устройства R задается значение off, так как эта команда выполняется в виде внешнего скрипта в SQL Server. Обычно при использовании высокоуровневой команды построения диаграммы в среде R открывается графическое окно, называемое устройством. Если вы записываете данные в файл или обрабатываете результат каким-либо иным способом, устройство можно отключить.
Графический объект R сериализуется в кадр данных R для вывода.
Выполнение хранимой процедуры и экспорт двоичных данных в файл изображения с помощью служебной программы bcpЭта хранимая процедура возвращает изображение в виде потока данных varbinary, которые, очевидно, нельзя просмотреть напрямую. Однако вы можете использовать служебную программу bcp для получения данных varbinary и сохранения их в виде файла изображения на клиентском компьютере.
В среде Среда Management Studioвыполните следующую инструкцию:
Результаты
Откройте окно командной строки PowerShell и выполните следующую команду, указав в качестве аргументов соответствующие имя экземпляра, имя базы данных, имя пользователя и учетные данные. Пользователи, которые используют удостоверения Windows, могут заменить -U и -P на -T.
В параметрах команды bcp учитывается регистр.
Если подключение успешно установлено, появится запрос на ввод дополнительных сведений о формате графического файла.
Нажимайте клавишу ВВОД, чтобы принять значения по умолчанию, за исключением указанных ниже изменений.
Для длины префикса графика поля введите значение 0.
Введите Y , если необходимо сохранить выходные параметры для повторного использования в будущем.
Результаты
Если сохранить сведения о формате в файл (bcp.fmt), программа bcp создаст определение формата, которое можно применять к схожим командам в дальнейшем, не получая запросы на задание параметров формата графического файла. Чтобы использовать файл формата, добавьте -f bcp.fmt в конец любой командной строки после аргумента пароля.
Выходной файл будет создан в том же каталоге, в котором выполнялась команда PowerShell. Чтобы просмотреть диаграмму, просто откройте файл plot.jpg.
Создание хранимой процедуры с помощью hist
Как правило, специалисты по анализу создают несколько визуализаций, чтобы рассмотреть данные с разных сторон. В этом примере вы создадите хранимую процедуру с именем RPlotHist для построения гистограмм, точечных и других диаграмм R в форматах JPG и PDF.
Эта хранимая процедура использует функцию hist для создания гистограммы, экспортируя двоичные данных в популярные форматы, такие как JPG, PDF и PNG.
В SQL Server Management Studio в обозревателе объектов щелкните правой кнопкой мыши базу данных NYCTaxi_Sample и выберите пункт Создать запрос.
Вставьте следующий скрипт для создания хранимой процедуры, которая строит гистограмму. Этому примеру задано имя RPlotHist.
В этом скрипте необходимо обратить внимание на следующие ключевые моменты.
Выходные данные запроса SELECT в хранимой процедуре сохраняются в кадре данных R по умолчанию ( InputDataSet ). После этого можно вызывать различные функции построения диаграмм R для создания графических файлов. Встроенный скрипт R по большей части представляет собой параметры для этих графических функций, таких как plot и hist .
Для устройства R задается значение off, так как эта команда выполняется в виде внешнего скрипта в SQL Server. Обычно при использовании высокоуровневой команды построения диаграммы в среде R открывается графическое окно, называемое устройством. Если вы записываете данные в файл или обрабатываете результат каким-либо иным способом, устройство можно отключить.
Все файлы сохраняются в локальной папке C:\temp\Plots. Папка назначения определяется аргументами, предоставляемыми скрипту R в рамках хранимой процедуры. Чтобы вывести файлы в другую папку, измените значение переменной mainDir в скрипте R, встроенном в хранимую процедуру. Скрипт также можно изменить так, чтобы данные выводились в других форматах, в большее количество файлов и т. д.
Выполнение хранимой процедурыВыполните следующую инструкцию, чтобы экспортировать двоичные данные диаграммы в форматы файлов JPEG и PDF.
Результаты
Числа в именах файлов создаются случайным образом, чтобы исключить ошибку при попытке записи в существующий файл.
Просмотр выходных данныхЧтобы просмотреть диаграмму, откройте папку назначения и просмотрите файлы, созданные кодом R в хранимой процедуре.
Перейдите в папку, указанную в сообщении STDOUT (в примере это C:\temp\plots).