Tải bản đầy đủ (.pdf) (121 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.83 MB, 121 trang )

ĐẠ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



20
4 thuật toán tiến hành tính toán khoảng cách cho các đối tƣợng ứng với các ô đó. Đó
là các ô đánh dấu là các ô trắng(Cw). Trong bƣớc 5.c.3 của thuật toán FindAllOutsM,
mỗi đối tƣợng P€Cw phải so sánh với mọi đối tƣợng q trong các ô thuộc vào L2 của ô
Cw để có thể xác định có bao nhiêu điểm thực sự nằm trong tập các lân cận của P (
S(p) ). Ngay khi số lƣợng S(p) vƣợt quá M , thì chúng ta sẽ khai báo P không phải là
ngoại lai. Còn nếu sau khi kết thúc quá trình tính toán mà số lƣợng tập các lân cận
không lớn hơn M thì chúng ta khai báo P là ngoại lai.
2.3.2.3 Đánh giá độ phức tạp thuật toán trong không gian hai chiều.
Bây giờ, chúng ta sẽ đánh giá độ phức tạp của thuật toán FindAllOutsM cho không
gian hai chiều. Bƣớc 1 mất O(m) thời gian, với m là tổng số các ô và m nhỏ hơn rất
nhiều so với n. Bƣớc 2 và bƣớc 3 mất O(n) và O(m) thời gian tƣơng ứng với mỗi
bƣớc. Với M là số lƣợng lớn nhất các đối tƣợng có thể xuất hiện trong tập các lân cận
( S(p) ) của một phần tử ngoại lai vì vậy có nhiều nhất là n/(M+1) ô đỏ. Do đó, bƣớc
4 mất O(n/M) thời gian. Độ phức tạp của bƣớc 5 là rắc rối nhất. Trong trƣờng hợp tồi
nhất: (i) không có ô nào đƣợc gán nhãn là ô đỏ hoặc ô hồng trong các bƣớc trƣớc và
(ii) bƣớc 5c là cần thiết cho tất cả các ô. Nếu không có ô nào đƣợc tô màu ( đỏ hoặc
hồng ) thì mỗi ô chứa nhiều nhất là M đối tƣợng. Do đó, trong bƣớc 5c mỗi đối tƣợng
trong một ô yêu cầu đƣợc kiểm tra (tính khoảng cách và so sánh với D) với M đối
tƣợng trong mỗi ô thuộc một trong 40 ô của L2. Do đó, O(40*M 2) là thời gian yêu
cầu cho mỗi ô. Cho nên, trong bƣớc 5 mất (m*M2) thời gian. Thực tế chúng ta mong
muốn rằng p cực gần tới 1. Đặc biệt là với các tập dữ liệu lớn nên O(Mn 2(1-p)2) xấp
xỉ bằng O(m). Cho nên, độ phức tạp của thuật toán FindAllOutsM trong không gian
hai chiều là O(n+m). Chú ý rằng độ phức tạp này đƣa ra là rất ổ định. Bởi vì trong
thực tế, cấu trúc ô có nhiều ô màu đỏ và màu hồng. Do đó, có rất ít khoảng cách giữa
các cặp đối tƣợng đƣợc so sánh. Do đó, bƣớc 5.c trở thành kém lợi thế và thuật toán
yêu cầu thời gian tính toán nhỏ.


21


Hình 2.2 a

Hình 2.2b


22

Hình 2.2c

L2

Hình 2.2d
2.3.2.4 Tổng quát cho trƣờng hợp nhiều chiều.
Khi áp dụng thuật toán FindAllOutsM thực hiện với các tập dữ liệu lớn, nhiều chiều.
Các tính chất 1 đến tính chất 4 đƣợc nêu ra trong phần 2.3.2.1 cần đƣợc bảo toàn. Do
đó, cạnh của các ô hay là các hình hộp trong không gian K chiều cần phải thay đổi.


23
Cụ thể, để bảo toàn tính chất 1 và tính chất 2 thì cạnh của hình hộp phải là l=
D/(2√¯k).
Trong không gian k chiều, tầng các lân cận thứ nhất L1 của ô Cx1, x2,.. xk đƣợc định
nghĩa lại nhƣ sau:
L1(Cx1, x2,.. xk)={ Cu1, u2,.. uk| ui = xi  1 1 i  k ; Cx1, x2,.. xk ≠ Cu1, u2,.. uk };
(2.3)
Định nghĩa L1 trên là sự tổng quát hóa của (2.1)
Để bảo toàn tính chất 3 thì định nghĩa tầng các lân cận thứ 2 ( L2 ) cần đƣợc thay đổi.
Gọi x là độ dày của L2 trong không gian K chiều. Ta có tổng độ dày của L1 và L2 là
x+1. Theo tính chất 3 thì l(x+1) > D hay x=2√¯k-1

Do đó, tầng các lân cận thứ hai của ô Cx1, x2,.. xk trong không gian K chiều là:
L2(Cx1, x2,.. xk)={ Cu1, u2,.. uk| ui = xi  2√¯k 1 i  k; Cu1, u2,.. uk  L1(Cx1, x2,..
xk) ; Cx1, x2,.. xk ≠ Cu1, u2,.. uk }; (2.4)
L2 là tổng quát hóa của 2.2 theo cách này thì tính chất 1 tới tính chất 4 đƣợc liêt kết
trong phần 2.3.2.1 đƣợc bảo toàn.
2.3.2.5 Đánh giá độ phức tạp trong không gian nhiều chiều.
Trong không gian nhiều chiều, các độ phức tạp về thời gian từ các bƣớc 1 tới 4 trong
thuật toán FindAllOutsM đƣợc giữ nguyên. Tuy nhiên, chúng ta thấy rằng m là lũy
thừa đối với k và không nhỏ hơn N là bao nhiêu. Cụ thể, số lƣợng các ô trong cấu trúc
ô là ∏ki=1mi, với mi là số lƣợng các ô trong chiều i. Hơn nữa, nếu r i là miền giá trị số
trong chiều i thì mi =ri / (D/(2*√¯k)) = (ri*2*√¯k) /D.
Mặc dù, độ phức tạp của bƣớc 5 không lớn hơn O(m) nhƣng theo lý thuyết là
O(m*(22√¯k+1)k)=O(m ckkk/2) với c là một hằng số nhỏ. Do đó, độ phức tạp của
toàn bộ thuật toán là O(m+N) nhƣng theo lý thuyết là O(m ckkk/2+k*N).
Trong khi độ phức tạp của thuật toán đƣợc trình bày trong trƣờng hợp tồi nhất thì một
câu hỏi đặt ra là thuật toán FindAllOutsM hiệu quả nhƣ thế nào trong thực tế với
trƣờng hợp k chiều. Câu hỏi này sẽ đƣợc xem xét trong phần 2.5.4. Nhƣng sẽ đƣa ra
một số lời giải thích sơ bộ sau đây. Đầu tiên, với việc xác định các phần tử ngoại lai
trội, số lƣợng các phần tử ngoại lai tìm thấy không nhiều. Điều này đƣợc khẳng định
do giá trị D lớn và giá trị của p lại rất gần tới 1. Giá trị D lớn tƣơng ứng với việc có
một số lƣợng nhỏ các ô trong mỗi chiều. Nếu gọi ma là số lƣợng trung bình các ô
trong một chiều thì m≈ mak. Thứ hai, mặc dù hằng số c là lớn hơn 1 nhƣng nó là một
hằng số nhỏ. Thứ 3, các giá trị của p khá gần tới 1 suy ra M là nhỏ, có nghĩa rằng sẽ
có nhiều ô màu đỏ và màu hồng. Điều này có nghĩa là số lƣợng các đối tƣợng yêu cầu


24
so sánh từng cặp là tƣơng đối nhỏ. Điều thứ 4 và cũng là cuối cùng là khi số chiều k
tăng lên sẽ làm một số ô là rỗng . Do đó, trong thực tế số lƣợng các ô không rỗng nhỏ
hơn m rất nhiều. Điều đó mang lại cho việc thực hiện thuật toán hấp dẫn hơn nhiều so

với độ phức tạp thuật toán đƣa ra theo giả thuyết.
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
Trong phần trƣớc,thuật toán dựa vào ô đƣợc thiết kế để có thể thực hiện đƣợc với các
tập dữ liệu nằm trong bộ nhớ trong. Ở đây, thuật toán dựa vào ô đƣợc cải tiến để phù
hợp với việc thực hiện trên các tập dữ liệu lớn nằm trên bộ nhớ ngoài. Thuật toán cải
tiến này bảo toàn độ phức tạp tuyến tính với N và cũng đảm bảo rằng không nhiều
hơn 3 lần đọc toàn bộ cơ sở dữ liệu vào bộ nhớ. Khi thực hiện với các tập dữ liệu lớn,
nằm ở bộ nhớ ngoài thì mục đích là làm giảm tối thiểu số lƣợng các trang đƣợc đọc
vào bộ nhớ chính hoặc là số lần đọc toàn bộ dữ liệu. Các trang ở đây là một khối dữ
liệu nhỏ nhất truyền giữa bộ nhớ ngoài và bộ nhớ chính. Trong thuật toán dựa vào ô,
có hai bƣớc cần phải đọc các trang:


Quá trình ánh xạ ban đầu của các đối tƣợng vào các ô phù hợp.
Trong bƣớc hai của thuật toán FindAllOutsM, mỗi một đối tƣợng đƣợc ánh

xạ tới các ô phù hợp, bƣớc này yêu cầu một lần toàn bộ tập dữ liệu của chúng ta.


Quá trình tính toán khoảng cách giữa các cặp đối tƣợng.
Trong bƣớc 5.c.3, với mỗi đối tƣợng p trong các ô trắng Cw và mỗi đối tƣợng

trong ô thuộc vào L2 của Cw cần đƣợc đọc để thực hiện công việc tính toán khoảng
cách. Do không giả sử rằng các đối tƣợng ánh xạ vào cùng một ô hoặc các ô liền kề
tức là các ô thuộc vào L1 của ô đang xét đƣợc phân vào một vùng cần thiết trên đĩa
để mỗi cặp đối tƣợng yêu cầu tính toán khoảng cách đƣợc đọc trên cùng một trang.
Do đó, nảy sinh nguyên nhân là số lƣợng các lần đọc vào ra (I/O) là rất lớn. Nếu công
việc tính toán khoảng cách giữa các cặp đối tƣợng đƣợc thực hiện một cách chính xác

nhƣ đã mô tả trong thuật toán ở bƣớc 5.c.3 thì một trang có thể đƣợc đọc nhiều lần.
Một câu hỏi đặt ra là trong quá trình tính toán khoảng cách của các cặp đối tƣợng thì
có thể đọc các trang chỉ đúng một lần không. Gọi Pages(C) ký hiệu cho tập hợp các
trang chứa ít nhất một điểm ánh xạ tới ô C. Suy ra , để tính toán khoảng cách cho các
đối tƣợng trong một ô trắng Cw, cần đọc các trang trong Pages(Cw). Đồng thời cũng
cần đọc các trang trong Pages(L2(Cw))=UCv ЄL2(Cw)Pages(Cv) bởi vì cần đọc trang
chứa các điểm ánh xạ tới ánh xạ tới Cv là ô thuộc L2(Cw) để thực hiện công việc tính


×