Phát hiện các ngoại lệ với rừng cách ly bằng sklearn


Dương Giang Lam
2 năm trước
Hữu ích 2 Chia sẻ Viết bình luận 0
Đã xem 7902

Rừng cách ly là một thuật toán để phát hiện các ngoại lệ. Nó phân vùng dữ liệu bằng cách sử dụng một tập hợp các cây và cung cấp một điểm bất thường để xem mức độ cô lập của điểm được tìm thấy trong cấu trúc được tìm thấy. Điểm bất thường sau đó được sử dụng để phân biệt các ngoại lệ với các quan sát bình thường. Trong bài viết này, chúng ta sẽ thấy một ví dụ về cách IsolationForest hành xử trong trường hợp đơn giản. Đầu tiên, chúng tôi sẽ tạo dữ liệu một chiều từ phân phối lưỡng kim, sau đó chúng tôi sẽ so sánh điểm bất thường với phân phối dữ liệu và làm nổi bật các khu vực được xem là nơi các ngoại lệ rơi xuống.

Để bắt đầu, hãy tạo dữ liệu và vẽ biểu đồ:

import numpy as np
import matplotlib.pyplot as plt

x = np.concatenate((np.random.normal(loc=-2, scale=.5,size=500), 
                    np.random.normal(loc=2, scale=.5, size=500)))

plt.hist(x, normed=True)
plt.xlim([-5, 5])
plt.show()

Ở đây, chúng tôi lưu ý rằng có ba vùng mà dữ liệu có xác suất xuất hiện thấp: một ở phía bên phải của phân phối, một vùng khác ở bên trái và một vùng khác ở khoảng không. Hãy xem nếu sử dụng IsolationForest, chúng tôi có thể xác định ba khu vực này:

from sklearn.ensemble import IsolationForest

isolation_forest = IsolationForest(n_estimators=100)
isolation_forest.fit(x.reshape(-1, 1))

xx = np.linspace(-6, 6, 100).reshape(-1,1)
anomaly_score = isolation_forest.decision_function(xx)
outlier = isolation_forest.predict(xx)

plt.plot(xx, anomaly_score, label='anomaly score')
plt.fill_between(xx.T[0], np.min(anomaly_score), np.max(anomaly_score), 
                 where=outlier==-1, color='r', 
                 alpha=.4, label='outlier region')
plt.legend()
plt.ylabel('anomaly score')
plt.xlabel('x')
plt.xlim([-5, 5])
plt.show()

Trong đoạn trích trên, chúng tôi đã huấn luyện IsolationForest bằng cách sử dụng dữ liệu được tạo, tính điểm bất thường cho mỗi quan sát và phân loại mỗi quan sát là ngoại lệ hoặc không ngoại lệ. Biểu đồ cho thấy điểm số bất thường và các khu vực có các ngoại lệ. Như mong đợi, điểm bất thường phản ánh hình dạng của phân bố cơ bản và các khu vực ngoại lệ tương ứng với các khu vực xác suất thấp.

Hữu ích 2 Chia sẻ Viết bình luận 0
Đã xem 7902