Tải bản đầy đủ (.docx) (89 trang)

Nghiên cứu các phần tử ngoại lai luận văn thạc sĩ máy tính

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 (576.74 KB, 89 trang )

Bộ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC sư PHẠM HÀ NỘI 2
• • • •
TRẰN VIÊT CƯỜNG
NGHIÊN CỨU CÁC PHẢN TỬ NGOẠI LAI
LUẬN VĂN THẠC SĨ MÁY TÍNH
HÀ NỘI, 2015
Bộ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC sư PHẠM HÀ NỘI 2
• • • •
TRẰN VIÊT CƯỜNG
NGHIÊN CỨU CÁC PHẢN TỬ NGOẠI LAI
Chuyên ngành: Khoa học Máy tính
Mã số: 60 48 01 01
LUẬN VĂN THẠC SĨ MÁY TÍNH
Người hướng dẫn khoa học: GS.TS. Vũ Đức Thi
HẢ NỘI, 2015
LỜI CẢM ƠN
Em xin chân thành gửi lời cảm ơn tới GS.TS Vũ Đức Thi, thầy đã nhiệt
tình hướng dẫn và giúp đỡ em trong quá trinh hoàn thành luận văn này.
Em xin chân thành gửi lời cảm ơn tới các thầy cô trong Viện CNTT
thuộc Viện Khoa học Hàn lâm Việt Nam đã tận tình giảng dạy, chỉ bảo và giúp
đỡ em trong quá trình học tập tại trường cũng như trong thời gian hoàn thành
luận văn này.
Em xin chân thành gửi lời cảm ơn tới các thầy cô phòng
Sau Đại học, khoa CNTT và thư viện trường ĐHSPHN2 đã tận
tình giúp đỡ và truyền đạt những kiến thức quý giá trong
quá trình học tập cũng như trong quá trình hoàn thành
cuốn luận văn này.
LỜI CAM ĐOAN
Tôi xin cam đoan tất cả các số liệu và kết quả nghiên cứu trong luận văn
này là hoàn toàn trung thực và không trùng lặp với các đề tài khác. Tôi cũng
xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện luận văn này đã được


cảm ơn và các thông tin trích dẫn trong luận văn đã được chỉ rõ nguồn gốc.
Tác giả luận văn
Tràn Việt Cường
3
MỤC LỤC
2.3.1
2.3.2 Thuật toán FindAllOutsM cho các tập dữ liệu trong bộ nhớ
BẢNG KÝ HIÊU CÁC CHỮ VIẾT TẮT
MỞ ĐẦU
1. Lý do chọn đề tài
Trong cuộc sống hiện đại ngày nay, chúng ta ngày càng phải đối mặt với
nhiều vấn đề cần giải quyết như: Làm thế nào để phát hiện những thẻ rút tiền
bất thường trong hệ thống ngân hàng, những bất thường trong thị trường chứng
khoán, những tuyến đường bất ổn không hợp lý trong giao thông, những ứng
dụng trong hệ thống an ninh, dự báo thời tiết, trong lĩnh vực thể thao .vv. Tuy
nhiên, với số lượng dữ liệu tập trung và lưu trữ trong cơ sở dữ liệu ngày càng
4
Từviêt tăt Tiêng Anh Nghĩa tiêng Việt
KDD
Knowledgement
Discovery in Database
Khám phá tri thức trong cơ sở dữ liệu
DB Distance Based Dựa trên khoảng cách
LOF Local Outlier Factor Yêu tô ngoại lai cục bộ
lớn thì việc tìm kiếm các phần tử ngoại lai trở nên cần thiết hơn nhiều trong
cuộc sống.
Xuất phát từ yêu càu và ý nghĩa thực tiễn đó, đồng thời mong muốn
được tìm hiểu và nghiên cứu Yấn đề này, tôi đã lựa chọn và thực hiện luận văn
này với đề tài “ Ng hiên cứu các ph ần tử ng oạ i laỉ\ Đây là lĩnh vực
tương đối mới, tôi hy vọng đề tài trên đây YỚi sự hướng dẫn của GS.TS Vũ

Đức Thi, cùng sự góp ý của các chuyên gia sẽ giúp giải quyết một số bài toán
thực tế phục vụ cho xã hội ngày càng phát triển trong công cuộc Công nghiệp
hóa và Hiện đại hóa đất nước.
2. Mục đích nghiên cứu
- 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.
- Cung cấp một số thông tin về mối quan hệ giữa các phàn tử ngoại lai.
- Đưa ra những ứng dụng liên quan đến phàn tử ngoại lai nhằm giải
quyết những vướng mắc trong thực tế.
3. Nhiệm vụ nghiên cứu
- Tìm hiểu các khái niệm về khám phá tri thức và khai thác dữ liệu.
- Tìm hiểu các khái niệm về phần tử ngoại lai theo cách nhìn địa phương và
toàn cục.
- Tìm hiểu các thuật toán tìm kiếm phần tử ngoại lai trên dữ liệu lớn, nhiều
chiều.
- Kiểm tra, đánh giá thuật toán trên cơ sở dữ liệu thực của tập dữ liệu khách
hàng trong Ngân hàng Nông nghiệp và Phát triển Nông thôn Agribank.
4. Đối tượng và phạm vỉ nghiền cứu
- Nghiên cứu phàn tử ngoại lai, mối quan hệ giữa phàn tử ngoại lai và khai thác
dữ liệu và những ứng dụng của các phàn tử ngoại lai.
- Tìm hiểu thuật toán Nested-Loop, thuật toán đánh giá theo ô đồng thời đánh
giá độ phức tạp của thuật toán trong việc tìm kiếm các phần tử ngoại lai.
5
5. Phương pháp nghiên cứu
- Tham khảo các tài liệu có liên quan đến lĩnh vực nghiên cứu các phần tử ngoại
lai trong việc khai thác và xử lý dữ liệu.
- Tham khảo các ý kiến các chuyên gia, của thầy hướng dẫn trong lĩnh vực
nghiên cứu.
- Lập kế hoạch, lên quy trình và tiến độ thực hiện đề tài.
6. Đóng góp mổi của đề tài:

- Hệ thống hóa và đi sâu vào vấn đề nghiên cứu.
- Có thể sử dụng những kết quả đã nghiên cứu để phát triển thành ứng dụng giải
quyết một số bài toán vướng mắc trong thực tế.
NỘIDUNG
a
CHƯƠNG 1: KHÁM PHÁ TRI THỨC TRONG cơ SỞ DỬ LIỆU
VÀ PHẦN TỬ NGOẠI LAI
Trong chương này, chúng tôi 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 trong thực tế khai thác dữ liệu có sự hỗ trợ của
các kỹ thuật khai thác dữ liệu (Data minning). Tiếp theo chúng tôi trình bày
các khái niệm về phần tử ngoại lai, mối quan hệ giữa lĩnh vực khai thác dữ liệu
và lĩnh vực khám phá phần tử ngoại lai, cuối cùng tôi xin trình bày các ứng
dụng của phần tử ngoại lai.
1.1Khám phá tri thức
Hiện nay, với sự phát triển và tiến bộ ngày càng cao của khoa học kỹ thuật,
của công nghệ thông tin và nhu cầu thiết yế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 xã hội. Với
lượng thông tin ngày càng nhiều (có thể nó i là “ kh ổng l ồ” ) và phức tạp
thì càn có các kỹ thuật và phương pháp khai thác dữ liệu hiệu quả để lấy ra
những thông tin cần thiết cho công việc. Việc sử dụng một số các ngôn ngữ
truy vấn 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 những dữ liệu theo những yêu cầu
đơn giản, tầm thường, hay các kiểu dữ liệu đa phương tiện được hệ thống hỗ
6
trợ như: Dữ liệu âm thanh, hình ảnh, Nhưng kết quả này không thể đáp ứng
được khi yêu cầu của con người sử dụng ngày càng cao và phức tạp. Do đó,
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
đó là 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:
- Ch uẩn bị d ữ liệu: Dữ liệu được tập trung vào trong cơ sở dữ liệu, các kho

lưu trữ dữ liệu. Dữ liệu đó có thể là “chưa sạch” tức là có cả dữ liệu không phù
hợp, nhiễu, sai xót và các dữ liệu không đầy đủ thông tin. Trong bước này dữ
liệu được làm sạch để loại bỏ các dữ liệu không liên quan, dữ liệu không phù
hợp, 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
“chưa sạch” (bị nhiễm bẩn). Sau khi dữ liệu được làm sạch, dữ liệu sẽ được bổ
sung các 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.
- Kh ai 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 và các phương thức thông
minh để xác định các mẫu dữ liệu theo yêu cầu người dùng. 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 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.
♦ 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.
♦ 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.
♦ Dự báo: Xác định các hàm hổi quy.
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.
7
- Đánh gi á: Trong bước này bao gồm 2 bước nhỏ là đá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
Yớ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 hoặc các
cấu trúc dữ liệu.
Hình 1.1 Trình bày tổng thể quy trình khám phá tri thức trong cơ sở dữ
liệu (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 1.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. 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 khám phá tri thức
trong cơ sở dữ liệu (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.
8
Hình 1.1 Quỉ trình Khảm phá tri thức trong cơ sở dữ liệu
1.2Những ứ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, tổ chức hay công ty nào đó họ có thể 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
xuất mua hàng, số lượng hàng đã mua ở các lần trước hay tần suất truy cập
website, kiểu khách hàng. Trong các công ty bảo hiểm, sử dụng kỹ thuật khai
9
thác dữ liệu để xác định các lỗi và các trường hợp rủi ro có thể xảy ra. 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 các rủi

ro thường gặp về thẻ tín dụng hay các lỗi trong quá trình giao dịch. 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 và phát hiện tội phạm. Các công cụ tìm kiếm thông tin, tìm kiếm Website
áp dụng các kỹ thuật thông minh để có thể tìm kiếm được những thông tin,
Website với độ chính xác cao theo yêu cầu của người sử dụng giúp người dùng
thuận tiện trong việc xử lý thông tin. Ngoài ra, kỹ thuật khai thác dữ liệu còn
được áp dụng trong các lĩnh vực khai thác như phân tích thị trường chứng
khoán, dự báo tỷ lệ thay đổi ngoại tệ, tìm kiếm các gene trong chuỗi DNA, dự
báo thời tiết, nhận dạng ảnh và văn bản
1.3Phần tử ngoại lai.
1.3.1 Khái niệm 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 vỉ 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 như vậy được gọi là phần tử ngoại
lai.
Có nhiều định nghĩa được đưa ra để định nghĩa phần tử ngoại lai như định
nghĩa của Bamet và Levis: “ Một ph ẩn t ử n goại lai là một đối tượng
xu ất hiện k hô ng nhất q uá n với tập dữ liệu còn lại” . Với Hawkins
thì 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 ệc h hướng rấ t nhiều v ới đối tượng kh ác do đ ó dẫn đến sự
ng hỉ ngờ rằng chúng đ ượ c tạo ra bởi một k ỹ t hu ật kh ác ” [10]. Nói
cách khác, 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à 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 do phép đo gâp ra. Ví
dụ việc hiển thị một người có tuổi 1000 có thể là do việc thiết lập mặc định
1
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 hóa 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”.
Một phàn tử ngoại lai có thể là một đối tượng dữ liệu trong một số trường
hợp sau:
❖ Là đối tượng dữ liệu được tạo sinh có sai sót.
❖ 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.
Đối với các trường hợp các phần tử ngoại lai có thể là đố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 xét rằng “Một phẩn tử ng oạ i lai có th ể
cu ng cấ p thông ti n mà các đối tượng khác kh ôn g thể bở i vì nó
xu ất hi ện t ừ sự kết hợp bất b ìn h thường c ủa m ột sổ tr ườ ng h ợp
rất cỏ ỷ ng hĩ a” [9].
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ể 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 đó, nó 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 tập 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 tượng còn lại. Tuy nhiên, không có một định nghĩa nào 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 thỏa mãn mô hình dữ liệu đang xét. Việc phần tử ngoại lai
1
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 các chuyên gia.
1.3.2 Những ứng dụng của phần tử ngoại lai
Đối với một số ứng dụng khám phá tri thức, thường các sự kiện hiếm có,

khó có thể nhận biết bằng mắt thường được quan tâm hơn các sự kiện thông
thường, chẳng hạn như việc phát hiện các thẻ tín dụng giả, theo dõi các hoạt
động thương mại điện tử, xác định các rủi ro về thẻ tín dụng, tìm kiếm nhận
dạng tội phạm,
Sau sự tấn công mạng Internet và các trang web những năm gàn đây, đặc
biệt là sự kiện khủng bố tấn công nước Mỹ ngày 11/9/2001 hơn 13 năm về
trước, người ta quan tâm nhiều hơn đến việc bảo mật thông tin máy tính, bao
gồm cả phần cứng, phần mềm và cả hệ thống mạng (như phát hiện ra sự xâm
nhập trái phép vào hệ thống mạng). 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 (như phát hiện ra 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ác công cụ thống kê có thể được dùng để
tìm ra những 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, cách thức truy xuất dữ liệu ).
Với các hệ thống thanh toán điện tử bao gồm các ứng dụng như thẻ ngân
hàng, thẻ thông minh, thẻ điện thoại, và thẻ tín dụng, chúng ta quan tâm tới
việc làm sao để phát hiện ra các loại thẻ giả, thẻ không họp lệ trong hệ thống
thanh toán điện tử.
Thêm một ứng dụng nữa trong việc phát hiện phàn tử ngoại lai là ứng
dụng để nghiên cứu cổ phiếu, chứng khoán. Nhiều cá nhân và công ty đã từng
thử dự đoán giá trị các cổ phiếu được niêm yết dựa trên việc tìm kiếm các phần
tử ngoại lai (ví dụ: Giả sử phần lớn giá các cổ phiếu ở một ngà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 đó các nhà phân tích có thể dựa vào các nguyên nhân để giải thích sự
1
quá nóng hoặc quá lạnh của thị trường, để xác định khuynh hướng của cố
phiếu có thể mua vào hay bán ra hoặc tích lũy). 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 hóa
bảng niêm yết cổ phiếu trên sàn chứng khoán trong cùng một loại.

Trên các thị trường chứng khoán thế giới, các giao dịch được thực hiện
mỗi ngày lên đến con số hàng triệu giao dịch, các nhà quản lý bảng niêm yết,
các doanh nhân và các nhà tư vấn đầu tư tìm mua các cổ phiếu xuống thấp và
có thể có tín hiệu tốt trong tương lai để 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 ứng dụng trong lĩnh vực chứng khoán như
phân tích, dự báo, thống kê, (ví dụ công ty Insighful nhà sản xuất phần mềm
thống kê S-PLUS bán các máy 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 ai cũng muốn xây dựng cho
mình một đội hình mạnh nhất, nhưng chi phí dẻ, hợp lý YỚ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ê
hiệu suất và sự trình diễn kỹ thuật 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ể mua tương đổi dẻ) hay những càu
thủ có phong cách thi đấu tốt và ấn tượng, tùy vào việc huấn luyện viên có nhu
cầu từng vị trí.
1.4Mổỉ 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 dữ liệu ra đời, thông tin hữu ích phục vụ
cho người dùng chỉ được khai thác hiệu quả trên các tập dữ liệu có cỡ và số
chiều nhỏ. Do vậy, để có thể khai thác dữ liệu một cách hiệu quả YỚi khối
lượng thông tin dữ liệu lớn thì càn phải có các công dụng khai thác dữ liệu tốt,
các thuật toán khai thác dữ liệu thông minh, 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 với khối lượng thông tin khổng lồ,
1
không phù họp với bộ nhớ chính, dữ liệu đó được nằm ở bộ nhớ ngoài (Disk-
resident Data).
Trong luận văn này vấn đề được quan tâm lớn nhất 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:
♦ Cung cấp một số thông tin về mối quan hệ giữa các phàn tử ngoại lai
♦ 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.
Và một vấn đề khác chúng tôi cần quan tâm đó là việc 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
(có thể nhiễu của người này nhưng lại là tín hiệu tốt của người khác), nên rất
khó có thể đưa ra được một định nghĩa hoàn chỉnh và chính xác về phần tử
ngoại lai.
CHƯƠNG 2: MÔT SỐ THUÃT TOÁN TÌM KIẾM PHẦN
• •
TỬ NGOAI LAI DƯA TRÊN KHOẢNG CÁCH
• •
Trong chương này chúng tôi 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 Nested Loop 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 dựa
trên các tập dữ liệu chính nhiều chiều nằm trong bộ nhớ trong và nằm trong bộ
nhớ ngoài. Chúng tôi đánh giá độ phức tạp về thời gian của các thuật toán và
trình bày thực nghiệm với chương trình ứng dụng sử dụng thuật toán Nested
Loop trên cơ sở dữ liệu thực của ngân hàng Nông nghiệp và Phát triển Nông
thôn Agribank đồng thời so sánh thời gian thực hiện trên từng tập dữ liệu.
1
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 I d(o,q) < D}
S(o) được gọi là tập hợp các lân cận của điểm o theo khoảng cách D.
Định ng hĩ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) (D B là viết tẳ t của từ
Distance Ba sed) 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 (100 - p)% 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=(l - 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 lại 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.2Thuậ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 Nested Loop chia tập dữ
liệu thành các khối sử dụng các vòng lồng nhau để tìm kiếm. Cụ thể, giả sử có
một bộ nhớ trung gian cỡ b% 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ớ.
1
Trước 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 lại, sau khi thực hiện tính toán YỚ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) cho nhau, 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 Nested Loop YỚi bộ nhớ trung gian là 50% cỡ cơ sở dữ
liệu. Gọi xl, x2, x3, x4 lần lượt là 4 khối logic 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. xl với xl, sau đó các khối x2, x3, x4. Tổng số là 4 khối được đọc.
2. x4 với x4, sau đó với các khối xl (không yêu cầu đọc x2, x3). Tổng
số là 2 khối được đọc
3. x3 với x3, sau đó với các khối x4, xl, x2. Tổng số là 2(xl, x2) khối
được đọc.
4. x2 với x2, sau đó với các khối x3, xl, x4. 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 Nested Loop:
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 tị trong mảng A) do:
1
{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;}
}

}
3. While (những khối còn chưa được so sánh YỚ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 bao giờ được lưu vào mảng A để tính toán cho lần sau)
b. For (mỗi điểm tị 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=ngoại lai;
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ò 2 mảng A và B và quay lại bước 2.
2.2.3 Ước lượng tham số p, D sử dụng phương pháp lấy mẫu
Trong thuật toán Nested Loop tìm kiếm phàn tử ngoại lai, chúng ta thấy
có hai tham số người dùng cần định nghĩa đó là p và D, hai tham số này ảnh
hưởng rất lớn đến thời gian thực hiện thuật toán, việc khởi tạo các tham số p
và D không tốt dẫn đến sự lãng phí thời gian tính toán. Để có một ước lượng
tham số hợp lý, trong phần này tôi sẽ trình bày phương pháp tiếp cận dựa trên
thống kê, cụ thể là sử dụng phương pháp lấy mẫu.
1
Ở phần trước, việc định nghĩa tham số khoảng cách sử dụng khoảng
cách Euclid để tính toán các phần tử ngoại lai được quyết định bởi người dùng.
Trong đó tham số D khó xác định hơn rất nhiều so với tham số p, với việc khởi
tạo giá trị p, để dễ dàng ta nên lấy giá trị p sát với 1 và nếu cần thì giảm giá trị
p khi chạy lại, hơn nữa giá trị p gần với 1 sẽ cho thời gian xử lý nhanh hơn
trong các bước khai thác dữ liệu bởi vì giảm được các phép so sánh trước khi
một điểm bị loại trừ từ tập dự tuyển các phần tử ngoại lai và tốn tại ít bộ nhớ

hơn.
Thật vậy, ta xét giải thuật xử lý Nested Loop sau:
1, For(mỗi điếm tị trong mảng A) do:
2, Countị = 0;
3, If(d(tị, tj) <= D) do:
4, Countị ++;
5, If( Countị> M) {tị = không ngoại lai; Break;}
6, }// End if
7, }// End for
Trong đó, M = (1 - p)*N; Như vậy với p càng gàn 1 kéo theo M càng
nhỏ. Khi đó trong dòng lệnh thứ 5 trong giải thuật trên giá trị Counti càng có
cơ hội vượt qua M, điều này dẫn đến phần tử tị được loại khỏi tập dự tuyển
ngoại lai, do vậy nó sẽ không phải so sánh với các phàn tử khác nữa trong bộ
dữ liệu, điều này sẽ giảm thời gian xử lý của chương trình.
Với mục tiêu xác định giá trị khởi đầu tốt cho tham số D, ta xem xét tính
toán khoảng cách giữa các điểm đối với không gian mẫu, với N đối tượng, có
N(N-l)/2 khoảng cách cần xem xét. Như vậy, với N lớn thì số khoảng cách cần
tính toán là rất lớn, để giải quyết trường hợp này, ta sử dụng phương pháp xác
định không gian mẫu gồm các đối tượng tiềm năng cho việc xác định khoảng
cách. Với việc xác định không gian mẫu, ta gặp phải một vấn đề là cần xác
1
định kích cỡ mẫu là bao nhiêu để đảm bảo giá trị p không quá lệch với độ lệch
chuẩn bình thường. Trong đó độ lệch chuẩn được tính như sau:
( N - 1>
Trong đó:
N: Kích thước dữ liệu ban đầu n: Kích thước dữ liệu mẫu P: giá trị tham
số thật của p trong tập dữ liệu Ư
p
: Độ lệch chuẩn.
N — n

Với giá trị N lớn, n là tương đôi nhỏ thì ~ 1. Khi đó công thức
xác định độ lệch chuẩn được rút gọn thành:
V <•)
Với t là độ lệch chuẩn bình thường, d là phần trăm khoảng không gian
không chắc chắn thì ta có công thức:
ã
Ví dụ: với N = 10000, p = 0.99 và d = 0.5% và cần 95% không gian
0.005
chắc chắn (khi đó t = 2) thì 0 p = = 0.0025, vậy khi đó:
n - 0.99*0.01/0.0025
2
- 1584
Vậy ta chỉ cần lấy mẫu YỚi 1584 phần tử để tính toán khoảng cách đại
diện.
2.2.4 Đánh giá độ phức tạp của thuật toán Nested Loop.
Trong bước đầu 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 thứ 2 mất thời gian tính toán là 0(x
2
*k), trong bước 3.b mất
1
thời gian là 0(x
2
*k). Do đó, độ phức tạp trong bước 3 là 0((n-l)*x
2
*k) YỚi n là
tổng số các khối dữ liệu. Ở bước thứ 4 mất thời gian là O(x). Như vậy, tổng

thời gian thực hiện thuật toán của các bước 2, bước 3 và bước 4 là 0((n-
l) *x
2
*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 vậy, ta có độ phức tạp của toàn bộ
thuật toán Nested Loop là: 0((n-l)
2
*x
2
*k)=0(N
2
*k).
Sau đây, chúng tôi 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 này có độ phức tạp tuyến tính với N,
nhưng lại lũy thừa đối YỚ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
đó, sẽ tránh được độ phức tạp tuyến tính YỚi N
2
.
2.3Thuậ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, ta xem xét một phiên bản đơn giản của thuật toán, 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. Đe tiện cho việc trình bày một cách mạch lạc và
rõ ràng, thuật toán sẽ được mô tả để thực hiện với các tập dữ liệu trong không
gian hai chiều, sau đó thuật toán sẽ được xử lý trong k chiều. Phần cuối của
mục này, chúng tôi 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 mục tiêu là 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 1 = D/(2 4Ĩ )
Gọi Cx,y là ô giao giữa dòng X và cột y. Ll(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:
2
Ll(Cx,y)={Cu,v| u= x±l, v=y±l; Cu,v^Cx,y}. (2.1)
Trong bảng cấu trúc ô trong không gian hai chiều trên, xem xét ô ở trung
tâm ô C[4,4] được ký hiệu bởi dấu *, các ô thuộc LI được đánh dấu là số 1, các
ô thuộc L2 được đánh dấu là số 2. Thường thì LI 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 Ll(Cx,y) thì với mỗi PeCu,v và
với mọi qeCx,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 V2 ) mà độ dài
đường chéo của một hình vuông là V2 * 1=V2 (D/(2 V2 ))=D/2.
Tính chất 2 cũng đúng YÌ 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:
2
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 p

q
2
2 2 r 1 1 1 2 2
2 2 2 2 2 2 2
2 2
2 2 2 2 2
Hình 2.1: Bảng cấu trúc ỏ trong không gian hai chiều
L2(Cx,y) = {Cu,v| u= x±3, v= y±3; Cu,VỂLl(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ách 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ó 7
2
-3
2
=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 LI 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 c hất 3:_Nếu Cu,v^ Cx,y cũng không thuộc LI và L2 của ô Cx,y thì
mọi đối tượng PeCx,y và mọi đối tượng qeCu,v khoảng cách giữa chúng luôn
lớn hơn D.
Do tổng độ dày của LI và L2 là 3 ô nên khoảng cách d(p,q) phải lớn hơn
31=3*D/(2V2 )>D, điều này được minh họa như các điểm p và q ở trên hình
2.1.
Tính chất 4:
1) Nếu có quá M đối tượng trong Cx,y thì không có ngoại lai trong ô Cx,y.
2) Nếu có quá M đối tượng trong Cx,y u Ll(Cx,y) thì không có ngoại lại
trong ô Cx,y.
3) Nếu số lượng của các đối tượng thuộc Cx,y u Ll(Cx,y) Ư L2(Cx,y) không

lớn hơn M thì mọi đối tượng trong ô Cx,y là ngoại lai.
Hai tính chất đầu (tính chất 4(1) và tính chất 4(2)) là hệ quả trực tiếp từ
tính chất 1 và tính chất 2, tính chất cuối (tính chất 4(3)) được suy ra từ tính chất
3.
2.3.2 Thuật toán FindAlỉOutsM cho các tập dữ liệu trong bộ nhớ
chính.
2.3.2.1 Tư tưởng thuật toán.
Những đố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 ô sẽ được lưu lại, YỚi
2
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 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(2) 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(2) những ô
Cx,y thỏa mãn điều kiện: số lượng các phần tử thuộc Cx,y u
2
Ll(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,yULl(Cx,y)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.
Các ô không thỏa mãn các trường hợp trên, có nghĩa là số lượng các đối
tượng dữ liệu trong Cx,yULl(Cx,y)ƯL2(Cx,y) lớn hơn M nhưng
Cx,yULl(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,yULl(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à qe S(p)) giá
trị sl sẽ được tăng lên một đơn vị, 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 là ngoại lai.
2
Ta xé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 lai.
Hơn nữa, tất cả các ô liền kề tức là những ô thuộc vào LI 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, ta thấy có một phần tử ngoại lai khả
nghi bởi YÌ không có điểm nào nằm trong các ô thuộc Ll. 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 LI và
các đoạn thẳng được gán nhãn L2 (xem hình vẽ). Cuối cùng, hãy 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ểmtrong 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
Hình 2.2a

×