回顾:服务器监控
本课属于 Coddy Machine Learning 学习旅程的“无监督学习”单元。第 38 课,共 51 课。
挑战
中等一台 Web 服务器记录了夜班期间每分钟的数据。哪些分钟确实很异常?
- 对这四个
columns进行缩放。 - 使用孤立森林(
contamination=0.03、random_state=0)和 LOF(n_neighbors=20、contamination=0.03)标记异常分钟。 - 按时间顺序打印两种方法都标记的分钟,如下所示。
- 用散点图绘制每分钟的数据,横轴为请求数,纵轴为延迟,标签为
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
# Web 服务器夜班期间每分钟对应一行数据
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 在线编译器