Читаем данные из SAYMON в R

Posted on Posted in Machine Learning, Technology, Статьи

Довольно часто мы слышим вопрос от пользователей: «Можно ли использовать машинное обучение в SAYMON?» — и каждый раз отвечаем: «Можно!». Часто этот вопрос связан с принципиальной возможностью использования методов машинного анализа накопленных во времени данных, и ответ действительно положительный.

Мы все достаточно плотно изучали математику и понимаем, что вычисление средних, минимальных, максимальных и среднеквадратических отклонений на периоде не представляет особых сложностей. Часто достаточно написать несложную программу для анализа доступных данных. Хорошо также использовать накопленный человечеством аппарат, и мы начнем публиковать маленькие рецепты, которые могут помочь нашим клиентам и партнёрам.

R_logo.svg
Продемонстрируем, как можно начать совместное использование языка R и SAYMON

Начнём с простого получения данных из платформы SAYMON методами языка R.

Первое, что нам понадобится, это стандартные библиотеки для подгрузки данных.

> library(bitops)
> library(RCurl)
> library(jsonlite)

Используя пару «имя пользователя» и «пароль», получаем данные из SAYMON:

> localdata <- getURL(«https://saas.saymon.info/node/api/objects/5757ea49826689e13eee3e15/history?from=1514405610845&to=1514409210999&downsample=1m-avg&metrics%5B%5D=stdout.Minute», userpwd=»demo:demo», httpauth = 1L)

Превратим полученные данные в объект для возможности дальнейших манипуляций:

> localjson<-fromJSON(localdata)

Запишем в массив значения, расположенные на временной оси:

> tsarr<-ts(localjson[[1]]$dps)

Для понимания, что у нас всё оказалось в правильном массиве, распечатаем его:

> for (i in 1:length(tsarr)) { print(paste(tsarr[[i]][1],» «,tsarr[[i]][2])); }

Результат:

[1] «1514405700000 15»
[1] «1514405820000 17»
[1] «1514405940000 19»
[1] «1514406060000 21»
[1] «1514406180000 23»
[1] «1514406300000 25»
[1] «1514406480000 27»
[1] «1514406600000 30»
[1] «1514406720000 32»
[1] «1514406840000 34»
[1] «1514406960000 36»
[1] «1514407080000 38»
[1] «1514407200000 40»
[1] «1514407320000 42»
[1] «1514407440000 44»
[1] «1514407560000 46»
[1] «1514407680000 48»
[1] «1514407860000 50»
[1] «1514407980000 53»
[1] «1514408100000 55»
[1] «1514408220000 57»
[1] «1514408340000 59»
[1] «1514408460000 1»
[1] «1514408580000 3»
[1] «1514408700000 5»
[1] «1514408820000 7»
[1] «1514408940000 9»
[1] «1514409120000 11»

Дальнейшие манипуляции с данными оставляем для следующих заметок.
Материалы для чтения — Time Series Analysis with R.
Отметим, что R это не единственная возможность для работы с данными — постепенно будем писать о разном.