Python phát hiện bất thường
Phát hiện bất thường xác định các mục, điểm dữ liệu, sự kiện hoặc quan sát bất thường khác biệt đáng kể so với tiêu chuẩn. Trong Học máy và Khoa học dữ liệu, bạn có thể sử dụng quy trình này để dọn sạch các giá trị ngoại lệ khỏi bộ dữ liệu của mình trong giai đoạn chuẩn bị dữ liệu hoặc xây dựng hệ thống máy tính phản ứng với các sự kiện bất thường. Ví dụ về các trường hợp sử dụng phát hiện bất thường có thể là phân tích lưu lượng truy cập mạng tăng đột biến, độ lệch chỉ số giám sát ứng dụng hoặc thậm chí phát hiện luồng bảo mật Show
Bài viết này giải thích cách sử dụng thuật toán Isolation Forests và Local Outlier Factor để phát hiện bất thường (Python) trong bộ dữ liệu của bạn Hiệu suất của bất kỳ thuật toán Machine Learning nào phụ thuộc nhiều vào độ chính xác của tập dữ liệu được cung cấp. Trong các tình huống thực tế, chúng ta thường xử lý dữ liệu thô để phân tích và xử lý trước khi chạy các tác vụ Machine Learning. Chuẩn bị tập dữ liệu để đào tạo được gọi là Phân tích dữ liệu khám phá (EDA) và phát hiện bất thường là một trong các bước của quy trình này Sách học máy tốt nhất cho người mới bắt đầu và chuyên gia Khi Machine Learning ngày càng trở nên phổ biến, cả người mới bắt đầu và chuyên gia đều cần cập nhật những tiến bộ mới nhất. Đối với người mới bắt đầu, hãy xem những cuốn sách Machine Learning tốt nhất có thể giúp hiểu rõ những điều cơ bản. Đối với các chuyên gia, đọc những cuốn sách này có thể giúp bắt kịp với bối cảnh luôn thay đổi. Trong cả hai trường hợp, một số lý do chính để xem những cuốn sách này có thể hữu ích Đầu tiên, chúng cung cấp một cái nhìn tổng quan toàn diện về chủ đề này, chủ yếu là về các thuật toán học máy. Thứ hai, họ cung cấp những hiểu biết sâu sắc từ các chuyên gia hàng đầu trong lĩnh vực này. Và thứ ba, họ đưa ra lời khuyên cụ thể về cách áp dụng các khái niệm máy học trong các tình huống thực tế. Khi máy học tiếp tục phát triển, không còn nghi ngờ gì nữa, những cuốn sách này sẽ tiếp tục là tài nguyên thiết yếu cho bất kỳ ai có kiến thức trước đó muốn đi trước đường cong Dị thường là gì?Điểm bất thường là một mục, điểm dữ liệu, sự kiện hoặc quan sát bất thường khác biệt đáng kể so với tiêu chuẩn. Các thuật toán phát hiện bất thường giúp tự động xác định các điểm dữ liệu trong tập dữ liệu không khớp với các điểm dữ liệu khác. Trong Khoa học dữ liệu và Học máy, điểm dữ liệu bất thường trong tập dữ liệu còn được gọi là "ngoại lệ" và các thuật ngữ này được sử dụng thay thế cho nhau Đây là cách các điểm bất thường hoặc ngoại lệ từ tập dữ liệu thường xuất hiện trong biểu đồ Có một số loại bất thường
Phát hiện dị thường thị giácCách nhanh nhất để tìm điểm bất thường trong tập dữ liệu là trực quan hóa các điểm dữ liệu của nó. Ví dụ: có thể dễ dàng xác định các giá trị ngoại lệ bằng cách trực quan hóa chuỗi dữ liệu bằng biểu đồ hộp, biểu đồ phân tán hoặc biểu đồ đường cốt truyện hộpBiểu đồ hộp là một cách hiển thị phân phối dữ liệu được tiêu chuẩn hóa dựa trên năm chỉ số. tối thiểu, phần tư thứ nhất (Q1), trung bình, phần tư thứ ba (Q3) và tối đa Biểu đồ hộp không hiển thị phân phối dữ liệu và biểu đồ. Tuy nhiên, nó vẫn hữu ích để chỉ ra liệu một phân phối có chứa các điểm dữ liệu bất thường tiềm ẩn (ngoại lệ) trong tập dữ liệu hay không Biểu đồ hộp có các đặc điểm sau
biểu đồ đườngBiểu đồ đường là lý tưởng để trực quan hóa một loạt các điểm dữ liệu. Nếu chuỗi dữ liệu chứa bất kỳ điểm bất thường nào, chúng có thể dễ dàng nhận dạng bằng mắt thường
Nếu tập dữ liệu có điểm bất thường, bạn có thể nhìn thấy chúng trên biểu đồ đó. Đây là hình ảnh trực quan của bộ dữ liệu Iris nổi tiếng, nơi chúng ta có thể dễ dàng thấy ít nhất một ngoại lệ Phát hiện và sửa lỗi bất thường trong bộ dữ liệuTrong phần này của bài viết, chúng tôi sẽ chỉ ra mức độ bất thường (hoặc ngoại lệ) có thể ảnh hưởng đáng kể đến kết quả của bất kỳ mô hình Học máy nào bằng cách phân tích một tập dữ liệu đơn giản Hãy cài đặt một số mô-đun Python cần thiết bằng cách chạy các lệnh sau trong ô của Jupyter Notebook
Khám phá tập dữ liệuBước đầu nhập tập dữ liệu và làm quen với kiểu dữ liệu. Chúng tôi sẽ phân tích một bộ dữ liệu đơn giản chứa doanh số bán cá da trơn từ năm 1986 đến 2001. Bạn có thể tải xuống bộ dữ liệu từ liên kết này
đầu ra Đầu ra cho thấy dữ liệu của chúng tôi có hai cột chứa ngày và số lượng bán hàng mỗi tháng. Bây giờ chúng ta hãy trực quan hóa tập dữ liệu để xem thông tin bán hàng rõ ràng hơn
đầu ra Đầu ra có vẻ tốt và chúng tôi không có bất kỳ điểm bất thường nào trong tập dữ liệu. Hãy kiểm tra lại nó bằng biểu đồ hộp
Biểu đồ cốt truyện hộp không hiển thị bất kỳ ngoại lệ nào Lập chỉ mục lại tập dữ liệuNhư bạn đã thấy ở trên, chỉ mục của DataFrame là một kiểu số nguyên. Sẽ rất hữu ích nếu lập chỉ mục lại toàn bộ Khung dữ liệu bằng cách sử dụng thông tin từ cột 9 làm chỉ mục mới
đầu ra Dự đoán giá (bộ dữ liệu không có bất thường)Bây giờ, hãy dự đoán giá năm 1999 dựa trên dữ liệu chuỗi thời gian lịch sử hiện có từ năm 1986 Trước tiên, hãy chia tập dữ liệu của chúng tôi
đầu ra Chúng tôi sẽ sử dụng thuật toán SARIMA để lập mô hình và ước tính giá cho thị trường cá da trơn dựa trên bộ dữ liệu lịch sử của chúng tôi cho mục đích demo
Hãy trực quan hóa kết quả dự đoán ________số 8_______đầu ra Như bạn có thể thấy, thuật toán SARIMA dự đoán rất cao về giá trong tương lai Dưới đây là các giá trị Lỗi tuyệt đối trung bình (MAE) và Lỗi phần trăm tuyệt đối trung bình (MAPE)
đầu ra Dự đoán giá (bộ dữ liệu có điểm bất thường)Hãy chia nhỏ tập dữ liệu và giới thiệu một điểm bất thường để xem ảnh hưởng của các điểm bất thường đối với cùng một thuật toán dự đoán
Đây là hình ảnh của tập dữ liệu bị hỏng 0đầu ra Hãy sử dụng biểu đồ hộp để xem ngoại lệ 1đầu ra Biểu đồ hộp hiển thị một điểm bất thường dưới râu thấp hơn Chúng ta có thể chạy cùng một thuật toán để trực quan hóa sự khác biệt trong các dự đoán Hãy chia nhỏ tập dữ liệu 2Bây giờ, hãy chạy thuật toán SARIMA
Và trực quan hóa kết quả dự đoán 4Như bạn có thể thấy, các dự đoán tuân theo khuôn mẫu nhưng thậm chí không gần với các giá trị thực tế
đầu ra Các ví dụ Python về phát hiện bất thườngRất khó để tìm ra sự bất thường của dữ liệu, đặc biệt là khi xử lý các tập dữ liệu lớn. May mắn thay, mô-đun Python của sklearn có nhiều thuật toán tích hợp để giúp chúng tôi giải quyết vấn đề này, chẳng hạn như Khu rừng cách ly, DBSCAN, Các yếu tố ngoại lai cục bộ (LOF) và nhiều thuật toán khác Rừng cách lyKhu rừng cách ly là một thuật toán học tập không giám sát giúp xác định các điểm bất thường bằng cách cô lập các giá trị ngoại lai trong dữ liệu dựa trên Thuật toán cây quyết định. Nó phân tách các giá trị ngoại lệ bằng cách chọn ngẫu nhiên một tính năng từ tập hợp các tính năng nhất định và sau đó chọn giá trị phân tách giữa giá trị tối đa và tối thiểu. Việc phân vùng ngẫu nhiên các tính năng này sẽ tạo ra các đường dẫn ngắn hơn trong cây cho các điểm dữ liệu bất thường, do đó phân biệt chúng với phần còn lại của dữ liệu Hãy sử dụng triển khai Khu rừng cách ly sklearn trên cùng một tập dữ liệu bị hỏng để triển khai phát hiện bất thường với Python 6Hãy hình dung những phát hiện của chúng tôi 7đầu ra Như bạn có thể thấy, thuật toán Khu rừng cách ly đã phát hiện ra hai điểm bất thường, bao gồm cả điểm bất thường do chúng tôi tự giới thiệu Yếu tố ngoại lai cục bộ (LOF)Thuật toán Yếu tố ngoại lai cục bộ (LOF) giúp xác định các ngoại lệ dựa trên mật độ điểm dữ liệu cho mọi điểm dữ liệu cục bộ trong tập dữ liệu. Thuật toán hoạt động tốt khi mật độ dữ liệu không giống nhau trong toàn bộ tập dữ liệu Hãy áp dụng thuật toán Local Outlier Factor cho tập dữ liệu của chúng ta và tìm ra điểm bất thường 8Hãy hình dung những phát hiện của chúng tôi Như trong trường hợp của thuật toán Khu rừng cách ly, thuật toán Yếu tố ngoại lai cục bộ đã phát hiện ra hai điểm bất thường, bao gồm cả điểm bất thường mà chúng tôi đã tự giới thiệu Câu hỏi thường gặpThuật toán nào là tốt nhất để phát hiện bất thường?Thuật toán tốt nhất để phát hiện bất thường tùy thuộc vào loại dữ liệu và ngữ cảnh sử dụng thuật toán đó. Các thuật toán phổ biến để phát hiện bất thường bao gồm phân cụm K-Means, Máy vectơ hỗ trợ (SVM), Mô hình hỗn hợp Gaussian (GMM), SVM một lớp, Yếu tố ngoại lai cục bộ (LOF) và Rừng cách ly Ba 3 cách tiếp cận cơ bản để phát hiện bất thường là gì?Ba cách tiếp cận cơ bản để phát hiện bất thường là (1) dựa trên thống kê, (2) dựa trên máy học và (3) dựa trên quy tắc. Các phương pháp dựa trên thống kê sử dụng các kỹ thuật số như thống kê mô tả, kiểm tra giả thuyết và phân cụm để xác định các điểm bất thường. Các phương pháp dựa trên máy học sử dụng các thuật toán được giám sát hoặc không được giám sát để xác định các mẫu và điểm bất thường trong dữ liệu. Các phương pháp dựa trên quy tắc sử dụng các quy tắc và kinh nghiệm để xác định các sai lệch so với hành vi dự kiến Chúng tôi có thể sử dụng KNN để phát hiện bất thường không?KNN hoạt động bằng cách so sánh một điểm dữ liệu nhất định với các điểm lân cận gần nhất của nó để xác định xem điểm dữ liệu đó có phải là ngoại lệ hay không. Bằng cách đo mức độ khác biệt của điểm dữ liệu so với các điểm lân cận gần nhất, có thể xác định xem điểm đó có bất thường hay không. Vì vậy, thuật toán KNN có thể được sử dụng để phát hiện bất thường PCA có thể được sử dụng để phát hiện bất thường không?PCA có thể xác định các mẫu trong dữ liệu không có trong các điểm dữ liệu khác và các mẫu đó có thể được sử dụng để phát hiện sự bất thường. Điều này được thực hiện bằng cách xem xét các thành phần chính của dữ liệu, đại diện cho các yếu tố quan trọng nhất góp phần vào phương sai trong tập dữ liệu. Sau đó, có thể phát hiện ra sự bất thường khi có sự khác biệt lớn giữa một điểm nhất định và các điểm lân cận gần nhất của nó về các thành phần chính này Tóm lượcPhát hiện bất thường là định vị các mục, điểm dữ liệu, sự kiện hoặc quan sát bất thường khiến nghi ngờ vì chúng khác với phần còn lại của điểm dữ liệu hoặc quan sát. Trong bài viết này, chúng tôi đã đề cập đến các điểm bất thường (ngoại lệ) và ảnh hưởng của chúng đối với các thuật toán dự đoán Thuật toán nào là tốt nhất để phát hiện bất thường?Yếu tố ngoại lai cục bộ (LOF)
. Thuật toán này dựa trên khái niệm mật độ cục bộ. Nó so sánh mật độ cục bộ của một đối tượng với mật độ của các điểm dữ liệu lân cận.
Ba 3 cách tiếp cận cơ bản để phát hiện bất thường là gì?Có ba loại kỹ thuật phát hiện bất thường chính. không giám sát, bán giám sát và giám sát . Về cơ bản, phương pháp phát hiện bất thường chính xác phụ thuộc vào các nhãn có sẵn trong tập dữ liệu.
Chúng tôi có thể sử dụng KNN để phát hiện bất thường không?Các kỹ thuật được sử dụng rộng rãi hơn trong lĩnh vực phát hiện bất thường dựa trên các kỹ thuật mật độ như yếu tố ngoại lai cục bộ KNN, khu rừng cách ly, v.v. . Nói chung, dữ liệu được coi là một điểm trong không gian nhiều chiều, được xác định bởi số lượng các tính năng được sử dụng trong phân tích.
Có thể sử dụng Kmeans để phát hiện bất thường không?K-nghĩa là phân cụm
. nếu khoảng cách giữa một điểm dữ liệu và trọng tâm gần nhất của nó lớn hơn giá trị ngưỡng, thì đó là một điểm bất thường. A threshold value can be added to detect anomalies: if the distance between a data point and its nearest centroid is greater than the threshold value, then it is an anomaly. |