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
+1 cho câu hỏi thú vị – cctan