Isolation Forest
Thuộc phần Học không giám sát trong hành trình Machine Learning của Coddy. Bài học 35 trên 51.
Các điểm bất thường rất dễ bị tách riêng. Hãy chia dữ liệu ngẫu nhiên, lặp đi lặp lại, cho đến khi chỉ còn một điểm đứng riêng:
Điểm ở xa cần 2 lần cắt, điểm đông đúc cần 8 lần. Rừng cô lập lấy trung bình số lần cắt qua 100 cây ngẫu nhiên:
from sklearn.ensemble import IsolationForest
forest = IsolationForest(contamination=0.02, random_state=0)
flags = forest.fit_predict(X)fit_predict trả về -1 cho các hàng bất thường, 1 cho các hàng còn lại. contamination là tỷ lệ hàng mà bạn dự đoán sẽ bất thường.
Thử thách
Trung bìnhMột cảng ghi nhận 160 ca làm việc của cần cẩu: số lượt di chuyển mỗi giờ và mức năng lượng cho mỗi lượt di chuyển. Những ca nào có vẻ bất thường?
- Đánh dấu các ca bằng Isolation Forest,
contamination=0.03,random_state=0. In số lượng như bên dưới. - Biểu diễn các ca bình thường bằng dấu chấm có nhãn
normal. - Khoanh tròn các ca được đánh dấu:
s=150, facecolors="none", edgecolors="red", với nhãnflagged. Thêm chú giải rồi hiển thị biểu đồ.
Với một cảng khác, có 200 ca làm việc:
Flagged: 6 of 200 shiftsSau đó, Coddy mô tả biểu đồ của bạn.
Tự làm thử
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.ensemble import IsolationForest
# Mỗi hàng tương ứng với một ca làm việc của cần cẩu tại cảng, gồm tốc độ và mức tiêu thụ năng lượng
shifts = pd.read_csv("cranes.csv")
X = shifts[["moves_per_hour", "kwh_per_move"]]
# Đừng thay đổi các dòng bên dưới
fig, ax = plt.subplots()
ax.set_title("Crane Shifts")
ax.set_xlabel("Moves per hour")
ax.set_ylabel("Energy per move (kWh)")
# Viết code bên dưới
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Học không giám sát
1Tìm các nhóm
Học không cần nhãnĐo độ tương đồngTự thực hiện K-MeansK-Means trong scikit-learnÔn tập: thành viên phòng gym7PCA trong thực tế
Quan sát 64 chiềuCác thành phần như mẫu hìnhNén và dựng lạiPCA trước khi xây dựng mô hìnhÔn tập: máy quét khuôn mặt10Dự án: Khám phá chữ số
Quan sát các chữ sốThu gọn bằng PCAPhân cụm chữ sốĐặt tên cho các cụmTìm những chữ số khác biệt2Chọn k
Quán tínhPhương pháp khuỷu tayĐiểm số SilhouetteChuẩn hóa thang đo trước khi phân cụmÔn tập: Các vùng giao hàng8Phát hiện bất thường
Tìm những điểm khác biệtIsolation ForestLocal Outlier FactorĐiểm bất thườngÔn tập: Giám sát máy chủTự luyện tập: Trình biên dịch Python online