Tải bản đầy đủ (.doc) (23 trang)

Tóm tắt nghiên cứu các phần tử ngoại lai

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 (201.58 KB, 23 trang )

1
LÝ DO CHON ĐỀ TÀI
Trong cuộc sống hiện đại ngày nay, 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,…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 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 thực tế đó, tôi đã lựa chọn và thực hiện
luận văn này với đề tài “Nghiên cứu các phần tử ngoại lai”. Tôi hy
vọng đề tài trên đây vớ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.
Nội dung luận văn được xây dựng trong 3 chương.


2
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 bao gồm các khái niệm: Khám phá tri thức, khai thác dữ liệu,
khái niệm về các phần tử ngoại lai và các ứng dụng tìm kiếm phần tử
ngoại lai trong thực tiễn. Đồng thời trình bày các ứng dụng sử dụng
cá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. Ngoài ra chúng tôi
còn 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 và
các ứng dụng của phần tử ngoại lai.
1.1 Khám phá tri thức
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: 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. 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.
- 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 bao gồm:
♦ Tìm kiếm các luật kết hợp
♦ Phát hiện phần tử ngoại lệ
♦ Nhận dạng và phân lớp mẫu
♦ Dự báo
- Đánh giá: Đá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.
1.2 Những ứng dụng sử dụng kỹ thuật khai thác dữ liệu.


3
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.
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 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…
1.3 Phầ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 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 như vậy được gọi là 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 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.
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.
1.3.2 Những ứng dụng của phần tử ngoại lai
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,…


4
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ử.
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.
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ý 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ê hiệu suất và sự trình diễn kỹ thuật của
các cầu thủ.
1.4 Mối quan hệ giữa phần tử ngoại lai và khai thác dữ liệu.
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ồ, không phù hợp với bộ nhớ chính, dữ liệu
đó được nằm ở bộ nhớ ngoài
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.
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.


5
CHƯƠNG 2: MỘT SỐ 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 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 hoặc 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
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 hợ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 (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=(1 - p)*N. Việc tìm kiếm tất cả các phần tử ngoại lai


6

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.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 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.
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 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;}
} }
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 bao giờ đượ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



7
{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.
2.2.4 Đánh giá độ phức tạp của thuật toán Nested Loop.
Độ phức tạp của toàn bộ thuật toán Nested Loop là: O((n2
2
1) *x *k)=O(N2*k).
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
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 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)


8
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 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.
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 L1(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 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.
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
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)
{C1=hồng; (trong đó C1 là ô thuộc L1(Cr) và chưa
được gắn màu đỏ)
5. For (mỗi ô màu trắng Cw) do:


9
a. Countw2=countw+ ∑i∈LI (Cw) count i ;
b. If (countw2>M) Cw=hồng
c. Else {
1. Countw3=countw2+



i∈L 2 ( Cw )

count i ;

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;
} }
2.3.2.3 Đánh giá độ phức tạp thuật toán trong không gian hai
chiều.
Độ phức tạp của thuật toán FindAllOutsM trong không gian
hai chiều là O(N+m).
2.3.2.4 Tổng quát cho trường hợp nhiều chiều.
Trong không gian K chiều, tầng các lân cận thứ L1 của ô Cx 1,
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)


10
Vì vậy, tầng các lân cận thứ hai của ô Cx 1, 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).
2.3.2.5 Đánh giá độ phức tạp trong không gian nhiều chiều.
Độ 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).
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, ở trên bộ nhớ ngoài.
2.3.3.1 Phân tích tổng quát.
Khi thuật toán 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. Nội dung thuật toán dựa vào ô, có hai bước cần phải đọc các
trang đó là:
 Quá trình ánh xạ ban đầu của các đối tượng vào các ô phù
hợp.
 Quá trình tính toán khoảng cách giữa các cặp đối tượng.
2.3.3.2 Thuật toán FindAllOutsD cho các phần tử ngoại lai nằm
trong bộ nhớ ngoài.
a. Mô tả thuật toán FindAllOutsD.
1. For (q=1; q ≤ m; q++) Countq=0;
2. For (mỗi đối tượng p thuộc T)
{
a. Ánh xạ P tới ô Cq phù hợp nhưng không lưu P.
b. Countq++;

c. Đánh dấu ô Cq ánh xạ tới trang chứa điểm P. }
3. For (q=1; q ≤ m; q++) if (Coutnq>M) Cq = đỏ;


11
4. For (mỗi ô đỏ Cr)
C1= hồng; (trong đó có C1 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∈L 2 (Cw) Count i ;
2. If (Countw3≤M) Cw = vàng (tức là tất cả các

điểm ánh xạ tới ô Cw đều là ngoại lai);
3. Else Sumw = Countw2; }
6. For (mỗi trang i chứa ít nhất một điểm trắng hoặc một
điểm vàng) do
a. Đọc trang i;
b. For (mỗi ô trắng hoặc ô vàng Cq có các điểm ánh
xạ tới trang i) do
For (mỗi đối tượng p trong trang i ánh xạ tới
Cq) do
• Lưu P vào Cq.
• Kountp = Sumq
7. For (mỗi đối tượng p trong ô trắng Cw) do
For (mỗi ô trắng hoặc ô vàng CL ∈ L2 (Cw)) do
For (mỗi đối tượng q ∈ CL) if (d(p,q) ≤ D)
{ Kountp++;
If (Kountp>M) đánh dấu p là không ngoại lai;
xét điểm p tiết theo (goto 7) }
8. For (mỗi đối tượng q trong ô vàng) thông báo q là ngoại
lai.


12
9. For (mỗi trang chứa ít nhất một điểm không trắng cũng
không vàng và ánh xạ tới ô thuộc L2 của một số ô trắng
C) do
a. Đọc trang i.
b. For (mỗi ô Cq ∈ L2 (C) không trắng cũng không
vàng và có một số điểm trong trang i) do
For (mỗi đối tượng q trong trang i ánh xạ tới
Cq) do

For (mỗi ô trắng Cw ∈ L2 (Cq)) do
For (mỗi đối tượng p ∈ Cw)
if ( d(p,q) ≤ D)
{Kountp++; if (Kountp>M) đánh dấu p là
không ngoại lai;}
10. For (mỗi đối tượng p trong ô trắng) if not (p là không
ngoại lai) thông báo p là ngoại lai.
b. Đánh giá độ phức tạp của thuật toán FindAllOutsD và so sánh
với thuật toán Nested Loop.
Thuật toán Find AllOutsD cũng có độ phức tạp tuyến tính
với N bởi các lý do giống tương tự như đã giải thích cho thuật toán
FindAllOutsM, nhưng thuật toán FindAllOutsD tìm kiếm các phần tử
ngoại lai trên các tập dữ liệu mà nó không phù hợp với bộ nhớ chính.
Tính chất 1: Thuật toán FindAllOutsD yêu cầu nhiều nhất là
3 lần đọc toàn bộ tập dữ liệu.
Tính chất 2: Nếu có một tập dữ liệu được phân chia vào
trong n =[100/(b/2)] khối logic một bộ nhớ trung gian cỡ bằng b% cỡ
của cơ sở dữ liệu và một khối logic bao gồm nhiều trang thì trong
trường hợp chung, tổng số khối yêu cầu đọc của thuật toán Nested
Loop là n+(n-1)*(n-2). Như vậy, số lần đọc tập dữ liệu ít nhất là (n2) lần nhưng không nhiều hơn (n-1) lần.


13
CHƯƠNG 3: XÁC ĐỊNH CÁC PHẦN TỬ NGOẠI LAI
CỤC BỘ DỰA VÀO MẬT ĐỘ
Trong chương này chúng tôi trình bày định nghĩa lôgic và
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, tiếp theo là trình
bày cấp độ ngoại lai và các tính chất của từng đối tượng, sau đó đưa
ra ý nghĩa của các phần tử ngoại lai và cuối cùng chúng tôi trình bày

và đánh giá độ phức tạp của thuật toán xác định giá trị LOF. Cụ thể
chúng tôi sẽ thảo luận về một số vấn đề có ý nghĩa hơn khi kết gán
mỗi đối tượng với một cấp độ ngoại lai của nó, cấp độ này được gọi
là yếu tố ngoại lai cục bộ (Local Outlier Factor - LOF) của một đối
tượng. Từ "cục bộ" trong LOF có nghĩa là cấp độ phụ thuộc vào cách
cô lập của đối tượng đối với các lân cận xung quanh đối tượng đó.
Cũng trong chương này chúng tôi sẽ trình bày và phân tích chi tiết
yếu tố ngoại lai cục bộ LOF cùng với các tính chất liên quan, bằng
cách sử dụng các tập hợp dữ liệu trong thế giới thực và chúng ta sẽ
giải thích rằng yếu tố ngoại lai cục bộ LOF có thể được sử dụng để
tìm kiếm các phần tử ngoại lai xuất hiện với một ý nghĩa nào đó,
nhưng mặt khác lại không được xác định chúng bằng các cách tiếp
cận hiện nay.
3.1 Các định nghĩa:
Định nghĩa 1: Một phần tử ngoại lai là một sự quan sát lệch hướng
rất nhiều với các hướng quan sát khác đưa đến một sự nghi ngờ
rằng phần tử đó được tạo ra bởi một kỹ thuật khác.
Định nghĩa 2: 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) nếu có ít
nhất p (percentage) 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


14
tập hợp {q ∈ T| d(o,q) ≤ D} nhỏ hơn hoặc bằng (100-p)% * cỡ của
T.
Định nghĩa 3: Khoảng cách phụ thuộc tham số k của đối tượng p [7].
Với một số nguyên dương k bất kỳ, khoảng cách phụ thuộc
tham số k của đối tượng p được ký hiệu là k_dist(p) được định nghĩa
như là khoảng cách d(o,p) giữa p và đối tượng o thuộc T thỏa mãn

điều kiện.
♦ Có ít nhất k đối tượng o “∈ T\{p} thỏa mãn d(p,o)” ≤ d(p,o)
♦ Có nhiều nhất k-1 đối tượng o “∈ T\{p} thỏa mãn d(p,o)” <
d(p,o)
Định nghĩa 4: Tập các lân cận phụ thuộc tham số k của đối tượng p
Tập các lân cận phụ thuộc tham số k của đối tượng p được
ký hiệu là Nk(p) bao gồm tất cả đối tượng mà khoảng cách từ chúng
đến p không lớn hơn k_dist(p), điều đó nghĩa là N k(p)={q ∈ D|
d(p,q) ≤ k_dist(p)}.
Định nghĩa 5: Khoảng cách đạt được của một đối tượng p đối với đối
tượng o
Cho k là một số tự nhiên. Khoảng cách đạt được của đối
tượng p đối với đối tượng o được định nghĩa là: read_dist k(p,o)=
max{k_dist(o), d(o,p)}
Định nghĩa 3: Khoảng cách phụ thuộc tham số k của đối tượng p [7].
Với một số nguyên dương k bất kỳ, khoảng cách phụ thuộc
tham số k của đối tượng p được ký hiệu là k_dist(p) được định nghĩa
như là khoảng cách d(o,p) giữa p và đối tượng o thuộc T thỏa mãn
điều kiện.
♦ Có ít nhất k đối tượng o “∈ T\{p} thỏa mãn d(p,o)” ≤ d(p,o)
♦ Có nhiều nhất k-1 đối tượng o “∈ T\{p} thỏa mãn d(p,o)” <
d(p,o)


15
Định nghĩa 4: Tập các lân cận phụ thuộc tham số k của đối tượng p
Tập các lân cận phụ thuộc tham số k của đối tượng p được
ký hiệu là Nk(p) bao gồm tất cả đối tượng mà khoảng cách từ chúng
đến p không lớn hơn k_dist(p), điều đó nghĩa là N k(p)={q ∈ D|
d(p,q) ≤ k_dist(p)}.

Định nghĩa 5: Cho k là một số tự nhiên. Khoảng cách đạt được của
đối tượng p đối với đối tượng o được định nghĩa là: read_dist k(p,o)=
max{k_dist(o), d(o,p)}
Định nghĩa 6: Mật độ đạt được cục bộ của đối tượng p.
Mật độ đạt được cục bộ của đối tượng p được định nghĩa là:
 ∑ reach _ dist Minpts ( p, o) 
 O∈N

( p)
ird Minpts ( p) = 1 /  Minpts

...




Định nghĩa 7: Đặc trưng ngoại lai "cục bộ" của một đối tượng p [7].
Đặc trưng ngoại lai cục bộ của một đối tượng p được định
nghĩa là

LOPMinpts ( p) =



ird Minpts (o)

O∈N Minpts ( p ) ird Minpts ( p )

N Minpts ( p)


3.2 Tính chất của các phần tử ngoại lai cục bộ.
3.2.1 Yếu tố ngoại lai cục bộ của các đối tượng nằm sâu trong
một vùng.
Bổ Đề 1: Cho C là một tập các đối tượng, đặt reach_dist_min là
khoảng cách đạt được cực tiểu của các đối tượng trong C, có nghĩa
là reach_dist_min
min{reach_dist(p,q)\p,q∈C}. Tương tự reach_dist_max là khoảng
cách đạt được cực đại của các đối tượng trong C, ε được định nghĩa


16
là ε=reach_dist_max / reach_dist_min-1 thì với mọi p ∈ C mà mọi
đối tượng q thuộc tập các lân cận phụ thuộc tham số Minpts của đối
tượng p đều thuộc C và mọi đối tượng q thuộc tập các lân cận phụ
thuộc tham số Minpts của đối tượng p đều thuộc C, mọi đối tượng o
thuộc tập các lân cận phụ thuộc tham số Minpts của q cũng thuộc C
thì LOF của p thỏa mãn điều kiện: 1/(1 + ε) ≤ LOP(p) ≤ (1 + ε).
3.2.2 Cận trên và cận dưới của yếu tố ngoại lai cục bộ (LOF)
Định lý 1: Gọi p là một đối tượng trong cơ sở dữ liệu D và 1 ≤
Minpts ≤ |D|. Thì LOF của đối tượng p thỏa mãn
directMin(p)/indirectMax(p ) ≤ LOP(p) ≤ directMax(p)/indirectMin

(p)

3.2.3 Tính chặt chẽ của các cận LOF.
Tóm lại, nếu dao động của các khoảng cách đạt được trung
bình theo tập các lân cận trực tiếp và gián tiếp là nhỏ (tức là p nhỏ)
thì định lý 1 đánh giá LOF rất tốt bởi vì cận trên và cận dưới của
LOF sẽ gần tới nhau. Ta có hai trường hợp quan trọng để điều này
luôn đúng

♦ Phần trăm p là rất thấp cho mỗi đối tượng p, nếu dao động
của các khoảng cách đạt được là cùng thuần nhất có nghĩa là
các đối tượng thuộc tập các lân cận phụ thuộc tham số Minps
của p cùng nằm trong một vùng với p, ở trường hợp này, các
giá trị directMax, directMin, indirectMax, indirectMin hầu hết là
giống nhau, kết quả của LOF gần tới 1. Điều này chứng tỏ
phù hợp với kết quả đưa ra trong bổ đề 1.
♦ Lập luận trên có thể được tổng quát hóa với các đối tượng p
không nằm sâu trong vùng, nhưng tất cả các đối tượng thuộc
tập các lân cận phụ thuộc tham số Minpts thì ở trong cùng
một vùng (giống như mô tả ở hình 3.3). Trong trường hợp


17
này, mặc dù LOF có thể không gần tới 1 nhưng các giới cận
đưa ra bởi Định lý 1 là chặt.
3.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.
Định lý 2: Cho p là một đối tượng từ cơ sở dữ liệu, 1 ≤
Minpts ≤ |D| và C1, C2, … Cn là một phân hoạch của N Minpts(p), nghĩa là
NMinpts(p) =CIUC2 … UCnU{p} với Ci ∩ Cj = ∅ , Ci ≠ ∅ với 0 ≤ i, j ≤
n, i ≠ j. Hơn nữa đặt ζi=|Ci|/|NMinpts(p)| là phần trăm của các đối tượng
trong lân cận của p, chính là các đối tượng nằm trong C i, các khái
niệm directiMax, directiMin, indirectiMax, indirectiMin được định nghĩa
tương tự directmax, directmin, indirectmax, indirectmin nhưng được hạn chế
trong tập Ci thì LOF của đối tượng p thỏa mãn:

ζi
 n
 n

i
a. LOF ( p) ≥ ∑ ζ i * direct min ( p) ∑i =1

i
indirect max ( p) 
 i =1


ζi
n
 n
i
b. LOF ( p ) ≤ ∑ ζ i * direct max ( p ) ∑i =1

i
indirect min ( p ) 
 i =1

3.4. Sự ảnh hưởng của tham số Minpts.
3.4.1 Sự phụ thuộc của LOF theo Minpts.
Thực tế thì LOF không tăng cũng không giảm một cách đơn
điệu, ở hình 3.7 tôi trình bày một trường hợp đơn giản khi tất cả các
đối tượng được phân bố theo phân bố Gauss, với mỗi giá trị Minpts
giữa 2 và 50 thì giá trị Min, giá trị Max, giá trị trung bình cũng như
là độ lệch tiêu chuẩn của LOF được biểu diễn.
3.4.2 Xác định miền của Minpts
Thực vậy, khi đã xác định được MinptsLB và MinptsUB,
chúng ta có thể tính toán giá trị LOF của mỗi đối tượng trong miền
này và chúng ta đưa ra một đánh giá của việc sắp xếp các đối tượng
theo giá trị LOF lớn nhất trong miền xác định, có nghĩa là việc sắp



18
xếp các đối tượng dựa vào max{LOF Minpts(p)|MinptsLB ≤ Minpts ≤
MinptsUB}. Ngoài cách sắp xếp theo giá trị lớn nhất LOF của mỗi
đối tượng trong miền giá trị của Minpts, có thể sắp xếp theo giá trị
nhỏ nhất hoặc giá trị trung bình.
3.5 Đánh giá độ phức tạp của thuật toán xác định giá trị LOF.
Khi tính toán các giá trị LOF trong miền giữa MinptsLB và
MinptsUB, với n đối tượng trong cơ sở dữ liệu D, chúng ta phải thực
hiện hai bước: Bước thứ nhất xác định các lân cận MinptsUBnearest, và bước thứ hai là tính các giá trị LOF.
Bước thứ nhất xác định các lân cận MinptsUB-nearest có độ
phức tạp là: O(n*logn)
Bước thứ hai là tính các giá trị LOF có độ phức tạp là: O(n)


19
CHƯƠNG 4: CÀI ĐẶT VÀ THỬ NGHIỆM
4.1 Cấu trúc tệp dữ liệu đầu vào
Chương trình sử dụng file Excel để chứa dữ liệu đầu vào.
Cấu trúc file như sau:
+ Tên file excel: Tùy ý theo quy chuẩn đặt tên file của hệ điều hành
Windows.
+ Gồm 1 sheet chứa dữ liệu:
Sheet1: Chứa dữ liệu toàn bộ các bản ghi, dòng thứ nhất là
tiêu đề cột có cấu trúc: (MaKH; TenKH; SoTienPheDuyet;
SoGocDaThu; SoLaiDaThu) lần lượt là tên cột dữ liệu, các dòng tiếp
theo là các bản ghi chứa dữ liệu xử lý.
4.2 Thực hiện chương trình và đánh giá kết quả
4.2.1 Bài toán và các tham số đầu vào

Bài toán: Cài đặt thuật toán Nested Loop tìm kiếm phần tử
ngoại lai trên tập dữ liệu khách hàng của ngân hàng


Dữ liệu đầu vào: File excel chứa dữ liệu khách hàng

của ngân hàng Nông nghiệp và Phát triển Nông thôn Agribank


Tham số đầu vào gồm:
p: Phần trăm tối thiểu các đối tượng trong tập dữ liệu

mà các đối tượng không ngoại lai
D: khoảng cách ước lượng để tìm kiếm phần tử ngoại
lai.
4.2.2 Nhập dữ liệu:


20
Bước 1: Chọn tệp dữ liệu đầu vào là file Excel chứa dữ liệu
khách hàng của ngân hàng Nông nghiệp và Phát triển Nông thôn
Agribank.
Bước 2: Nạp dữ liệu (Dữ liệu sẽ được nạp vào bộ nhớ trong)
Bước 3: Hiển thị dữ liệu (Hiển thị bảng dữ liệu và các thông
số như: Số thuộc tính; số bản ghi; kích thước tệp dữ liệu)
4.2.3 Thực hiện thuật toán:
Bước 1: Ước lượng tham số p và D
Bước 2: Nhập số bản ghi xử lý cùng lúc
Bước 3: Thực hiện
4.2.4 Kết quả thực nghiệm:

Bước đầu cài đặt thành công thuật toán Nested_Loop và thử
nghiệm thuật toán trên bộ số liệu khách hàng của ngân hàng. Sau khi
thực hiện thuật toán ta có kết quả như hình 4.8 bao gồm các thông tin
tìm kiếm phần tử ngoại lai (Số phần tử ngoại lai; thông tin chi tiết về
phần tử ngoại lai; thời gian xử lý thuật toán và cách thức xử lý từng
khối dữ liệu).
4.2.5 Thông tin phần tử ngoại lai tìm được sau khi thực hiện
thuật toán


21

Hình 4.9 Phần tử ngoại lai tìm được


22
KẾT LUẬN
Trên đây, luận văn đã tìm hiểu tổng quan về lĩnh vực khám
phá tri thức trong cơ sở dữ liệu, khai thác dữ liệu, đồng thời giới
thiệu và đánh giá các thuật toán tìm kiếm các phần tử ngoại lai trên
cơ sở dữ liệu lớn, nằm trong bộ nhớ ngoài.
Với các phần tử ngoại lai theo cách nhìn toàn cục, luận văn
giới thiệu và trình bày thuật toán Nested Loop và thuật toán đánh giá
theo ô nhằm tìm kiếm, phát hiện các phần tử ngoại lai được thực hiện
trên các tập dữ liệu lớn, nhiều chiều, nằm trong bộ nhớ ngoài.
Thuật toán Nested Loop là một thuật toán phân chia tập dữ
liệu thành các khối dữ liệu, sử dụng các vòng lặp để tính toán khoảng
cách, tìm kiếm các phần tử ngoại lai trong các khối, thuật toán
Nested Loop có độ phức tạp O(kN2) (với k là chiều và N là cỡ của dữ
liệu). Tuy nhiên, số lần đọc tập dữ liệu vào bộ nhớ trong của thuật

toán này là không bé hơn n-2 lần đọc nhưng lại nhỏ hơn n-1 lần đọc
với n là tổng số khối của tập dữ liệu, do đó thuật toán Nested Loop
mất nhiều thời gian đọc dữ liệu.
Thuật toán đánh giá theo ô, chúng tôi đã giới thiệu và trình
bày hai phiên bản của thuật toán. Phiên bản đầu tiên mô tả thuật toán
áp dụng cho tập dữ liệu lớn, nằm trong bộ nhớ trong và phiên bản
thứ hai là cải tiến của phiên bản đầu để thuật toán có thể thực hiện
được với cơ sở dữ liệu nằm trong bộ nhớ ngoài. Thuật toán đánh giá
theo ô ánh xạ các đối tượng của tập dữ liệu vào các ô phù hợp, sau
đó đánh giá các ô và mối quan hệ giữa các ô để tìm kiếm các phần tử
ngoại lai. Thuật toán này giảm một cách đáng kể công việc tính toán
khoảng cách giữa các cặp điểm và độ phức tạp của thuật toán đánh
giá theo ô là tuyến tính với N nhưng lại lũy thừa đối với chiều của dữ


23
liệu: O(m ck kk/2+kN), (với m là một số các ô, c là một hằng số). Luận
văn cũng đã chỉ ra thuật toán này thực hiện nhiều nhất là 3 lần đọc
tập dữ liệu từ bộ nhớ ngoài vào bộ nhớ trong.
Ở chương 3 của luận văn chúng tôi đã giới thiệu khái niệm
đặc trưng của ngoại lai LOF theo cách nhìn địa phương, khái niệm
này nắm bắt chính xác ý nghĩa ngoại lai của các đối tượng trong tập
dữ liệu, với mỗi đối tượng nằm sâu trong một vùng, giá trị LOF xấp
xỉ bằng 1 và với các đối tượng khác, thì trong chương này của luận
văn đã trình bày 2 định lý xác định các cận trên và cận dưới của giá
trị LOF liên quan tới việc có hoặc không các đối tượng thuộc tập các
lân cận phụ thuộc tham số Minpts đến từ một hoặc nhiều vùng.
Ngoài ra, luận văn còn trình bày sự phụ thuộc của giá trị LOF vào
tham số Minpts và đưa ra các hướng dẫn thực tế về cách lựa chọn
miền giá trị Minpts và đưa ra đánh giá việc sắp xếp các đối tượng

theo giá trị LOF lớn nhất của chúng trong miền lựa chọn. Cuối cùng
chúng tôi đưa ra đánh giá độ phức tạp của thuật toán tính giá trị LOF.



×