Клиентская библиотека Azure Детектор аномалий для JavaScript версии 3.0.0-beta.5
Azure AnomalyDetector API позволяет отслеживать и обнаруживать аномалии в данных временных рядов с помощью машинного обучения.
Основные ссылки:
Основные понятия
Предоставляет AnomalyDetectorClient
методы для обнаружения аномалий:
-
detectEntireSeries
— обнаруживает аномалии во всем наборе данных. -
detectLastPoint
— обнаруживает аномалии в последней точке данных. -
detectChangePoint
— оценивает оценку изменений в каждой точке ряда.
Начало работы
Поддерживаемые в настоящее время среды
- LTS версии Node.js
- Последние версии Safari, Chrome, Edge и Firefox.
Чтобы получить дополнительные сведения, ознакомьтесь с нашей политикой поддержки.
Предварительные требования
- Подписка Azure.
- Существующий ресурс Детектор аномалий.
Если вы используете 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 с любыми дополнительными вопросами или комментариями.
Если вы хотите вносить изменения в эту библиотеку, ознакомьтесь с руководством по внесению изменений, в котором содержатся сведения о создании и тестировании кода.
Azure SDK for JavaScript