Menu
CoddyTech

Повторение: мониторинг сервера

Часть раздела Обучение без учителя путешествия по Machine Learning на Coddy. Урок 38 из 51.

challenge icon

Задание

Средне

Веб-сервер записывал данные каждую минуту ночной смены. Какие минуты действительно были необычными?

  1. Масштабируй четыре columns.
  2. Отметь минуты с помощью Isolation Forest (contamination=0.03, random_state=0) и LOF (n_neighbors=20, contamination=0.03).
  3. Выведи минуты, отмеченные обоими методами, в хронологическом порядке, как показано ниже.
  4. Построй точечную диаграмму для всех минут: количество запросов — по горизонтали, задержка — по вертикали; подпиши её minutes. Обведи красным минуты, отмеченные обоими методами, и подпиши их both detectors. Добавь легенду и покажи диаграмму.

Для другой ночи:

Both detectors flag 5 minutes:
  00:25: 1116 requests/s, 186 ms
  01:10: 2106 requests/s, 95 ms
  02:00: 1151 requests/s, 133 ms
  02:40: 835 requests/s, 142 ms
  03:10: 1774 requests/s, 82 ms

Ночная диаграмма минут работы сервера: количество запросов в секунду по горизонтали, задержка по вертикали; восходящее облако точек, над ним красным обведены три минуты с высокой задержкой, а далеко справа — две минуты с высокой нагрузкой

Затем Coddy опишет твою диаграмму.

Попробуйте сами

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import IsolationForest
from sklearn.neighbors import LocalOutlierFactor

# Одна строка на каждую минуту ночной смены на веб-сервере
log = pd.read_csv("servers.csv")
columns = ["cpu_pct", "memory_gb", "requests_per_s", "latency_ms"]

# Не изменяйте строки ниже
fig, ax = plt.subplots()
ax.set_title("Server Watch")
ax.set_xlabel("Requests per second")
ax.set_ylabel("Latency (ms)")

# Напишите свой код ниже

Все уроки раздела Обучение без учителя

Потренируйтесь самостоятельно: Онлайн-компилятор Python