Довольно часто мы слышим вопрос от пользователей: «Можно ли использовать машинное обучение в SAYMON?» — и каждый раз отвечаем: «Можно!». Часто этот вопрос связан с принципиальной возможностью использования методов машинного анализа накопленных во времени данных, и ответ действительно положительный.
Мы все достаточно плотно изучали математику и понимаем, что вычисление средних, минимальных, максимальных и среднеквадратических отклонений на периоде не представляет особых сложностей. Часто достаточно написать несложную программу для анализа доступных данных. Хорошо также использовать накопленный человечеством аппарат, и мы начнем публиковать маленькие рецепты, которые могут помочь нашим клиентам и партнёрам.
Продемонстрируем, как можно начать совместное использование языка 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 это не единственная возможность для работы с данными — постепенно будем писать о разном.