Клиентская библиотека Azure Детектор аномалий для JavaScript версии 3.0.0-beta.5

Azure AnomalyDetector API позволяет отслеживать и обнаруживать аномалии в данных временных рядов с помощью машинного обучения.

Основные ссылки:

Основные понятия

Предоставляет AnomalyDetectorClient методы для обнаружения аномалий:

  • detectEntireSeries — обнаруживает аномалии во всем наборе данных.
  • detectLastPoint — обнаруживает аномалии в последней точке данных.
  • detectChangePoint — оценивает оценку изменений в каждой точке ряда.

Начало работы

Поддерживаемые в настоящее время среды

Чтобы получить дополнительные сведения, ознакомьтесь с нашей политикой поддержки.

Предварительные требования

Если вы используете Azure CLI, замените <your-resource-group-name> и <your-resource-name> собственными уникальными именами:

az cognitiveservices account create --kind AnomalyDetector --resource-group <your-resource-group-name> --name <your-resource-name>

Установите пакет @azure/ai-anomaly-detector.

Установите клиентскую библиотеку azure Детектор аномалий для JavaScript с помощью npm:

npm install @azure/ai-anomaly-detector

Создание и проверка подлинности AnomalyDetectorClient

Чтобы создать клиентский объект для доступа к API Детектор аномалий, вам потребуется endpoint ресурс Детектор аномалий и credential. Клиент Детектор аномалий может использовать учетные данные Azure Active Directory или учетные данные ключа API для проверки подлинности.

Конечную точку для ресурса Детектор аномалий можно найти на портале Azure, щелкнув Keys and Endpoint в меню управление ресурсами или используя приведенный ниже фрагмент кода Azure CLI:

az cognitiveservices account show --name <your-resource-name> --resource-group <your-resource-group-name> --query "endpoint"

Использование ключа API

На портале Azure перейдите к ресурсу Детектор аномалий и получите ключ API, щелкнув Keys and Endpoint в разделе Управление ресурсами, или используйте приведенный ниже фрагмент кода Azure CLI:

Примечание: Иногда ключ API называется ключом подписки или ключом API подписки.

az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>

Получив ключ API и конечную точку AzureKeyCredential , вы можете использовать класс для проверки подлинности клиента следующим образом:

const { AnomalyDetectorClient, AzureKeyCredential } = require("@azure/ai-anomaly-detector");

const client = new AnomalyDetectorClient("<endpoint>", new AzureKeyCredential("<API key>"));

Использование учетных данных Azure Active Directory

Проверка подлинности с помощью ключа API клиента используется в большинстве примеров, но вы также можете пройти проверку подлинности в Azure Active Directory с помощью [библиотеки удостоверений Azure]. Чтобы использовать поставщик DefaultAzureCredential, показанный ниже, или другие поставщики учетных данных, предоставляемые вместе с пакетом AZURE SDK, установите @azure/identity пакет :

npm install @azure/identity

Вам также потребуется зарегистрировать новое приложение AAD и предоставить доступ к Детектор аномалий, назначив "Cognitive Services User" роль субъекту-службе (обратите внимание: другие роли, например"Owner", не предоставляют необходимых разрешений, достаточно только "Cognitive Services User" для выполнения примеров и примера кода).

Задайте значения идентификатора клиента, идентификатора клиента и секрета клиента приложения AAD в качестве переменных среды: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET.

const { AnomalyDetectorClient } = require("@azure/ai-anomaly-detector");
const { DefaultAzureCredential } = require("@azure/identity");

const client = new AnomalyDetectorClient("<endpoint>", new DefaultAzureCredential());

Примеры

Обнаружение точек изменения

В этом примере показано, как обнаруживать точки изменения во всем ряду.

const { AnomalyDetectorClient, TimeGranularity } = require("@azure/ai-anomaly-detector");
const { AzureKeyCredential } = require("@azure/core-auth");

// You will need to set this environment variables in .env file or edit the following values
const apiKey = process.env["API_KEY"] || "";
const endpoint = process.env["ENDPOINT"] || "";

async function main() {
  // create client
  const client = new AnomalyDetectorClient(endpoint, new AzureKeyCredential(apiKey));

  // construct request
  const request = {
    series: [
      { timestamp: new Date("2018-03-01T00:00:00Z"), value: 32858923 },
      { timestamp: new Date("2018-03-02T00:00:00Z"), value: 29615278 },
      { timestamp: new Date("2018-03-03T00:00:00Z"), value: 22839355 },
      { timestamp: new Date("2018-03-04T00:00:00Z"), value: 25948736 },
      { timestamp: new Date("2018-03-05T00:00:00Z"), value: 34139159 },
      { timestamp: new Date("2018-03-06T00:00:00Z"), value: 33843985 },
      { timestamp: new Date("2018-03-07T00:00:00Z"), value: 33637661 },
      { timestamp: new Date("2018-03-08T00:00:00Z"), value: 32627350 },
      { timestamp: new Date("2018-03-09T00:00:00Z"), value: 29881076 },
      { timestamp: new Date("2018-03-10T00:00:00Z"), value: 22681575 },
      { timestamp: new Date("2018-03-11T00:00:00Z"), value: 24629393 },
      { timestamp: new Date("2018-03-12T00:00:00Z"), value: 34010679 },
      { timestamp: new Date("2018-03-13T00:00:00Z"), value: 33893888 },
      { timestamp: new Date("2018-03-14T00:00:00Z"), value: 33760076 },
      { timestamp: new Date("2018-03-15T00:00:00Z"), value: 33093515 }
    ],
    granularity: TimeGranularity.daily
  };

  // get change point detect results
  const result = await client.detectChangePoint(request);
  const isChangePointDetected = result.isChangePoint.some((changePoint) => changePoint);

  if (isChangePointDetected) {
    console.log("Change points were detected from the series at index:");
    result.isChangePoint.forEach((changePoint, index) => {
      if (changePoint === true) {
        console.log(index);
      }
    });
  } else {
    console.log("There is no change point detected from the series.");
  }
  // output:
  // Change points were detected from the series at index:
  // 9
}

main().catch((err) => {
  console.error("The sample encountered an error:", err);
});

Дополнительные примеры можно найти здесь.

Устранение неполадок

Ведение журнала

Включение ведения журнала может помочь выявить полезные сведения о сбоях. Чтобы просмотреть журнал HTTP-запросов и ответов, задайте для переменной среды AZURE_LOG_LEVEL значение info. Кроме того, ведение журнала можно включить во время выполнения, вызвав setLogLevel в @azure/logger:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Более подробные инструкции по включению журналов см. в документации по пакету @azure и средства ведения журнала.

Дальнейшие действия

Подробные примеры использования этой библиотеки см. в каталоге примеров .

Участие

На этом проекте приветствуются публикации и предложения. Для участия в большинстве процессов по разработке документации необходимо принять лицензионное соглашение участника (CLA), в котором указывается, что вы предоставляете нам права на использование ваших публикаций. Для получения подробных сведений посетите веб-страницу https://cla.microsoft.com.

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

В рамках этого проекта действуют правила поведения в отношении продуктов с открытым исходным кодом Майкрософт. Дополнительные сведения см. в разделе часто задаваемых вопросов о правилах поведения или обратитесь к opencode@microsoft.com с любыми дополнительными вопросами или комментариями.

Если вы хотите вносить изменения в эту библиотеку, ознакомьтесь с руководством по внесению изменений, в котором содержатся сведения о создании и тестировании кода.