Nhận xét về thời gian chạy của chương trình

Một phần của tài liệu PHÁT HIỆN DỮLIỆU BẤT THƯỜNG VỚI RỪNG CÔ LẬP (Trang 95)

Thời gian chạy của mô hình trên tập n phần tử được tính bằng thời gian huấn luyện cộng với thời gian đánh giá (tính điểm số bất thường).

Qua thực nghiệm, ta nhận thấy mô hình rừng cô lập (iForest) có thời gian chạy rất nhanh, giai đoạn training không bị ảnh hưởng vào kích thước của tập dữ liệu gốc ban đầu mà chỉ phụ thuộc vào số cây t và kích thước mẫu Ψ, qua thực nghiệm ta đã thu được kết quả mô hình phù hợp với kích thước mẫu nhỏ và số cây t dao động khoảng 60 đến 200. Giai đoạn đánh giá có giá trị tăng tuyến tính theo n.

CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1. Kết luận

Qua quá trình thực hiện đề tài “Phát hiện bất thường với Rừng cô lập”, bản thân tôi đã thu được những kết quả cụ thể như sau:

Nắm được cơ sở lý thuyết về phát hiện bất thường bao gồm: sự tồn tại của dữ liệu cô lập (bất thường) trong tập dữ liệu, những vấn đề khó khăn đưa ra trong lĩnh vực phát hiện bất thường, một số khía cạnh có liên quan về phát hiện bất thường như: bản chất của dữ liệu bất thường, các loại dữ liệu bất thường trong thực tế, những ứng dụng phổ biến hiện nay cho lĩnh vực phát hiện bất thường, một số kỹ thuật đang được triển khai cho phát hiện bất thường và các phương pháp đánh giá hiệu quả cho phát hiện bất thường.

Kếđến tôi đã tiến hành nghiên cứu và đã hiểu được bản chất của dữ liệu cô lập trong rừng cô lập [27], nắm vững được các giải thuật chính được đề nghị trong bài báo “Rừng cô lập” như: xây dựng cây cô lập, rừng cô lập, tính độ dài đường dẫn của các thể hiện trong tập dữ liệu, tính điểm số bất thường của các thể hiện trên tập dữ liệu. Cụ thể tôi đã thực hiện xây dựng rừng cô lập theo các giải thuật đã nêu (mục 3.6) một cách khá cụ thể theo từng giai đoạn: giai đoạn xây dựng rừng, giai đoạn tính điểm số bất thường và cuối cùng là chỉ ra được ý nghĩa của dữ liệu cô lập bị cô lập nhanh khi đi qua các cây cô lập trong rừng cô lập. Điều này có ý nghĩa thiết thực để tôi tiến hành bắt tay viết chương trình cho mô hình Rừng cô lập.

Từ sự hiểu biết có được trên cơ sở nghiên cứu về Rừng cô lập, tôi đã tiến hành viết chương trình cho mô hình rừng cô lập. Chương trình được viết bằng ngôn ngữ Java với tổng cộng số dòng lệnh của lớp chính iForest lên đến trên 400 dòng lệnh. Mô tả cụ thể các công đoạn chính (các hàm) trong chương trình được trình bày khá chi tiết ở chương 4. Để hổ trợ người dùng tôi đã thiết kế được giao diện cho mô hình rừng cô lập (hình 4.1), giao diện tuy khá đơn giản nhưng cũng đã đưa ra được một số công cụ cần thiết cho người dùng sử dụng mô hình để ứng dụng vào phát hiện bất thường cho một tập dữ liệu bất kỳ theo định dạng .csv. Ngoài ra để hổ trợ cho phần thực nghiệm tôi cũng đã viết thêm 3 đoạn mã lệnh để chạy cho 3 phương pháp thực nghiệm được điều khiển dưới 2 nút lệnh: AUC (cho thực nghiệm 1) và newTest (thực nghiệm 2,3).

Tôi đã lựa chọn được 5 tập dữ liệu cho phần thực nghiệm (mục 5.1), kế tiếp tôi đã tiến hành phân tích trên dữ liệu, tìm hiểu ý nghĩa của các thuộc tính trên từng tập dữ liệu để từđó có thể chỉ ra được đặc tính cô lập của những phần tử bất thường trong dữ liệu, dựa trên kiến thức đã nghiên cứu về rừng cô lập, kiến thức có được từ sự phân tích dữ liệu trên từng tập cụ thểđã chọn, kết quả có được do mô hình rừng cô lập chạy

trên từng tập dữ liệu cụ thể, tôi đã phân tích lại vấn đề bất thường trên dữ liệu dựa trên các kết quả thực nghiệm.

Tôi đã tiến thành làm thực nghiệm theo 3 nghi thức và tôi tạm gọi là thực nghiệm 1, 2, 3 theo từng nghi thức. Vì kết quả thu được từ 3 thực nghiệm khá ổn định trên các tập, sự sai khác không đáng kể về hiệu quả phát hiện (mục 5.3.1). Nên phần báo cáo cụ thể tôi chỉ trình bày cho thực nghiệm 1. Kết quả chi tiết thu được từ thực nghiệm 2, 3 được trình bày ở phần phụ lục.

Dựa trên những con số thống kê cụ thể qua các thực nghiệm, tôi đã tổng hợp số liệu từ 3 thực nghiệm (bằng bảng và biểu đồ) để từđó có những nhận định lại về mô hình rừng cô lập đã triển khai đó là: kỹ thuật rừng cô lập ứng dụng trong phát hiện dữ liệu bất thường cho kết quả khá tốt trong trường hợp tập dữ liệu thỏa mãn 2 tính chất ‘ít và khác’. Mặc khác, thời gian thực thi của chương trình cũng được đánh giá là một ưu thế của kỹ thuật rừng cô lập qua thực nghiệm vì việc xây dựng rừng cô lập chỉ phụ thuộc vào số cây và kích cỡ mẫu trên mỗi cây. Nó không phụ thuộc vào kích cỡ của toàn tập dữ liệu.

6.2. Hướng phát triển

Đề tài có thểđược phát triển thêm như sau:

o Kết hợp thêm một kỹ thuật có khả năng làm giảm chiều của tập, điều này có thể làm giảm sự ảnh hưởng của các thuộc tính không liên quan trong quá trình lựa chọn ngẫu nhiên.

o Cải tiến theo hướng tính khoảng cách giữa các thể hiện bất thường và các thể hiện bình thường trong tập dữ liệu.

TÀI LIỆU THAM KHẢO

[1] Agovic, A. and A. Banerjee. Anomaly Detection in Transportation Corridors using Manifold Embedding. in Procedings of the 1st International Workshop on Knowledge Discovery from Sensor. 2007: ACM Press.

[2] Aleskerov, E., B. Freisleben, and B. Rao. CARDWATCH: a neural network based database mining system for credit card fraud detection. in Computational Intelligence for Financial Engineering (CIFEr), 1997., Proceedings of the IEEE/IAFE 1997. 1997.

[3] Ando, S., Clustering Needles in a Haystack: An Information Theoretic Analysis of Minority and Outlier Detection, in Proceedings of the 2007 Seventh IEEE International Conference on Data Mining. 2007, IEEE Computer Society. [4] Anscombe, F.J. and I. Guttman, Rejection of Outliers. Technometrics, 1960.

2(2): p. 123-147.

[5] Asuncion, A. and D. Newman, UCI Machine Learning Repository. 2009. [6] Augusteijn, M.F. and B.A. Folkert, Neural network classification and novelty

detection. J. Remote Sensing, 2002. 23: p. 2891-2902.

[7] Basu, S., M. Bilenko, and R.J. Mooney, A probabilistic framework for semi- supervised clustering, in Proceedings of the tenth ACM SIGKDD international conference on Knowledge discovery and data mining. 2004, ACM: Seattle, WA, USA.

[8] Bolton, R., D. Hand, and David. Unsupervised Profiling Methods for Fraud Detection. in Proc. Credit Scoring and Credit Control VII. 2001.

[9] Boriah, S., V. Chandola, and V. Kumar. Similarity Measures for Categorical Data: A Comparative Evaluation. in Proceedings of 2008 SIAM Data Mining Conference. 2008.

[10] Bramer, M., Principles of Data Mining. 2007: Springer-Verlag London limited. [11] Brotherton, T., T. Johnson, and G. Chadderdon. Classification and novelty

detection using linear models and a class dependent-elliptical basis function neural network. in Neural Networks Proceedings, 1998. IEEE World Congress on Computational Intelligence. The 1998 IEEE International Joint Conference on. 1998.

[12] Chandola, V., A. Banerjee, and V. Kumar, Anomaly detection: A survey. 2007, Computer Science Department, University of Minnesota. p. 07-017.

[13] Dasgupta, D. and F. Nino. A comparison of negative and positive selection algorithms in novel pattern detection. in Systems, Man, and Cybernetics, 2000 IEEE International Conference on. 2000.

[14] De Stefano, C., C. Sansone, and M. Vento, To reject or not to reject: that is the question-an answer in case of neural classifiers. Systems, Man, and

Cybernetics, Part C: Applications and Reviews, IEEE Transactions on, 2000.

30(1): p. 84-94.

[15] Diehl, C.P. and J.B. Hampshire, II. Real-time object classification and novelty detection for collaborative video surveillance. in Neural Networks, 2002. IJCNN '02. Proceedings of the 2002 International Joint Conference on. 2002.

[16] Do, T., et al., Classifying very-high-dimensional data with random forests of oblique decision trees. 2009, Springer.

[17] Eskin, E., Anomaly Detection over Noisy Data using Learned Probability Distributions, in Proceedings of the Seventeenth International Conference on Machine Learning. 2000, Morgan Kaufmann Publishers Inc.

[18] Ester, M., H. peter Kriegel, and X. Xu. A density-based algorithm for

discovering clusters in large spatial databases with noise. 1996: AAAI Press. [19] Fujimaki, R., T. Yairi, and K. Machida, An approach to spacecraft anomaly

detection problem using kernel feature space, in Proceedings of the eleventh ACM SIGKDD international conference on Knowledge discovery in data mining. 2005, ACM: Chicago, Illinois, USA.

[20] Goldberger, A.L., et al., PhysioBank, PhysioToolkit, and PhysioNet : Components of a New Research Resource for Complex Physiologic Signals.

Circulation, 2000. 101(23): p. e215-220.

[21] Hofmann, D., et al., A Hierarchical Probabilistic Model for Novelty Detection in Text. 1999.

[22] Jain, A.K. and R.C. Dubes, Algorithms for clustering data. 1988: Prentice-Hall, Inc. 320.

[23] Joshi, M.V., R.C. Agarwal, and V. Kumar, Mining needle in a haystack: classifying rare classes via two-phase rule induction, in Proceedings of the 2001 ACM SIGMOD international conference on Management of data. 2001, ACM: Santa Barbara, California, United States.

[24] Keogh, E., et al., Finding the most unusual time series subsequence: algorithms and applications. Knowl. Inf. Syst., 2006. 11(1): p. 1-27.

[25] Larose, D.T., Discovering Knowledge In Data: An Introduction to Data Mining. 2005: A John Wiley & Sons, Inc., Publication.

[26] Latinne, P., O. Debeir, and C. Decaestecker, Limiting the Number of Trees in Random Forests, in Multiple Classifier Systems. 2001. p. 178-187.

[27] Liu, F.T., K.M. Ting, and Z.H. Zhou, Isolation forest.Proceedings of the 8th IEEE International Conference on Data Mining (ICDM'08), 2008: p. 413-422. [28] Noble, C.C. and D.J. Cook, Graph-based anomaly detection, in Proceedings of

the ninth ACM SIGKDD international conference on Knowledge discovery and data mining. 2003, ACM: Washington, D.C.

[29] Phoha, V.V., Internet security dictionary. 2002: Springer-Verlag New York, Inc. 237.

[30] Preiss, B.R., Data Structures and Algorithms with Object - Oriented Design Patterns in Java. 1999: Wiley.

[31] Shekhar, S., C.-T. Lu, and P. Zhang, Detecting graph-based spatial outliers: algorithms and applications (a summary of results), in Proceedings of the seventh ACM SIGKDD international conference on Knowledge discovery and data mining. 2001, ACM: San Francisco, California.

[32] Song, X., M. Wu, and C. Jermaine, Conditional Anomaly Detection. IEEE Trans. on Knowl. and Data Eng., 2007. 19(5): p. 631-645.

[33] Spence, C., L. Parra, and P. Sajda, Detection, Synthesis and Compression in Mammographic Image Analysis with a Hierarchical Image Probability Model,

in Proceedings of the IEEE Workshop on Mathematical Methods in Biomedical Image Analysis (MMBIA'01). 2001, IEEE Computer Society.

[34] Tan, P.-N., M. Steinbach, and V. Kumar, Introduction to Data Mining, (First Edition). 2005: Addison-Wesley Longman Publishing Co., Inc.

[35] Theiler, J. and M. Cai. Resampling Approach for Anomaly Detection in Multispectral Images. in in Proc. SPIE. 2003.

[36] Warrender, C., S. Forrest, and B. Pearlmutter. Detecting intrusions using system calls: alternative data models. in Security and Privacy, 1999. Proceedings of the 1999 IEEE Symposium on. 1999.

[37] Weigend, A., M. Mangeas, and A. Srivastava, Nonlinear Gated Experts for Time Series: Discovering Regimes and Avoiding Overfitting. 1995.

[38] Witten, I.H. and E. Frank, Data Mining: Practical Machine Learning Tools and Techniques. Second Edition ed. 2005: Morgan Kaufmann Publishers.

[39] Wong, W.-K., et al. Bayesian Network Anomaly Pattern Detection for Disease Outbreaks. in In Proceedings of the Twentieth International Conference on Machine Learning. 2003: AAAI Press.

PHỤ LỤC

PHỤ LỤC 1: CÁC LỚP CHÍNH CÓ TRONG CHƯƠNG TRÌNH 1.1. Lớp: IForest

Bảng thuộc tính:

STT Tên Kiểu Diễn giài

1. inputData double[][] Mảng chứa tập dữ liệu đầu vào 2. numTree int Số lượng cây

3. numAtt int Số thuộc tính 4. numInstance int Số thể hiện

5. sampleSize int Số thể hiện trong một mẫu con 6. isCreated boolean iForest được tạo hay không 7. iTree Node[] Danh sách các cây trong iForest

Bảng phương thức

STT Tên phương thức Kiểu trả

về Các tham số Diễn giải

1. initializeValue void double [][] input, int noAtt, int noInstance, int noTree, int noSample

Khởi tạo giá trị cho các thuộc tính lớp

2. setNumInstance void int n Đặt giá trị cho

numInstance = n

3. setNumAtt void int n Đặt giá trị cho

numAtt = n

4. setNumTree void int n Đặt giá trị cho

5. setSampleSize void int n Đặt giá trị cho sampleSize = n 6. getNumInstance int Không đối số Trả về số thể hiện 7. getNumAtt int Không đối số Trả về số thuộc tính 8. getNumTree int Không đối số Trả về số cây 9. getSampleSize int Không đối số Trả về kích thước

mẫu

10. getInputData double[][] Không đối số Trả về mảng các thể hiện đầu vào 11. importDataFromFile boolean String filename Import dữ liệu đầu

vào từ một tập tin 12. readDataFromFile double[][] String filename Đọc dữ liệu từ File

lưu vào mảng 13. createIForest void Không đối số Dựng rừng cô lập,

cho isCreated=true 14. createITree Node int[] xIndex, int

noInstance, int currentHeight, int heightLimit

Dựng cây cô lập

15. getPathLength double double[] x, Node tree, double currentLength

Trả vềđộ cao của x trên cây

16. getScore double double[] x Trả vềđiểm số bất thường của x 17. getAveragePathLen

gth

double double[] x Trả vềđộ cao trung bình của của x trên tập các cây cô lập 18. getSplitValue double int[] xIndex, int Trả về giá trị cắt p

attIndex, int noInstance

để chia tập

19. getHeightLimit int int n Trả vềđộ cao giới hạn trên cây có n phần tử

20. getSample int[] Không đối số Trả về mảng các chỉ số của các thể hiện trong tập (mẫu con)

1.2. LỚP: Node Bảng thuộc tính

STT Tên Kiểu Diễn giải

1. leftChild Node Con trái 2. rightChild Node Con phải

Bảng phương thức

Tên PT Kiểu trả về Các tham số Diễn giài

Node Hàm xây dựng Không đối số Hàm xây dựng khởi tạo một nút

1.3. LỚP: ExtNode extends Node Bảng thuộc tính

Tên thuộc tính Kiểu Diễn giài

exSize int Số các thể hiện trong nút

Bảng phương thức

STT Tên phương thức Kiểu trả về Các tham số Diễn giài

1. ExtNode Hàm xây dựng Không có Gán exSize=0 2. ExtNode Hàm xây dựng int size Gán exSize=size

1.4. LỚP: InNode extends Node

STT Tên thuộc tính Kiểu Diễn giài

1. SplitAtt int Chỉ số của thuộc tính cắt 2. SplitValue Double Giá trị cắt

PHỤ LỤC 2: KẾT QUẢ THỰC NGHIỆM 2.1. KẾT QUẢ THỰC NGHIỆM 2:

a) Kết quả Thực nghiệm trên Tập Breastw (theo PP2)

Kết quả chạy mô hình trên tập Breastw được ghi lại trên bảng PL-2 và biểu đồ PL-2 bên dưới. Dựa trên biểu đồ PL-2, chọn điểm (T=100, Ψ=32) có AUC=0.989165

Bảng PL-1: Giá trị (FPR,TPR) tại (T=100, Ψ=32) cho đường ROC trên biểu đồ PL-1

FPR TPR 0 0 0 0.286307 0.002669 0.571692 0.015526 0.837713 0.083697 0.998617 0.235808 1 0.388646 1 0.541485 1 0.694323 1 1 1

b) Kết quả Thực nghiệm trên Tập RayNau (theo thực nghiệm 2): Bảng PL-4 Bảng PL-3: Giá trị (FPR,TPR) tại (T=100, Ψ=32) cho đường ROC trên biểu đồ PL-3

FPR TPR 0 0 0 1 0.111111 1 0.222222 1 0.333333 1 0.444444 1 0.555556 1 0.666667 1 0.777778 1 1 1

ĐƯỜNG ROC (T=100, Y=32) - BREASTW 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 FPR T P R AUC=0.989165

Đường ROC (T=100,Y=32) - RayNau

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 FPR T P R Biu đồ PL-1 Biu đồ PL-3

Bng PL-2: Kết quả tính theo AUC trên tập Breastw theo thực nghiệm 2 0.974 0.976 0.978 0.98 0.982 0.984 0.986 0.988 0.99 0.992 T=20 T=40 T=60 T=80 T=100 T=120 T=140 T=160 T=180 T=200 T=250 T=300 Y=8 Y=16 Y=32 Y=64 Y=128 Y=256

Biu đồ PL-2: Kết quả thực nghiệm trên tập Breastw theo thực nghiệm 2

AUC T=20 T=40 T=60 T=80 T=100 T=120 T=140 T=160 T=180 T=200 T=250 T=300 Y=8 0.985740818 0.987072 0.987136 0.98815 0.987452 0.987706 0.987896 0.987325 0.988213 0.988467 0.98834 0.987516 Y=16 0.985042762 0.987199 0.988086 0.98815 0.989228 0.988594 0.98853 0.988657 0.98834 0.988974 0.98853 0.988721 Y=32 0.987389697 0.98834 0.988974 0.98853 0.989165 0.988911 0.989418 0.989355 0.989418 0.989799 0.989672 0.989418 Y=64 0.985677399 0.985994 0.986057 0.988277 0.987833 0.988467 0.98796 0.988023 0.988023 0.989038 0.988086 0.988086 Y=128 0.983141568 0.984916 0.98479 0.985614 0.986438 0.984662 0.984536 0.98536 0.985423 0.984725 0.985803 0.985423 Y=256 0.979340539 0.98162 0.981937 0.981874 0.981049 0.982191 0.981366 0.982381 0.982381 0.981748 0.981747 0.982127

Bng PL-4: Kết quả tính theo AUC trên tập RayNau theo thực nghiệm 2 T=20 T=40 T=60 T=80 T=100 T=120 T=140 T=160 T=180 T=200 T=250 T=300 Y=8 0.988889 0.998333 0.999444 0.999444 1 1 1 1 1 1 1 1 Y=16 0.999222 1 1 1 1 1 1 1 1 1 1 1 Y=32 1 1 1 1 1 1 1 1 1 1 1 1 Y=64 1 1 1 1 1 1 1 1 1 1 1 1 Y=128 0.999444 0.999778 0.999444 0.999889 0.999667 0.999778 0.999778 0.999889 0.999778 0.999778 1 0.999778 Y=256 0.997889 0.998667 0.998889 0.998889 0.998778 0.998889 0.998889 0.998889 0.998889 0.998889 0.998889 0.998889 0.986 0.988 0.99 0.992 0.994 0.996 0.998 1 1.002 T=20 T=40 T=60 T=80 T=100 T=120 T=140 T=160 T=180 T=200 T=250 T=300 Y=8 Y=16 Y=32 Y=64 Y=128 Y=256

c) Kết quả thực nghiệm trên tập Spambase ( theo thực nghiệm 2)

Kết quả chạy mô hình trên tập Spambase được ghi lại trên bảng PL-6 và biểu đồ PL-6 bên dưới. Trong trường hợp này chọn điểm T=80, Ψ=8 đại diện cho trường hợp tốt nhất của mô hình chạy trên tập dữ liệu này.

Một phần của tài liệu PHÁT HIỆN DỮLIỆU BẤT THƯỜNG VỚI RỪNG CÔ LẬP (Trang 95)