Khám phá phần tử ngoại lai trong cơ sở dữ liệu

  • Số trang: 121 |
  • Loại file: PDF |
  • Lượt xem: 42 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ ĐẶNG THỊ THU HIỀN KHÁM PHÁ PHẦN TỬ NGOẠI LAI TRONG CƠ SỞ DỮ LIỆU Chuyên ngành : Công nghệ thông tin Mã số : 1.01.10 LUẬN VĂN THẠC SĨ Người hướng dẫn khoa học: TS. Hoàng Xuân Huấn Hà Nội – 2005 1 MỤC LỤC Trang phụ bìa Lời cảm ơn Mục lục Danh mục từ viết tắt Trang 0 1 2 Mở đầu 5 6 CHƢƠNG 1: KHÁM PHÁ TRI THỨC TRONG CƠ SỞ DỮ LIỆU VÀ 8 PHẦN TỬ NGOẠI LAI 1.1 Khám phá tri thức 1.2 Các ứng dụng sử dụng kỹ thuật khai thác dữ liệu 1.3 Phần tử ngoại lai. 1.4. Mối quan hệ giữa phần tử ngoại lai và khai thác dữ liệu. 1.5 Ứng dụng của các phần tử ngoại lai CHƢƠNG 2: CÁC THUẬT TOÁN TÌM KIẾM PHẦN TỬ NGOẠI LAI DỰA TRÊN KHOẢNG CÁCH 2.1 Định nghĩa các phần tử ngoại lai dựa trên khoảng cách 2.2 Thuật toán Nested-Loop 2.2.1 Tƣ tƣởng thuật toán 2.2.2 Mô tả thuật toán NL 2.2.3 Đánh giá độ phức tạp của thuật toán NL 2.3 Thuật toán đánh giá theo ô 2.3.1 Các khái niệm và tính chất liên quan 8 10 11 12 12 14 14 14 14 15 16 17 17 2.3.2 Thuật toán FindAllOutsM cho các tập dữ liệu trong bộ nhớ chính 2.3.2.1 Tƣ tƣởng thuật toán 2.3.2.2 Mô tả thuật toán FindAllOutsM (Find All Outliers in Memory) 2.3.2.3 Đánh giá độ phức tạp thuật toán trong không gian hai chiều 18 18 19 21 2.3.2.4 Tổng quát cho trƣờng hợp nhiều chiều 2.3.2.5 Đánh giá độ phức tạp trong không gian nhiều chiều 2.3.3. Tìm kiếm các phần tử ngoại lai DB(p,D) trong các tập dữ liệu lớn, ở bộ nhớ ngoài 2.3.3.1 Phân tích tổng quát 23 24 25 25 2 2.3.3.2 Thuật toán FindAllOutsD cho các phần tử ngoại lai nằm trong bộ 27 nhớ ngoài 2.4 Xử lý thực nghiệm. 2.4.1 Thiết lập thực nghiệm 2.4.2 Thay đổi cỡ của tập dữ liệu 2.4.3 Thay đổi giá trị của p 2.4.4 Thay đổi chiều dữ liệu và số lƣợng ô 2.5 Tóm tắt CHƢƠNG 3: TRI THỨC SÂU VỀ PHẦN TỬ NGOẠI LAI 3.1 Các khái niệm về độ mạnh của các phần tử ngoại lai DB 3.2 Các định nghĩa và thuật ngữ 3.2.1 Các phần tử ngoại lai mạnh nhất và mạnh nhất Top-u 3.2.2 Các phần tử ngoại lai yếu và các phần tử ngoại lai tầm thƣờng 3.3 Ví dụ minh hoạ -các cầu thủ NHL 3.4 Thuật toán tìm kiếm các phần tử ngoại lai không tầm thƣờng (FindNonTrivialOuts) 3.5 Tóm tắt CHƢƠNG 4: XÁC ĐỊNH THAM SỐ p, D VÀ CÁC PHÉP BIẾN ĐỔI 4.1 Giới thiệu 4.2 Lấy mẫu và biến đổi thành dạng xấp xỉ chuẩn 4.2.1 Lấy mẫu và biến đổi 4.2.1.1 Lấy mẫu 4.2.1.2 Biến đổi thành dạng xấp xỉ chuẩn 4.2.2 Phép tích phân Monte-Carlo 4.2.3 Các bộ ƣớc lƣợng mạnh đơn biến 4.2.3.1 Shorth 4.2.3.2 MAD 4.2.4 Thuật toán KDD_Outliers 4.3 Các phép biến đổi không gian mạnh 4.3.1 Tổng quát hoá các hàm khoảng cách, các phép biến đổi không gian mạnh 4.3.1.1 Các hàm khoảng cách 4.3.1.2 Các phép biến đổi không gian mạnh 4.3.2 Các bộ ƣớc lƣợng nhị biến mạnh: hiệp phƣơng sai và hiệp phƣơng sai 31 31 32 33 34 34 36 36 37 39 40 43 46 49 50 50 51 51 51 53 56 58 58 59 61 63 63 63 65 67 3 mạnh 4.3.3 Bộ ƣớc lƣợng Donoho-Stahel (DSE) trong 2-D 4.3.3.1 Bộ ƣớc lƣợng Donoho-Stahel (DSE) trong 2-D 4.3.3.2 Các kết quả thí nghiệm 2-D 4.3.4 So sánh sự khác nhau giữa các bộ ƣớc lƣợng, các thuộc tính chính của 68 68 70 78 DSE 4.3.4.1 So sánh sự khác nhau giữa các bộ ƣớc lƣợng 4.3.4.2 Các thuộc tính chính của DSE 4.3.5 Bộ ƣớc lƣợng Donoho-Stahel k-D 4.3.5.1 Thuật toán Fixed-Angle k-D 4.3.5.2 Thuật toán lấy mẫu phụ (SubSampling) k-D 4.3.5.3 Các thuật toán ngẫu nhiên đối với việc tính toán DSE k-D 4.3.6 Sự đánh giá thí nghiệm 4.3.6.1 Các tham số bên trong của các thuật toán 4.3.6.2 Xác định tỷ lệ đã cho về mức gọi lại (recall) 4.3.6.3 So sánh kích cỡ và số mặt cắt(patches) với tỷ lệ xung đột 78 80 83 83 84 86 89 89 93 94 4.4 Tổng kết CHƢƠNG 5: XÁC ĐỊNH CÁC PHẦN TỬ NGOẠI LAI CỤC BỘ DỰAVÀO 95 97 MẬT ĐỘ 5.1. Một số trở ngại của các cách tiếp cận trƣớc đây. 97 5.2. Định nghĩa các phần tử ngoại lai theo cách nhìn địa phƣơng. 5.3 Tính chất của các phần tử ngoại lai cục bộ 5.3.1 LOF của các đối tƣợng nằm sâu trong một vùng 5.3.2 Cận trên và cận dƣới của LOF 5.3.3 Tính chặt chẽ của các cận LOF 98 101 101 102 104 5.3.4 Cận trên và cận dƣới của đối tƣợng có các lân cận trực tiếp nằm trong nhiều vùng 106 5.4. Sự ảnh hƣởng của tham số Minpts. 5.4.1 Sự phụ thuộc của LOF theo Minpts 109 109 5.4.2 Xác định miền của Minpts 5.5. Thực nghiệm 5.6 Đánh giá độ phức tạp của thuật toán xác định giá trị LOF KẾT LUẬN 110 112 114 116 4 DANH MỤC TỪ VIẾT TẮT Từ viết tắt Nghĩa của từ Box_Cox Tên phép biến đổi thành dạng xấp xỉ chuẩn DB (Distance Based) Dựa trên khoảng cách DSE (Donoho Stahel) Tên bộ ƣớc lƣợng mạnh đa biến KDD (Know ledgement Discovery Khám phá tri thức trong cơ sở dữ liệu in Database) LOF (Local Outlier Factor) Yếu tố ngoại lai cục bộ MAD (Median Absolute Deviation) Là tên một bộ ƣớc lƣợng mạnh đơn biến NHL (National Hockey League) Liên đoàn môn Hockey quốc gia NL (Nested Loop) Tên một thuật toán phát hiện phần tử ngoại lai Shorth (Shortest half) Là tên một bộ ƣớc lƣợng mạnh đơn biến 5 MỞ ĐẦU Thế kỷ XXI đƣợc xem là một kỷ nguyên của nền kinh tế tri thức. Các công nghệ khám phá tri thức đƣợc áp dụng rộng rãi trong nhiều lĩnh vực và đã đem lại những thành tựu to lớn. Nhƣng các công nghệ khám phá tri thức thƣờng nhằm mục đích tìm kiếm, khám phá các dạng và mẫu thƣờng gặp. Chủ yếu tập trung vào các hƣớng: Tìm kiếm các luật kết hợp, nhận dạng và phân lớp mẫu…Còn lĩnh vực khám phá phần tử ngoại lai mới bƣớc đầu đƣợc sự quan tâm nghiên cứu. Mặc dù nó đƣợc ứng dụng trong nhiều lĩnh vực của cuộc sống: nhƣ phát hiện những thẻ bất thƣờng trong hệ thống ngân hàng, những tuyến đƣờng bất ổn không hợp lý trong giao thông, ứng dụng trong hệ thống an ninh, dự báo thời tiết, trong thị trƣờng chứng khoán, trong lĩnh vực thể thao v.v.v. Tuy nhiên, với số lƣợng dữ liệu đƣợc tập trung và lƣu trữ trong cơ sở dữ liệu ngày càng lớn thì việc tìm kiếm các ngoại lệ hoặc các phần tử ngoại lai trở nên cấp thiết hơn nhiều. Xuất phát từ thực tế đó, luận văn này thực hiện các nhiệm vụ sau: - Tìm hiểu các khái niệm về khám phá tri thức (KDD) và khai thác dữ liệu (Data mining). - Tìm hiểu các khái niệm về phần tử ngoại lai theo cách nhìn toàn cục và địa phƣơng. - Khảo cứu các thuật toán tìm kiếm các phần tử ngoại lai trên dữ liệu lớn, nhiều chiều. - Kiểm tra đánh giá các thuật toán trên dữ liệu thực: đó là tập dữ liệu về các cầu thủ chơi Hockey do Knorr thực hiện và tập dữ liệu về các khách hàng của ngân hàng đầu tƣ và phát triển BIDV do chúng tôi thực hiện. Ngoài phần phần mở đầu và kết luận, luận văn gồm có năm chương Chƣơng 1, giới thiệu về quá trình khám phá tri thức bao gồm các khái niệm: Khai thác dữ liệu(Data mining), Khám phá tri thức, khái niệm về phần tử ngoại lai và các ứng dụng của chúng. Đồng thời, trình bày các ứng dụng sử dụng các kỹ thuật khai thác dữ liệu trong các lĩnh vực khác nhau và mỗi quan hệ giữa phần tử ngoại lai và lĩnh vực khai thác dữ liệu. Chƣơng 2 chúng tôi giới thiệu định nghĩa các phần tử ngoại lai dựa trên khoảng cách DB(p, D) theo cách nhìn toàn cục. Đồng thời trình bày hai thuật toán khám phá phần tử ngoại lai trong tập dữ liệu lớn, nhiều chiều: đó là thuật toán Nested-Loop có độ phức tạp O(kN2)(k là chiều và N là cỡ của dữ liệu ), thuật toán đánh giá theo ô có độ phức tạp tuyến tính với N nhƣng lại lũy thừa đối với chiều của dữ liệu: O(mckkk/2+kN), với m là một số các ô, c là một hằng số. 6 Chƣơng 3 chúng tôi trình bày các kiến thức sâu về phần tử ngoại lai. Cung cấp các khái niệm về độ mạnh yếu của phần tử ngoại lai. Đƣa ra một thuật toán tìm tất cả các phần tử ngoại lai DB “mạnh nhất” trong một tập dữ liệu. Thuật toán này sử dụng chiến lƣợc xén tỉa để tìm các phần tử ngoại lai mạnh nhất. Nó cũng trả về các phần tử ngoại lai “yếu” tuỳ theo yêu cầu. Chƣơng 4, trình bày sự phân tích về cách tìm các giá trị mặc định cho các tham số p và D, đồng thời giới thiệu các phép biến đổi để giúp việc tìm kiếm các phần tử ngoại lai DB có ý nghĩa hơn. Công việc này liên quan đến việc biến đổi Box-Cox sang dạng chuẩn tƣơng đối và tích phân monte-Carlo.Chúng tôi cũng khám phá vai trò lấy mẫu trong việc xác định các giá trị mặc định p và D. Tổng quát hoá cách tìm kiếm các phần tử ngoại lai bằng việc sử dụng các biến đổi không gian mạnh. Chúng tôi giới thiệu bộ đánh giá Donoho-Stahel (DSE). Trình bày một số thuật toán dùng để tính toán bộ DSE. Trong đó có thuật toán mới của Knorr, gọi là thuật toán lai - ngẫu nhiên (Hybrid – Random). Trong hầu hết các trƣờng hợp, nó thực hiện tốt hơn các thuật toán DSE khác. Chƣơng 5 chúng tôi giới thiệu một định nghĩa chặt chẽ hơn về phần tử ngoại lai khi xem xét các đối tƣợng trong tập dữ liệu dựa trên mật độ theo cách nhìn địa phƣơng. Trình bày cấp độ ngoại lai và các tính chất của từng đối tƣợng. Đồng thời kiểm tra chƣơng trình ứng dụng thuật toán LOF trên cơ sở dữ liệu thực của ngân hàng đầu tƣ và phát triển BIDV, sau đó đƣa ra ý nghĩa của các phần tử ngoại lai. Cuối cùng trình bày đánh giá độ phức tạp của thuật toán xác định giá trị LOF. 7 CHƢƠNG 1: KHÁM PHÁ TRI THỨC TRONG CƠ SỞ DỮ LIỆU VÀ PHẦN TỬ NGOẠI LAI Nội dung của chƣơng này giới thiệu quá trình khám phá tri thức, khai thác dữ liệu, và các ứng dụng thực tế có sự hỗ trợ của các kỹ thuật khai thác dữ liệu. Đồng thời, trình bày khái niệm về phần tử ngoại lai và mỗi quan hệ giữa lĩnh vực khám phá phần tử ngoại lai và lĩnh vực khai thác dữ liệu. 1.1 Khám phá tri thức Với sự tiến bộ của khoa học kỹ thuật và nhu cầu con ngƣời ngày càng tăng đã tạo nên một thời đại bùng nổ thông tin trong mọi lĩnh vực của đời sống. Với lƣợng thông tin “khổng lồ” đó thì cần có các kỹ thuật khai thác dữ liệu hiệu quả để lấy ra những thông tin hữu ích. Một số các ngôn ngữ truy vấn đƣợc sử dụng nhằm lấy ra những thông tin theo yêu cầu của ngƣời sử dụng, nhƣng hầu hết các ngôn ngữ này chỉ lấy ra đƣợc dữ liệu theo những yêu cầu đơn giản. Các kiểu dữ liệu đa phƣơng tiện đƣợc một số các hệ thống cơ sở dữ liệu hỗ trợ nhƣ: Dữ liệu âm thanh, hình ảnh…không thể đáp ứng đƣợc khi các yêu cầu của ngƣời sử dụng ngày càng cao và phức tạp. Do đó, với nhu cầu tìm kiếm tri thức trong cơ sở dữ liệu đã hình thành một lĩnh vực mới: Khám phá tri thức trong cơ sở dữ liệu. Khám phá tri thức là toàn bộ quá trình tìm kiếm tri thức từ dữ liệu, bao gồm các bƣớc sau: - Chuẩn bị dữ liệu: Dữ liệu đƣợc tập trung vào trong các cơ sở dữ liệu, các kho dữ liệu. Dữ liệu có thể là chƣa sạch tức là có cả dữ liệu sai sót, không phù hợp, nhiễu, và các dữ liệu không đủ thông tin. Do đó, trong bƣớc này dữ liệu đƣợc làm sạch để loại bỏ các dữ liệu không phù hợp, dữ liệu không liên quan. Công việc này có thể đƣợc tiến hành trƣớc hoặc sau khi phát hiện dữ liệu bị nhiễm bẩn. Đồng thời, sau khi đƣợc làm sạch, dữ liệu đƣợc làm giàu để bổ sung những thông tin cần thiết. Sau đó dữ liệu đƣợc biến đổi theo các dạng phù hợp để thực hiện quá trình khai thác dữ liệu. - Khai thác dữ liệu: Khai thác dữ liệu là một bƣớc quan trọng trong quá trình khám phá tri thức. Bƣớc này sử dụng các kỹ thuật, các phƣơng thức thông minh để xác định các mẫu dữ liệu theo yêu cầu. Khai thác dữ liệu được định nghĩa là quá trình khai thác, khám phá những thông tin hữu ích, chưa được biết trước, tiềm ẩn và không tầm thường từ những tập dữ liệu lớn. Khai thác dữ liệu có thể bao gồm: ● Tìm kiếm các luật kết hợp: Sử dụng các luật đơn giản để biểu diễn tri thức. Tìm kiếm những mỗi quan hệ có ích của dữ liệu. ● Dự báo: Xác định các hàm hồi quy. 8 ● Nhận dạng và phân lớp mẫu: tìm kiếm, xác định các mẫu theo yêu cầu, phân chia các mẫu thành các lớp nhằm phục vụ cho mục đích sử dụng. ● Phát hiện phần tử ngoại lệ : Tìm kiếm và xác định các đối tƣợng dữ liệu lỗi, bất thƣờng, và các phần tử ngoại lai. Môi trƣờng khám phá tri thức nhằm mục đích hỗ trợ quá trình khai thác dữ liệu. Do đó, hai thuật ngữ “khai thác dữ liệu”(Data Mining) và “khám phá tri thức”(Knowledge Discovery) thƣờng đƣợc sử dụng để thay thế cho nhau. - Đánh giá: Bƣớc đánh giá bao gồm đánh giá mẫu và biểu diễn tri thức. Đánh giá mẫu là tìm ra những mẫu quan tâm từ các mẫu đã có trong bƣớc khai thác dữ liệu. Có thể sử dụng các ngƣỡng cần thiết để lọc ra các mẫu cần khai thác. Biểu diễn tri thức là quá trình cho phép ngƣời sử dụng tƣơng tác với hệ thống bằng các nhiệm vụ hoặc các truy vấn tìm kiếm dữ liệu cụ thể. Cung cấp thông tin nhằm mục đích trợ giúp việc tìm kiếm và thực hiện khai thác dữ liệu chi tiết dựa trên dữ liệu đã đƣợc khai thác. Ngoài ra, biểu diễn tri thức cho phép ngƣời sử dụng trình duyệt các lƣợc đồ cơ sở dữ liệu và kho dữ liệu hoặc các cấu trúc dữ liệu. Hình 2.1 trình bày tổng thể qui trình KDD, không chỉ bao gồm khai thác dữ liệu mà còn có các bƣớc khác để có đƣợc kết quả. Các bƣớc khai thác dữ liệu thƣờng tiêu tốn thời gian và phức tạp nhất của qui trình, tuy nhiên các bƣớc tiền xử lý và hậu xử lý cũng không đơn giản và có thể tiêu tốn nhiều thời gian hơn so với các thuật toán khai thác dữ liệu. Chúng tôi thực hiện hầu hết các bƣớc trên hình 2.1 trong việc tìm kiếm các phần tử ngoại lai DB. Một số bƣớc tiền xử lý liên quan đến việc tìm các giá trị khởi tạo hợp lý cho p và D (xem chƣơng 4). Hậu xử lý có thể đƣợc thực hiện bởi chuyên gia. Những sự lựa chọn thích hợp đƣợc thực hiện trong các bƣớc tiền xử lý bởi cả ngƣời sử dụng và máy có thể giảm nhiều thời gian liên quan đến bƣớc khai thác dữ liệu và có thể giảm công việc thủ công trong phần hậu xử lý. Bằng cách lựa chọn các giá trị thích hợp cho p và D, quy trình KDD có thể làm cho các phần tử ngoại lai có nhiều ý nghĩa hơn đối với ngƣời sử dụng và giảm thời gian xác định p và D. 9 KNOWLEDGE Đánh Giá và Biểu Diễn Khai thác Dữ Liệu Các Mẫu Trích Chọn Trích Chọn và Biến Đổi Dữ Liệu Làm Sạch và Tích Hợp Dữ Liệu Các Cơ Sở Dữ Liệu Các File Bằng Hình 2.1 Qui trình KDD Knowledgement Discovery in Database – Khám phá Tri thức trong Cơ sở dữ liệu 1.2 Các ứng dụng sử dụng kỹ thuật khai thác dữ liệu. Có rất nhiều ứng dụng trong các lĩnh vực khác nhau sử dụng các kỹ thuật khai thác dữ liệu nhằm hỗ trợ cho mục đích sử dụng. Ví dụ: trong thƣơng mại, một công ty hay một tổ chức sử dụng các kỹ thuật khai thác dữ liệu để tặng khuyễn mãi cho các khách hàng dựa vào tần suất truy cập website, kiểu khách hàng, số lƣợng hàng đã mua ở các lần trƣớc. Trong ngân hàng, ngƣời ta sử dụng các kỹ thuật khai thác dữ liệu để xác định rủi ro về thẻ tín dụng. Trong các công ty bảo hiểm, sử dụng kỹ thuật khai thác 10 dữ liệu để xác định các lỗi và các trƣờng hợp rủi ro cao có thể xảy ra. Các tổ chức chống tội phạm sử dụng các kỹ thuật khai thác dữ liệu để tìm kiếm, nhận dạng tội phạm. Các công cụ tìm kiếm trang Web áp dụng các kỹ thuật thông minh để có thể tìm kiếm đƣợc những trang web theo yêu cầu của ngƣời sử dụng với độ chính xác cao. Các kỹ thuật khai thác dữ liệu còn đƣợc áp dụng trong các lĩnh vực khác nhƣ phân tích thị trƣờng chứng khoán, dự báo tỷ lệ thay đổi ngoại tệ, mô hình hóa Protein, tìm kiếm các gene trong các chuỗi DNA, dự báo thời tiết , nhận dạng ảnh và văn bản… 1.3 Phần tử ngoại lai. Trong các tập dữ liệu thƣờng tồn tại các đối tƣợng dữ liệu không tuân theo một hình thức hoặc một mô hình dữ liệu chung, các đối tƣợng dữ liệu mà giá trị dữ liệu đƣợc xem là nằm ngoài phạm vi hoặc không liên quan tới tập dữ liệu còn lại. Những đối tƣợng có đặc tính trên đƣợc gọi là các phần tử ngoại lai. Các phần tử ngoại lai có thể do lỗi thực hiện hoặc lỗi phép đo gây ra. Ví dụ việc hiển thị một ngƣời có tuổi 999 có thể là do việc thiết lập mặc định chƣơng trình không giới hạn tuổi dữ liệu. Mặt khác, các phần tử ngoại lai có thể là kết quả của quá trình tự nhiên. Có nhiều thuật toán khai thác dữ liệu cố gắng làm cực tiểu hoá sự ảnh hƣởng của các phần tử ngoại lai, loại bỏ chúng cùng một lúc. Tuy nhiên, điều đó có thể làm mất những thông tin tiềm ẩn quan trọng khi “nhiễu của ngƣời này lại là tín hiệu của ngƣời khác”. Có nhiều định nghĩa đƣợc đƣa ra để định nghĩa phần tử ngoại lai nhƣ định nghĩa của Barnet và Levis : “Một phần tử ngoại lai là một đối tƣợng xuất hiện không nhất quán với tập dữ liệu còn lại.”. Hawkins mô tả định nghĩa trực quan về phần tử ngoại lai có thể là “ Một đối tƣợng mà nó lệch hƣớng rất nhiều với đối tƣợng khác do đó dẫn đến sự nghi ngờ rằng chúng đƣợc tạo ra bởi một kỹ thuật khác.” [20]. Nói khác đi, các đối tƣợng không cùng một mô hình tạo sinh với tập dữ liệu còn lại đƣợc xem là các phần tử ngoại lai. Một phần tử ngoại lai có thể là một đối tƣợng dữ liệu trong các trƣờng hợp sau: ● Nằm trong một phân bố khác với phân bố của tập dữ liệu còn lại. ● Là một đối tƣợng có giá trị hợp lệ nhƣng không phải là đối tƣợng mong muốn. ● Là đối tƣợng dữ liệu đƣợc tạo sinh có sai sót. Đối với trƣờng hợp các phần tử ngoại lai có thể là các đối tƣợng hợp lệ nhƣng chúng có giá trị không mong muốn, ta không cần thiết phải loại bỏ chúng khỏi tập dữ liệu nhƣng các đối tƣợng này phải đƣợc xác định hay nhận dạng. Draper và Smith nhận 11 xét rằng một phần tử ngoại lai có thể “cung cấp thông tin mà các đối tƣợng khác không thể bởi vì nó xuất hiện từ sự kết hợp bất bình thƣờng của một số trƣờng hợp rất có ý nghĩa” [13]. Nếu một phần tử ngoại lai không phải là một đối tƣợng hợp lệ ( có thể là do nó đƣợc đánh giá và đƣa vào không đúng) thì nó có thể đƣợc phát hiện, khắc phục và đánh giá bởi các chuyên gia. Do đó, phụ thuộc vào từng ngữ cảnh các phần tử ngoại lai có thể đƣợc loại bỏ từ tập dữ liệu để làm tăng tính thuần nhất của dữ liệu còn lại. Nói tóm lại, các phần tử ngoại lai là những đối tƣợng đủ khác với hầu hết các điểm khác.Tuy nhiên, không có một định nghĩa về phần tử ngoại lai nào đƣợc chấp nhận rộng rãi. Các phần tử ngoại lai thƣờng đƣợc xem là các điểm không thoả mãn mô hình dữ liệu đang xét. Việc phần tử ngoại lai có bị loại bỏ hay không còn phụ thuộc vào từng chƣơng trình ứng dụng và quyết định bởi chuyên gia. 1.4. Mối quan hệ giữa phần tử ngoại lai và khai thác dữ liệu. Trƣớc khi các kỹ thuật khai thác thác dữ liệu ra đời, thông tin hữu ích chỉ đƣợc khai thác hiệu quả trên các tập dữ liệu với cỡ và số chiều dữ liệu là nhỏ. Do đó, để có thể khai thác dữ liệu một cách hiệu quả với khối lƣợng thông tin lớn thì cần thiết phải có các công cụ khai thác dữ liệu tốt, các thuật toán khai thác dữ liệu tự động, thời gian thực hiện nhanh. Trong thực tế các chƣơng trình ứng dụng khai thác dữ liệu thƣờng phải khai thác dữ liệu trên các tập dữ liệu rất lớn không phù hợp với bộ nhớ chính. Dữ liệu đó đƣợc gọi là dữ liệu nằm ở bộ nhớ ngoài(Disk-resident Data). Một vấn đề đƣợc quan tâm trong luận văn này là tìm hiểu các thuật toán khai thác, tìm kiếm các phần tử ngoại lai trong các tập dữ liệu lớn, nhiều chiều. Hiện nay, một số các kỹ thuật phát hiện phần tử ngoại lai nhằm các mục đích sau: a) Cung cấp một số giải thích hoặc mô tả về không gian dữ liệu mà trong đó xuất hiện phần tử ngoại lai. b) Cung cấp một số thông tin về mối quan hệ giữa các phần tử ngoại lai (ví dụ đối với cƣờng độ của hai phần tử ngoại lai ). Một vấn đề khác cần quan tâm liên quan tới “ý nghĩa” của các phần tử ngoại lai. Cho đến nay, chƣa có một định nghĩa nào có thể định nghĩa một cách đầy đủ và chính xác về phần tử ngoại lai. Việc xác định các phần tử ngoại lai trong mỗi lĩnh vực là khác nhau. Bởi vì “ý nghĩa” ngoại lai của các phần tử ngoại lai mang tính chất và đặc trƣng của từng lĩnh vực áp dụng, nên rất khó để đƣa ra đƣợc một định nghĩa hoàn chỉnh về phần tử ngoại lai. 1.5 Ứng dụng của các phần tử ngoại lai 12 Đối với một số ứng dụng khám phá tri thức, các sự kiện hiếm có thƣờng đƣợc quan tâm hơn các sự kiện thông thƣờng, chẳng hạn việc phát hiện các thẻ tín dụng giả, theo dõi các hoạt động tội phạm trong thƣơng mại điện tử. Sau sự tấn công các trang web năm 2000 và đặc biệt sự kiện khủng bố tấn công nƣớc Mỹ ngày 11/9/2001, ngƣời ta quan tâm nhiều đến việc bảo mật máy tính, bao gồm cả phần cứng, phần mềm và cả hệ thống mạng (ví dụ:phát hiện sự xâm nhập). Bảo mật hệ thống mạng bao gồm tần suất của các tấn công dịch vụ mà một sự kiện bên ngoài đƣợc phát hiện trong gói dữ liệu hệ thống mạng (ví dụ: số lƣợng lớn không bình thƣờng các gói dữ liệu từ một nguồn lạc danh). Công cụ thống kê có thể đƣợc dùng để tìm ra một thói quen là ngoại lệ tƣơng ứng với một lịch sử đã biết (ví dụ: những thói quen điển hình theo đăng nhập, sử dụng CPU và truy xuất dữ liệu ). Đối với các hệ thống thanh toán điện tử bao gồm các ứng dụng thẻ tín dụng, thẻ điện thoại và thẻ thông minh, chúng ta quan tâm tới việc phát hiện thẻ giả. Một ứng dụng nữa của việc phát hiện phần tử ngoại lai là nghiên cứu cổ phiếu. Các công ty và các cá nhân đã từng thử dự đoán giá trị các cổ phiếu đƣợc niêm yết. Giả sử phần lớn giá các cổ phiếu ở một nghành đang lên cao ở một thị trƣờng ảo, và có các thị trƣờng khác (trong cùng một ngành) mà giá cổ phiếu biến động đột ngột. Các phần tử ngoại lai nhƣ thế nên đƣợc xác định, và sau đó nhà phân tích có thể dựa vào các nguyên nhân để giải thích sự quá nóng hoặc quá lạnh của thị trƣờng để xác định khuynh hƣớng của cổ phiếu (ví dụ mua, bán, tích luỹ). Sự có mặt của các phần tử ngoại lai trong các cổ phiếu của các quỹ chung, có thể giúp làm đa dạng hoá bảng niêm yết cổ phiếu trong cùng một loại. Trên các thị trƣờng chứng khoán thế giới, hàng triệu giao dịch đƣợc thực hiện mỗi ngày. Các nhà quản lý bảng niêm yết, các nhà tƣ vấn đầu tƣ & các doanh nhân nhỏ tìm mua các cổ phiếu đang xuống để kiếm lời. Các hãng kinh doanh ở phố Wall là một trong những nhà chứng khoán sành sỏi nhất thế giới về phần cứng và phần mềm máy tính tiên tiến. Ví dụ Công ty Insighful nhà sản xuất phần mềm thống kê S-PLUS bán các công cụ thống kê và khai thác dữ liệu siêu việt cho rất nhiều khách hàng trong lĩnh vực đầu tƣ. Trong thể thao chuyên nghiệp các ông bầu thƣờng khuyến khích sự cạnh tranh giữa các cầu thủ trong đội để xây dựng một đội mạnh đặc biệt với nguồn tài chính cố định và một đội hình tài năng, đa dạng (đƣợc xác định bằng những sự thống kê, sự trình diễn của các cầu thủ). Ví dụ một ông bầu có thể chấp nhận các cầu thủ chƣa nổi danh (có thể tƣơng đối dẻ), những cầu thủ có phong cách thi đấu tốt và ấn tƣợng 13 CHƢƠNG 2: CÁC THUẬT TOÁN TÌM KIẾM PHẦN TỬ NGOẠI LAI DỰA TRÊN KHOẢNG CÁCH Trong chƣơng này sẽ trình bày khái niệm các phần tử ngoại lai theo cách nhìn toàn cục. Đồng thời giới thiệu thuật toán NL và hai phiên bản của thuật toán đánh giá theo ô để tìm kiếm các phần tử ngoại lai trên các tập dữ liệu lớn, nhiều chiều nằm trong bộ nhớ trong hoặc nằm trong bộ nhớ ngoài. Chúng tôi giới thiệu đánh giá độ phức tạp về thời gian của các thuật toán, trình bày thực nghiệm của Knorr[24] để đánh giá và so sánh thời gian thực hiện của các thuật toán. 2.1 Định nghĩa các phần tử ngoại lai dựa trên khoảng cách Cho N là số lƣợng các đối tƣợng trong tập dữ liệu T. Gọi d là hàm khoảng cách giữa một cặp đối tƣợng bất kỳ trong tập dữ liệu. Với một đối tƣợng O, gọi S(o) là tập các lân cận của o bao gồm tất cả các đối tƣợng q thỏa mãn điều kiện: d(o,q)≤ D, trong đó D là tham số đầu vào. Có nghĩa là:S(o)= {qT| d(o,q)≤ D }. S(o) đƣợc gọi là tập các lân cận của điểm O theo khoảng cách D. Định nghĩa: Một đối tƣợng O trong một tập cơ sở dữ liệu T đƣợc gọi là một phần tử ngoại lai dựa trên khoảng cách DB(p, D) (DB là viết tắt của từ Distance Based) nếu có ít nhất p phần trăm các đối tƣợng trong T mà khoảng cách giữa chúng với O lớn hơn D. Điều đó có nghĩa là lực lƣợng của tập hợp S(o) là nhỏ hơn hoặc bằng (100p)% cỡ của T. Gọi M là số lƣợng lớn nhất các đối tƣợng thuộc S(o) mà một đối tƣợng ngoại lai có thể có. Theo định nghĩa các phần tử ngoại lai dựa trên khoảng cách DB(p, D) thì M=(1-p)*N. Việc tìm kiếm tất cả các phần tử ngoại lai sẽ đƣợc bắt đầu từ việc tìm kiếm các đối tƣợng thuộc S(o) của tất cả các điểm O trong tập dữ liệu. Trong quá trình tìm kiếm nếu số lƣợng của S(o) lớn hơn M thì O đƣợc gọi là không ngoại lai. Ngƣợc lai sau khi kết thúc quá trình tìm kiếm mà lực lƣợng của S(o) ≤M thì thông báo O là phần tử ngoại lai. 2.2 Thuật toán Nested-Loop. 2.2.1 Tƣ tƣởng thuật toán. Để tìm kiếm tất cả các phần tử ngoại lai dựa trên khoảng cách DB(p, D) trên tập dữ liệu lớn, nằm ở bộ nhớ ngoài, thuật toán NL chia tập dữ liệu thành các khối sử dụng các vòng lặp lồng nhau để tìm kiếm.Cụ thể, giả sử có một bộ nhớ trung gian cỡ b% 14 tập dữ liệu. Tƣ tƣởng thuật toán chia bộ nhớ thành hai phần gọi là mảng A và mảng B. Mỗi mảng cỡ b/2% cỡ của tập dữ liệu. Chia tập dữ liệu thành n=2*100/b khối để mỗi khối có thể đƣợc chứa trong mỗi mảng của bộ nhớ. Đầu tiên, đọc một khối vào mảng A, với mỗi đối tƣợng O trong mảng A, thuật toán lƣu lại số lƣợng các đối tƣợng thuộc S(o). Việc tính toán sẽ kết thúc cho một đối tƣợng cụ thể ngay khi số lƣợng các đối tƣợng thuộc S(o) vƣợt quá M và thông báo O không phải là phần tử ngoại lai. Tiếp theo, đọc lần lƣợt các khối còn lại vào trong mảng B. Với mỗi đối tƣợng O thuộc mảng A chƣa đƣợc thông báo là không ngoại lai và các đối tƣợng q thuộc khối nằm trong mảng B. Chúng ta sẽ tiến hành tính toán khoảng cách d(o,q) để xem xét q có là lân cận thuộc S(o) hay không. Khi số lƣợng của S(o) lớn hơn M thì thông báo P là không ngoại lai. Ngƣợc lai sau khi thực hiện tính toán với tất cả các khối còn lại mà số lƣợng S(o) ≤M thì thông báo O là ngoại lai. Bằng cách đổi vai trò hai mảng : mảng A và mảng B , thuật toán sẽ lần lƣợt tính toán và đánh giá đƣợc tất cả các điểm thuộc các khối còn lại. Xét thuật toán NL với bộ nhớ trung gian là 50% cỡ cơ sở dữ liệu. Gọi A,B,C,D lần lƣợt là 4 khối lôgíc 1/4 chứa tập dữ liệu. Chúng ta đƣa các khối vào các mảng theo thứ tự dƣới đây và so sánh: 1. A với A , sau đó với các khối B,C,D. Tổng số là 4 khối đƣợc đọc. 2. D với D , sau đó với các khối A ( không yêu cầu đọc ),B,C. Tổng số là 2 khối đƣợc đọc. 3. C với C , sau đó với các khối D,A,B. Tổng số là 2(A,B) khối đƣợc đọc. 4. B với B , sau đó với các khối C,A,D. Tổng số là 2 khối đƣợc đọc. Do đó, có 10 khối lớn đƣợc đọc, tức là tập dữ liệu đƣợc đọc 10/4=2.5 lần. Trong phần 2.3.3.2.3 chúng ta sẽ tính toán số lƣợng yêu cầu đọc tập dữ liệu cho quá trình thực hiện thuật toán trong trƣờng hợp chung. 2.2.2 Mô tả thuật toán NL: 1. Đƣa một khối các điểm dữ liệu từ T vào trong mảng A (có cỡ là b/2% cỡ của tập dữ liệu). 2. For (mỗi điểm ti trong mảng A) do: {counti=0; for(mỗi điểm tj trong mảng A) do: if (d(ti,tj)≤D) { counti++; if (counti>M) { ti =không ngoại lai; break; } } } 15 3. while (những khối còn chƣa đƣợc so sánh với mảng A) do { a. Lƣu một khối vào mảng B ( Nhƣng sẽ giữ lại một khối mà nó chƣa đƣợc lƣu vào mảng A để tính toán cho lần sau). b. for(mỗi điểm ti chƣa đƣợc đánh dấu trong mảng A) do { for(mỗi điểm tj trong mảng B ) do if (d(ti,tj)≤D) { counti++; if (counti>M) { ti =không ngoại lai; break;} } } } 4. for(mỗi điểm ti chƣa đƣợc đánh dấu trong mảng A ) do ti=ngoailai; 5. thuật toán sẽ kết thúc nếu khối đang lƣu trong mảng B đã đƣợc lƣu vào mảng A ở một thời điểm nào đó trong quá trình tính toán trƣớc đây ; ngƣợc lại, đổi vai trò hai mảng A và B và quay lai bƣớc 2. 2.2.3 Đánh giá độ phức tạp của thuật toán NL. Trong bƣớc 1 của thuật toán chỉ có một khối đƣợc đọc vào bộ nhớ trong nên thời gian của bƣớc này là thời gian hằng. Tuy nhiên, điều này còn tùy thuộc vào tốc độ xử lý của CPU và tốc độ vào ra (I/O). Do một mảng chứa b/2% cỡ của cơ sở dữ liệu T nên mỗi khối có x=(b/2)*(N/100) đối tƣợng. Hàm tính khoảng cách d(x,y) có độ phức tạp tuyến tính với số chiều của dữ liệu K nên ở trong bƣớc 2 mất thời gian tính toán là O(x2*k). Trong bƣớc 3.b mất thời gian là O(x2*k). Do đó độ phức tạp trong bƣớc 3 là O((n-1)*x2*k) với n là tổng số các khối dữ liệu. Ở bƣớc 4, mất thời gian là O(x). Cho nên tổng thời gian thực hiện thuật toán của các bƣớc 2, bƣớc 3, bƣớc 4 là O((n1)*x2*k). Trong bƣớc 5, hai mảng A và B đƣợc trao đổi vai trò cho nhau và quay lại bƣớc 2. Bƣớc này có số vòng lặp là (n-1) lần tƣơng ứng với n-1 khối nằm trong mảng đóng vai trò là mảng A. Do đó, độ phức tạp của toàn bộ thuật toán NL là O((n-1)2*x2*k)=O(N2*k). Trong phần dƣới đây, chúng ta sẽ trình bày 2 phiên bản của thuật toán đánh giá theo ô ( Cell Based Algorithms ). Thuật toán có độ phức tạp tuyến tính với N, nhƣng lại lũy thừa đối với k. Do đó, thuật toán này chỉ áp dụng đối với các giá trị k bé. Mục đích quan trọng là làm tăng tính hiệu quả việc sử dụng quá trình xử lý giữa các ô để thay thế việc tính toán khoảng cách giữa các cặp điểm. Do đó tránh đƣợc độ phức tạp tuyến tính với N2. 16 2.3 Thuật toán đánh giá theo ô. Để minh họa cho ý tƣởng và các đánh giá khác nhau của thuật toán đánh giá theo ô. Đầu tiên, một phiên bản đơn giản của thuật toán sẽ đƣợc xem xét. Phiên bản này giả sử rằng cả cấu trúc ô nhiều chiều và toàn bộ cơ sở dữ liệu đều có thể lƣu đƣợc trong bộ nhớ chính. Để dễ dàng cho việc trình bày, thuật toán đƣợc mô tả để thực hiện với các tập dữ liệu trong không gian hai chiều, và sau đó xử lí trong k chiều. Trong phần 2.3.3 sẽ trình bày phiên bản đầy đủ của thuật toán đánh giá theo ô tìm kiếm các phần tử ngoại lai trên các tập dữ liệu lớn nằm trong bộ nhớ ngoài. 2.3.1 Các khái niệm và tính chất liên quan. Với chiến lƣợc tìm kiếm tất cả các phần tử ngoại lai dựa trên khoảng cách dựa vào ô, mỗi một đối tƣợng trong tập dữ liệu đƣợc ánh xạ hoặc lƣợng tử hóa tới các ô có cạnh l= D /(2√¯2) Gọi Cx,y là ô giao giữa dòng x và cột y. L1(Cx,y) đƣợc định nghĩa là tầng các lân cận thứ nhất của ô Cx,y bao gồm các ô Cu,v thỏa mãn điều kiện : L1(Cx,y)={Cu,v| u= x  1,v=y 1; Cu,v≠Cx,y}. (2.1) 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 2 2 2 2 1 * 1 s 2 q 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 r 1 P Hình 2.1 : Các ô của cấu trúc ô trong không gian hai chiều, xem xét ô trung tâm ô C[4,4] được ký hiệu bởi dấu *. Các ô thuộc L1 được đánh dấu là số 1. Các ô thuộc L2 được đánh dấu là số 2. Thƣờng thì L1 của một ô bao gồm có 8 ô. Chỉ loại trừ những ô ở gần biên của cấu trúc ô. Tính chất 1: Bất kỳ một cặp đối tƣợng trong cùng một ô thì khoảng cách giữa chúng lớn nhất là D/2. Tính chất 2: Nếu Cu,v là một ô thuộc L1(Cx,y) thì với mỗi P€Cu,v và với mọi q€Cx,y ta luôn có khoảng cách giữa chúng lớn nhất là D. Tính chất 1 đúng bởi vì khoảng cách giữa hai điểm bất kỳ trong cùng một ô luôn nhỏ hơn độ dài đƣờng chéo của ô có cạnh bằng l= D/(2*√¯2) mà độ dài đƣờng chéo của một hình vuông là √¯2*l=√¯2(D/(2√¯2))=D/2. 17 Tính chất 2 cũng đúng vì khoảng cách giữa cặp đối tƣợng bất kỳ trong hai ô không thể lớn hơn hai lần độ dài đƣờng chéo của ô. Các điểm q và r trong hình 2.1 minh họa điều này. Gọi L2(Cx,y) là tầng các lân cận thứ hai của ô Cx,y bao gồm các ô Cu,v thỏa mãn điều kiện: L2(Cx,y)={Cu,v| u= x  3,v= y  3; Cu,vL1(Cx,y); Cu,v≠Cx,y}. (2.2) Chú ý rằng khoảng cách giữa một số điểm nằm trong L2 và các điểm nằm trong Cx,y là bé hơn khoảng cách D( ví dụ so sánh khoảng cách các điểm q và s trong hình 2.1) . Thông thƣờng L2 của một ô có 72-32=40 ô, chỉ loại trừ những ô ở trên hoặc ở gần biên của cấu trúc ô. Trong không gian hai chiều L1 có độ dày bằng 1 và L2 có độ dày bằng 2. L2 đƣợc định nghĩa theo cách này để thỏa mãn các tính chất sau đây: Tính chất 3: Nếu Cu,v≠Cx,y cũng không thuộc L1 và L2 của ô Cx,y thì mọi đối tƣợng P€Cx,y và mọi đối tƣợng q€Cu,v khoảng cách giữa chúng luôn lớn hơn D. Do tổng độ dày của L1 và L2 là 3 ô nên khoảng cách d(p,q) phải lớn hơn 3l=3* D/(2√¯2)> D. Ví dụ nhƣ là các điểm P và điểm q ở trên hình 2.1. Tính chất 4: a): Nếu có quá M đối tƣợng trong Cx,y thì không có ngoại lai trong ô Cx,y. b): Nếu có quá M đối tƣợng trong Cx,yU L1(Cx,y) thì không có ngoại lai trong ô Cx,y. c) Nếu số lƣợng của các đối tƣợng thuộc Cx,yU L1(Cx,y) U L2(Cx,y) không lớn hơn M thì mọi đối tƣợng trong ô Cx,y là ngoại lai. Tính chất 4(a) và 4(b) là hệ quả trực tiếp từ tính chất 1 và tính chất 2. Và tính chất 4(c) đƣợc suy ra từ tính chất 3. 2.3.2 Thuật toán FindAllOutsM cho các tập dữ liệu trong bộ nhớ chính. 2.3.2.1 Tƣ tƣởng thuật toán Các đối tƣợng dữ liệu trong tập dữ liệu đƣợc ánh xạ tới các ô phù hợp. Trong quá trình ánh xạ số lƣợng các phần tử trong mỗi ô sẽ đƣợc lƣu lại. Với những ô có số lƣợng phần tử lớn hơn M thì sẽ đƣợc tô màu “đỏ”. Điều này chứng tỏ rằng tất cả các phần tử trong các ô đó là không ngoại lai. Với những ô Cu,v thuộc tầng các lân cận thứ nhất của các ô “đỏ” mà Cu,v chƣa đƣợc tô màu đỏ sẽ đƣợc tô màu “hồng”. Theo tính chất 4.b tất cả các đối tƣợng nằm trong ô màu “hồng” không phải là ngoại lai. Hơn nữa, cũng theo tính chất 4.b những ô Cx,y thỏa mãn điều kiện : số lƣợng các phần tử thuộc Cx,yU L1(Cx,y) lớn hơn M sẽ đƣợc tô màu “hồng”. Với các ô chƣa đƣợc tô màu thỏa mãn điều kiện: số lƣợng các phần tử trong Cx,yUL1(Cx,y) 18 UL2(Cx,y) nhỏ hơn hoặc bằng M thì mọi đối tƣợng trong ô Cx,y đƣợc thông báo là ngoại lai. Những ô không thỏa mãn các trƣờng hợp trên. Tức là, số lƣợng các đối tƣợng dữ liệu trong Cx,yUL1(Cx,y) UL2(Cx,y) lớn hơn M nhƣng Cx,yUL1(Cx,y) nhỏ hơn M thì thuật toán sẽ lƣu lại số lƣợng (sl) các phần tử trong Cx,yUL1(Cx,y). Với mỗi đối tƣợng P trong ô Cx,y, thuật toán tiến hành tính toán khoảng cách d(p,q) với q là các đối tƣợng nằm trong ô thuộc L2(Cx,y). Với những điểm q thỏa mãn điều kiện d(p,q) ≤ D(tức là q€S(p)) giá trị sl sẽ đƣợc tăng lên một đơn vị. Ngay khi sl lớn hơn M thì thông báo P là không ngoại lai. Ngƣợc lại, sau khi tiến hành tính toán khoảng cách với tất cả các đối tƣợng thuộc L2(Cx,y) mà sl vẫn nhỏ hơn M thì thông báo P ngoại lai. Một ví dụ về cách chọn cấu trúc ô đƣợc trình bày ở hình 2.2.a. Các ô đỏ là các ô có số lƣợng lớn hơn 4 điểm. những ô đó không chứa phân tử ngoại lại. Hơn nữa, tất cả các ô liền kề tức là những ô thuộc vào L1 cũng sẽ không chứa phần tử ngoại lai và đƣợc tô màu hồng. Hình 2.2.b có thêm 3 ô màu hồng đƣợc các hình mũi tên chỉ tới. Trong hình 2.2.c, chúng ta có một phần tử ngoại lai khả nghi bởi vì không có điểm nào nằm trong các ô thuộc L1. Hình 2.2.d cho biết rằng phần tử ngoại lai tiềm ẩn đó thực chất là phần tử ngoại lai bởi vì chỉ có 3 điểm nằm trong các ô thuộc vào L2. Trong đó L2 là vùng giới hạn bởi L1 và các đoạn thẳng đƣợc gán nhãn L2 ( xem hình vẽ ). Cuối cùng, chú ý rằng điểm nằm trong ô [6,4] và điểm nằm ở ô[7,5] có nhiều hơn 4 điểm trong các L2 tƣơng ứng. Nhƣng điều đó không có nghĩa rằng hai điểm đó không thể là ngoại lai. Nó còn phụ thuộc vào có bao nhiêu điểm trong L2 thực sự nằm trong tập các lân cận tƣơng ứng của chúng. Vì vậy, ứng với mỗi điểm trong các ô [6,4] và [7,5] phải tiến hành quá trình tính khoảng cách giữa các cặp điểm với số lƣợng các điểm ít nhất có thể đƣợc trong L2 của mỗi ô. 2.3.2.2 Mô tả thuật toán FindAllOutsM (Find All Outliers in Memory) Trong bƣớc 2 của thuật toán FindAllOutsM lƣợng hóa mỗi đối tƣợng dữ liệu vào trong ô phù hợp với nó. Bƣớc 3 sẽ gán nhãn tất cả các ô có số lƣợng các đối tƣợng lớn hơn M đối tƣợng bằng màu đỏ. Điều này tƣơng ứng với tính chất 4.a. Các ô là thuộc L1 của ô đỏ sẽ đƣợc gán nhãn là màu hồng trong bƣớc 4 và chúng cũng không chứa phần tử ngoại lai vì tính chất 4.b. Những ô khác thỏa mãn tính chất 4.b sẽ đƣợc gán nhãn là màu hồng trong bƣớc 5.b. Cuối cùng trong bƣớc 5.c.2 của thuật toán, các ô thỏa mãn tính chất 4c sẽ đƣợc xác định. Thuật toán FindAllOutsM : 19 1. for (q=1;q<=m;q++) countq=0; 2. for(mỗi đối tƣợng P thuộc T) { ánh xạ P tới ô Cq phù hợp; lƣu P; countq++; } 3. for (q=1;q<=m;q++) if (countq>M) Cq=đỏ; 4. for(mỗi ô đỏ Cr) { Cl=hồng;(trong đó Cl là ô thuộc L1(Cr) và chƣa đƣợc gán màu đỏ) 5. for( mỗi ô màu trắng Cw) do: a. countw2=countw+∑i € L1(Cw) counti; b. if (countw2>M ) Cw=hồng c. else { 1. countw3=countw2+∑i € L2(Cw) counti; 2.if(countw3≤M) gán tất cả các đối tƣợng trong Cw là ngoại lai. 3.else for (P€Cw) { i. countp=countw2; ii. for(q€L2(Cw)) if (d(p,q)≤D) { counti++; if (counti>M) { P =không ngoại lai; Quay lại bƣớc 5.c.3 } } iii. P=ngoại lai; } } Nói tóm lại, tất cả các tính chất trong phần 2.3.1 đƣợc sử dụng để trợ giúp việc xác định các phần tử ngoại lai và không ngoại lai trên cơ sở quan hệ ô-ô và hơn nữa trên cơ sở tính toán khoảng cách giữa các cặp đối tƣợng. Điều này làm giảm thời gian thực hiện một cách đáng kể bởi vì có thể loại bỏ một cách nhanh chóng một số lƣợng lớn các đối tƣợng không phải là ngoại lai. Đối với các ô không thỏa mãn các tính chất
- Xem thêm -