Menu
CoddyTech

복습: 서버 감시

Coddy Machine Learning 여정의 비지도 학습 섹션에 포함된 레슨. 51개 중 38번째.

challenge icon

챌린지

중급

웹 서버가 야간 근무 시간 동안 매분 기록을 남겼습니다. 정말 이상했던 시간은 몇 분일까요?

  1. 네 개의 columns를 스케일링하세요.
  2. 격리 포레스트(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

# 웹 서버의 야간 근무 시간 동안 1분마다 한 행씩 기록
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 컴파일러