Python phát hiện ngoại lệ đa biến
Là phần tiếp theo của bài viết dành cho người mới bắt đầu về phân tích ngoại lệ (liên kết), chúng ta sẽ thảo luận về một số kỹ thuật giúp phát hiện các ngoại lệ trong dữ liệu. Các ngoại lệ có thể là một tính năng cụ thể hoặc một phiên bản có nhiều thuộc tính có thể là một ngoại lệ (bất thường) nói chung Show Hãy xem xét bộ dữ liệu Tín dụng nổi tiếng của Đức với mục đích tìm hiểu hoạt động của các phương pháp mà chúng ta sẽ thảo luận để phát hiện các ngoại lệ đơn biến và đa biến Ở đây, chúng tôi đã lấy một tập hợp con chỉ có các cột số chỉ vì mục đích đơn giản Phương pháp phát hiện ngoại lệ đơn biến Phần 1 của bài viết này tập trung vào các phương pháp phát hiện ngoại lệ đơn biến được sử dụng thường xuyên trong Python 1. Biểu đồ IQR và Box-and-Whisker Một phương pháp mạnh mẽ để ghi nhãn các ngoại lệ là phương pháp IQR (Phạm vi tứ phân vị) được phát triển bởi John Tukey, người tiên phong trong phân tích dữ liệu khám phá. Biểu đồ Box-and-Whiskers sử dụng các phần tư để vẽ hình dạng của một biến. Phạm vi liên vùng là phạm vi giữa phần tư thứ nhất và phần tư thứ ba (các cạnh của hộp). Bất kỳ điểm dữ liệu nào nằm ngoài 1. 5 lần IQR dưới phần tư đầu tiên hoặc 1. 5 lần IQR trên phần tư thứ ba được coi là ngoại lệ Hộp đại diện cho phần tư thứ 1 và thứ 3, tương đương với phần trăm thứ 25 và 75. Dòng bên trong hộp đại diện cho phần tư thứ 2, là trung vị Nếu IQR = quartile_3 — quartile_1, thì giá trị thấp hơn là 'quartile_1 — (1. 5 lần IQR)’ và cận trên là ‘quartile_3 + (1. 5 lần IQR)'. Vì vậy, bất kỳ giá trị nào bên dưới giới hạn dưới và trên giới hạn trên đều được coi là ngoại lệ Mã trong python để lấy các chỉ số của các ngoại lệ có thể có trong tính năng Credit_Amount 2. Sử dụng độ lệch chuẩn Quy tắc phân phối chuẩn Một hạn chế của phương pháp này là nó chỉ có thể được sử dụng khi dữ liệu 'không' bị sai lệch nhiều. Nó yêu cầu dữ liệu phải gần với bình thường Như trong hình trên, nếu dữ liệu được phân phối bình thường, 99. 7% giá trị của dữ liệu phải nằm giữa +/- 3 độ lệch chuẩn và 95. 4% giá trị nằm trong khoảng +/-2 độ lệch chuẩn của dữ liệu. Vì vậy, chúng tôi có thể coi bất kỳ điểm dữ liệu nào cách xa +/- 2 hoặc 3 độ lệch chuẩn là ngoại lệ Điều này có thể đạt được bằng cách tính điểm tiêu chuẩn hoặc điểm z của các điểm dữ liệu. Wikipedia tuyên bố điểm z là
Chúng tôi tính điểm z bằng cách trừ giá trị trung bình của tất cả các giá trị dữ liệu từ một điểm dữ liệu và chia cho độ lệch chuẩn. Thay vì sử dụng 'hàm zscore của scipy', hãy xác định một hàm tương tự và sau đó chúng ta thêm một ngưỡng để đưa ra các chỉ số của các điểm dữ liệu ngoại lệ Thực hiện trong python Chúng tôi thấy rằng một vài điểm tại các chỉ số 63,105, 236, v.v. thường được phát hiện là ngoại lệ bởi cả hai phương pháp Chúng tôi có thể sử dụng nhiều phương pháp và xử lý các ngoại lệ thường được xác định. Ngoại lệ có thể được cố định bằng cách
Phương pháp phát hiện ngoại lệ đa biến
Những phương pháp này có nhiều ứng dụng thực tế và sẽ được thảo luận chi tiết trong blog tiếp theo. Chúng ta sẽ xem cách thức và liệu từng trường hợp (ở đây là khách hàng) có thể được gắn thẻ là ngoại lệ hay không, bằng cách sử dụng ba phương pháp trên Như đã đề cập, Hệ mét Euclide không tìm được khoảng cách chính xác vì nó cố lấy khoảng cách đường thẳng thông thường. Do đó, nếu chúng ta có không gian đa chiều của các biến, hai điểm có thể có cùng khoảng cách với Giá trị trung bình, nhưng một trong số chúng cách xa đám mây dữ liệu (i. e. đó là một ngoại lệ) Giải pháp là Khoảng cách Mahalanobis tạo ra thứ gì đó tương tự như tính năng chia tỷ lệ thông qua việc lấy các vectơ riêng của các biến thay vì trục ban đầu Nó áp dụng công thức sau ở đâu
bồi dưỡng Hiệp phương sai thể hiện hướng của mối quan hệ giữa hai biến (i. e. dương, âm hoặc bằng không), vì vậy nó cho thấy sức mạnh của cách một biến có liên quan đến sự thay đổi của các biến khác Thực hiệnHãy xem xét tập dữ liệu 6x3 này, trong đó mỗi hàng đại diện cho một mẫu và mỗi cột đại diện cho một tính năng của mẫu đã cho Trước tiên, chúng tôi cần tạo Ma trận hiệp phương sai của các đặc điểm của từng mẫu và đó là lý do tại sao chúng tôi đặt tham số 2 thành 3 trong numpy. cov, vì vậy mỗi cột hiện đại diện cho một biến
Tiếp theo, chúng ta tìm Nghịch đảo của Ma trận hiệp phương sai
Nhưng trước khi tiếp tục, chúng ta nên kiểm tra, như đã đề cập ở trên, nếu ma trận và ma trận nghịch đảo của nó là Đối xứng và Xác định Dương. Chúng tôi sử dụng cho Thuật toán phân tách Cholesky này, may mắn thay, thuật toán này đã được triển khai trong numpy. linalg. nghẹn ngào
Sau đó, chúng tôi tìm giá trị trung bình _______0_______0 của các biến trên mỗi tính năng (tôi sẽ nói thứ nguyên) và lưu chúng vào một mảng như thế này ________số 8_______Lưu ý rằng tôi đã lặp lại từng hàng chỉ để tận dụng phép trừ ma trận như sẽ được hiển thị tiếp theo Tiếp theo, chúng tôi tìm thấy 5 (i. e. vi phân), nhưng vì chúng ta đã có 6 được véc tơ hóa, nên tất cả những gì chúng ta cần làm là
Cuối cùng, áp dụng công thức như thế này
Lưu ý những điều sau
Để phát hiện các ngoại lệ, chúng ta nên chỉ định một 7; . 1, sau đó chúng ta có thể sử dụng chi2. phương pháp cdf từ 8, như thế này
Vì vậy, bất kỳ điểm nào có (1 - CDF chi bình phương) nhỏ hơn hoặc bằng ngưỡng, đều có thể được phân loại là ngoại lệ Phát hiện bất thường đa biến là gì?Phát hiện bất thường đơn biến tìm kiếm điểm bất thường trong từng chỉ số riêng lẻ, trong khi phát hiện bất thường đa biến tìm hiểu một mô hình duy nhất cho tất cả chỉ số trong hệ thống . Các phương pháp đơn biến đơn giản hơn, vì vậy chúng dễ dàng mở rộng quy mô cho nhiều chỉ số và tập dữ liệu lớn.
Là rừng cô lập đa biến?Chúng ta đã thảo luận về các phương pháp Khu rừng cách ly và OC-SVM được sử dụng để thực hiện phát hiện Bất thường đa biến . Một trong những ưu điểm của phương pháp này là chúng không yêu cầu dữ liệu thuộc về một phân phối cụ thể. OC-SVM là một phương pháp có thể được sử dụng để phát hiện Bất thường Không giám sát và Bán giám sát.
Sự khác biệt giữa phát hiện ngoại lệ và phát hiện tính mới là gì?Do đó, các công cụ ước tính phát hiện ngoại lệ cố gắng khớp với các vùng tập trung nhiều dữ liệu huấn luyện nhất, bỏ qua các quan sát sai lệch. phát hiện tính mới. Dữ liệu đào tạo không bị ô nhiễm bởi các ngoại lệ và chúng tôi quan tâm đến việc phát hiện xem một quan sát mới có phải là ngoại lệ hay không |