2012-01-20 17 views
5

tôi muốn tìm ra cách tốt nhất để phát hiện các ngoại lệ là gì. đây là vấn đề và một số thứ có thể sẽ không hoạt động. chúng ta hãy nói rằng chúng tôi muốn cá ra một số dữ liệu gần như thống nhất từ ​​một cột varchar bẩn (50) trong mysql. chúng ta hãy bắt đầu bằng cách thực hiện phân tích theo độ dài chuỗi.phát hiện các ngoại lệ trong bản phân phối thưa thớt?

| strlen | freq | 
|  0 | 2312 | 
|  3 |  45 | 
|  9 |  75 | 
|  10 | 15420 | 
|  11 | 395 | 
|  12 | 114 | 
|  19 |  27 | 
|  20 | 1170 | 
|  21 |  33 | 
|  35 |  9 | 

những gì tôi muốn làm là đưa ra một thuật toán để xác định độ dài chuỗi nào có xác suất cao là độc đáo có mục đích chứ không phải là rác của typeo hoặc ngẫu nhiên. trường này có khả năng là loại "enum", do đó, có thể có nhiều số lần tăng tần suất cho các giá trị hợp lệ. rõ ràng 10 và 20 là hợp lệ, 0 chỉ là dữ liệu bị bỏ qua. 35 và 3 có thể là một số rác ngẫu nhiên mặc dù cả hai đều rất khác nhau về tần số. 19 và 21 có thể là kiểu OS xung quanh định dạng 20. 11 có thể là type-os cho 10, nhưng còn 12 thì sao?

dường như chỉ đơn giản là sử dụng tần suất xuất hiện% là không đủ. cần phải có điểm nóng cao hơn xác suất "chỉ là một lỗi" xung quanh các ngoại lệ hiển nhiên.

cũng có ngưỡng cố định không thành công khi có 15 độ dài duy nhất có thể thay đổi từ 5-20 ký tự, mỗi từ 7% - 20% xuất hiện.

độ lệch chuẩn sẽ không hoạt động vì nó dựa trên mức trung bình. độ lệch tuyệt đối trung bình có thể sẽ không hoạt động bởi vì bạn có thể có ngoại lệ tần số cao mà không thể bị loại bỏ.

có sẽ có các thông số khác để làm sạch dữ liệu trong mã, nhưng độ dài dường như rất nhanh chóng lọc trước và phân loại các trường có bất kỳ số lượng cấu trúc nào.

có phương pháp nào được biết sẽ hoạt động hiệu quả không? Tôi không quen thuộc với bộ lọc Bayesian hay máy học nhưng có lẽ họ có thể giúp đỡ?

cảm ơn! leon

+0

+1 cho câu hỏi thú vị – cctan

Trả lời

2

Âm thanh như phát hiện bất thường là cách di chuyển. Phát hiện bất thường là một loại máy học được sử dụng để tìm các ngoại lệ. Nó có một vài giống, bao gồm cả giám sát và không giám sát. Trong học tập có giám sát, thuật toán được đào tạo bằng cách sử dụng các ví dụ về các ngoại lệ. Trong học tập không giám sát, thuật toán cố gắng tìm ra các ngoại lệ mà không có bất kỳ ví dụ nào. Dưới đây là một vài liên kết để bắt đầu ra:

http://en.wikipedia.org/wiki/Anomaly_detection

http://s3.amazonaws.com/mlclass-resources/docs/slides/Lecture15.pdf

tôi không tìm thấy bất kỳ liên kết đến các thư viện có sẵn. Một cái gì đó giống như MATLAB, hoặc anh em họ miễn phí của nó, Octave, có thể là một cách tốt đẹp để nếu bạn không thể tìm thấy một thư viện phát hiện bất thường trong ngôn ngữ của bạn lựa chọn. https://goker.wordpress.com/tag/anomaly-detection/

+0

cảm ơn, điều này rất thú vị và có vẻ là điểm nổi bật, nhưng dường như không dễ thực hiện để đáng giá cho dự án của tôi: (tôi sẽ tiếp tục khám phá một số trọng số đơn giản hơn – leeoniya

+0

cũng thế này: http://en.wikipedia.org/wiki/Local_outlier_factor – leeoniya

+0

@leeoniya. Yếu tố bên ngoài cục bộ trông giống như một lựa chọn tuyệt vời. Bài viết bạn liên kết bao gồm một âm mưu của Dim2 so với Dim1, trong trường hợp này sẽ là Frequency so với String Length ... Có vẻ hợp lý để thực hiện đơn giản, nhưng không có gì nhiều để tiếp tục trong bài viết. Bạn có thể chỉ cho chúng tôi một số nguồn khác ngoài tham chiếu đến các giấy tờ ở cuối – ahoffer

Các vấn đề liên quan