Tôi đã viết thực hiện LOF của riêng mình và tôi đang cố gắng so sánh kết quả với các triển khai trong ELKI và RapidMiner, nhưng cả 3 đều cho kết quả khác nhau! Tôi đang cố gắng giải thích tại sao.Các kết quả khác nhau từ việc thực hiện LOF trong ELKI và RapidMiner
Tập dữ liệu tham chiếu của tôi là một chiều, 102 giá trị thực với nhiều bản sao. Tôi sẽ thử và đăng nó dưới đây.
Đầu tiên, triển khai RapidMiner. Điểm số LOF rất khác với ELKI và từ kết quả của tôi; nhiều người trở lại với một LOF vô cùng. Việc triển khai này có được xác thực là chính xác không?
Kết quả của tôi tương tự như ELKI, nhưng tôi không nhận được chính xác cùng giá trị LOF. Từ việc quét nhanh các nhận xét trong mã nguồn ELKI, tôi nghĩ điều này có thể là do sự khác biệt về cách tính toán k-lân cận.
Trong giấy LOF, tham số MinPts (ở nơi khác được gọi là k) chỉ định số không tối thiểu. các điểm được bao gồm trong khu phố k. Trong việc thực hiện ELKI, tôi nghĩ rằng họ đang xác định k-khu phố là chính xác k điểm hơn là tất cả các điểm trong khoảng cách k hoặc khoảng cách k riêng biệt. Bất cứ ai có thể xác nhận chính xác như thế nào ELKI xây dựng k-khu phố? Ngoài ra còn có một biến riêng cho phép các điểm chính nó được bao gồm trong khu phố riêng của nó, nhưng có vẻ như mặc định là không bao gồm nó.
Có ai biết về tập dữ liệu tham chiếu công khai có điểm LOF được đính kèm cho mục đích xác thực không?
--- biết thêm chi tiết theo ---
tham khảo: ELKI mã nguồn là ở đây:
http://elki.dbs.ifi.lmu.de/browser/elki/trunk/src/de/lmu/ifi/dbs/elki/algorithm/outlier/lof/LOF.java
RapidMiner mã nguồn là ở đây:
đây là tập dữ liệu thử nghiệm của tôi:
4,32323 5,12595 5,12595 5,12595 5,12595 5,7457 5,7457 5,7457 5,7457 5,7457 5,7457 5,97766 5,97766 6,07352 6,07352 6,12015 6,12015 6,12015 6,44797 6,44797 6,48131 6,48131 6,48131 6,48131 6,48131 6,48131 6,6333 6,6333 6,6333 6,70872 6,70872 6,70872 6,70872 6,70872 6,77579 6,77579 6,77579 6,77579 6,77579 6,77579 6,77579 6,77579 6,77579 6,77579 6,77579 6,77579 6,77579 6,77579 6,77579 7,03654 7,03654 7,03654 7,03654 7,03654 7,03654 7,03654 7,03654 7,03654 7,03654 7,03654 7,03654 7,03654 7,03654 7,03654 7,10361 7,10361 7,10361 7,10361 7,10361 7,10361 7,10361 7,10361 7,15651 7,1 5651 7,15651 7,15651 7,15651 7,15651 7,15651 7,15651 8,22598 8,22598 8,22598 8,22598 8,5538 8,5538 8,5538 8,5538 8,5538 8,5538 8,5538 8,5538 8,5538 8,5538 8,5538 8,5538 8,5538 8,5538 8,5538 8,5538 8,5538 8,5538
Ví dụ, tôi nhận được số điểm LOF sau cho số đầu tiên (4,32323):
- RapidMiner: vô cực (với MinPts cận dưới/trên thiết lập để 10.100)
- ELKI: 2.6774 (với k = 10 và distfunction/reachdistfunction thiết lập để mặc định)
- thực hiện của tôi: 1,9531
Một số chi tiết về những gì thực hiện tôi đang làm:
- MinPts là 10, vì vậy tôi m tìm thấy 10 hàng xóm khác nhau của điểm. Vì vậy, các khu phố của 4.32323 thực sự là 48 điểm, từ 5.12595 lên đến 6.77579.
- Điều đó mang lại cho tôi một khoảng cách k-biệt của 2,45256
- Tôi đang tính toán khoảng cách reachability của những người hàng xóm đầu tiên là 1,58277
- Tôi đang tính LRD của mẫu như 1/(99,9103/48)
- Sum của LRD (o)/LRD (p) cho tất cả 48 xóm là 93,748939
- Divide bởi 48 để có được một LOF của 1,9531
Bạn có thêm kết quả RapidMiner cho minpts = 10 (không có một tối đa cao hơn)? Nó sẽ là thú vị để xem nếu nó đồng ý, hoặc luôn luôn đi đến vô cùng ở đây. –