Môn: Kho dữ liệu và Khai phá dữ liệu
GVHD: PGS.TS. Hà Quang Thụy
Học viên: Bùi Thu Hải
Vũ Thị Anh Trâm
Trường Đại học Công Nghệ - ĐHQG Hà Nội
Khoa Công nghệ thông tin
Tiểu luận 8:
Thuật toán xác định
phần tử gây nhiễu (outlier) nhanh
trong không gian đa chiều
NộI DUNG TRÌNH BÀY
1. Giới thiệu.
2. Định nghĩa và kí hiệu.
3. Thuật toán.
4. Kết quả thực nghiệm và kết luận.
TÀI LIệU
Tài liệu chính:
- Fabrizio Angiulli and Clara Pizzuti, Fast Outlier Detection in High Dimensional Spaces, ISI – CNR, c/o DEIS,
Universita della Calabria 87036 Rende (CS), Italy.
Sách đọc thêm:
- Hà Quang Thụy, Tập bài giảng môn Kho dữ liệu và khai phá dữ liệu.
- Các tài liệu điện tử khác
1.GIớI THIệU
Xác định các phần tử gây nhiễu là 1 trong những nhiệm vụ mà khai phá dữ liệu đang giải quyết.
Nhiều thuật toán xem các phần tử gây nhiễu như là các nhiễu, phải được loại bỏ vì nó làm giảm
độ chính xác của thuật toán.
Ví dụ trong các thuật toán phân lớp, phần tử bị gán nhãn sai
sẽ được coi là các phần tử gây nhiễu, chúng sẽ bị loại ra khỏi
tập huấn luyện để tăng độ chính xác của kết quả phân lớp.
Tuy nhiên nhiễu của tập này có thể là phần tử quan trọng của tập khác.
MộT Số CÁCH TIếP CậN CÁC PHầN Tử GÂY
NHIễU BằNG PHƯƠNG PHÁP HọC KHÔNG
GIÁM SÁT
Dựa trên thống kê
Giả sử tập dữ liệu đưa ra có mô hình phân tán
Phần tử gây nhiễu là phần tử thỏa mãn 1 kiểm tra không
phù hợp nào đấy.
Dựa trên độ lệch chuẩn
Chỉ ra các đặc tính của phần tử. Một phần tử mà lệch với
các đặc tính này là các phần tử gây nhiễu
Dựa trên quan sát tập dữ liệu khi được chiếu lên không gian tìm kiếm ít chiều hơn.
MộT Số CÁCH TIếP CậN CÁC PHầN Tử GÂY
NHIễU BằNG PHƯƠNG PHÁP HọC KHÔNG
GIÁM SÁT (TIếP)
Dựa trên biến đổi dạng sóng
Thuật toán FindOut do Yuetal giới thiệu
Dựa vào mật độ
Khả năng 1 phần tử có thể trở thành phần tử gây nhiễu phụ
thuộc vào mật độ láng giềng địa phương (còn được gọi là “hệ số
gây nhiễu cục bộ LOF” được gán cho mỗi đối tượng)
Nhược điểm: Chi phí tính toán LOF lớn vì phải tính LOF cho
từng đối tượng.
Dựa trên khoảng cách
Thuật toán do Knorr và Ng giới thiệu
Thuật toán do Ramaswamy, Rastogi và Shim giới thiệu
Thuật toán HilOut do Fabrizio Angiulli và Clara Pizzuti giới thiệu
CÁCH TIếP CậN DựA TRÊN KHOảNG
CÁCH
Thuật toán do Knorr và Ng giới thiệu: Cho tập dữ liệu a, các tham số k và δ. Phần tử p ϵ
a được gọi là phần tử gây nhiễu nếu có tối đa k điểm mà khoảng cách từ nó tới p ≤ δ.
Nhược điểm:
Phụ thuộc vào 2 tham số k và δ.
Không sắp xếp thứ bậc các phần tử gây nhiễu.
Thuật toán không thể áp dụng được trong không gian
lớn hơn 5 chiều.
CÁCH TIếP CậN DựA TRÊN KHOảNG CÁCH
(TIếP)
Thuật toán do Ramaswamy, Rastogi và Shim giới thiệu: Kí hiệu D
k
(p) là khoảng cách từ
p tới láng giềng gần nhất thứ k của p. Cho k và n, điểm p được gọi là phần tử gây nhiễu
nếu trong tập dữ liệu không có quá n–1 điểm khác mà giá trị D
k
của nó lớn hơn của p.
Điều này có nghĩa là n điểm có D
k
lớn nhất là phần tử gây nhiễu.
Thuật toán có khả năng mở rộng tốt (lên tới 10 chiều)
CÁCH TIếP CậN DựA TRÊN KHOảNG CÁCH
(TIếP)
Nhược điểm: Thuật toán không đề cập tới mật độ địa phương của các điểm và cho rằng các điểm có D
k
lớn hơn sẽ có mật độ láng giềng thưa thớt hơn. Điều này không hoàn toàn đúng.
Ví dụ: Cho k = 10, D
k
(p1) = D
k
(p2), theo thuật toán p1 và p2 đều được xem là và phần tử gây nhiễu.
1. GIớI THIệU (TIếP)
Thuật toán Hilout do Fabrizio Angiulli và Clara Pizzuti giới thiệu.
Kí hiệu ω
k
(p) là tổng khoảng cách từ p tới k láng ghiềng gần nó nhất, còn được gọi là trọng số của p, được sử
dụng để xếp thứ bậc các điểm trong tập dữ liệu.
Phần tử gây nhiễu là phần tử có có trọng số lớn.
Kí hiệu DB là tập dữ liệu d chiều trong siêu lập phương D = [0,1]
d
.
Sử dụng đường cong Hilbert ánh xạ D sang đoạn I = [0,1], tìm k láng ghiềng gần nhất của mỗi điểm bằng cách
xem xét các phần tử đứng trước và đứng sau nó trong p.
1. GIớI THIệU (TIếP)
Sử dụng tính chất của ánh xạ: nếu 2 điểm gần nhau trong I thì chúng cũng gần nhau trong D, điều ngược
lại không đúng.
Để tránh việc mất điểm ở gần, tập dữ liệu được điều chỉnh d+1 lần dọc theo đường chéo chính của khối
siêu lập phương [0,2]
d
.
Không gian đường cong được sử dụng để ánh xạ từ không gian đa chiều sang không gian 1 chiều để tìm
các điểm láng giềng gần nhất của mỗi điểm 1 cách nhanh chóng, nhưng việc tính toán khoảng cách vẫn
được thực hiện trong không gian gốc.
1. GIớI THIệU (TIếP)
Thuật toán gồm 2 giai đoạn:
Giai đoạn 1: Cho kết quả xấp xỉ sau khi thực thi d+1 lần
quét tập dữ liệu với chi phí thời gian thấp. Trong suốt
mỗi lần quét, giới hạn dưới tốt hơn cho trọng số của
phần tử gây nhiễu thứ k của DB được lưu trữ và số các
điểm ứng viên cho tập giải pháp giảm.
Giai đoạn 2: Cho kết quả chính xác bằng cách làm
thêm 1 cái quét đơn để kiểm tra một phần dữ liệu. Tuy
nhiên theo kết quả thực nghiệm, chúng ta luôn tìm
được kết quả chính xác sau bước.
1+<< dd
2. ĐịNH NGHĨA VÀ KÍ HIệU (TIếP)
Khoảng cách giữa 2 điểm p(p1,p2,…,pd) và q(q1,q2,…,qd) là
với 1≤ t < ∞ và max1≤i≤d|pi-qi| với t = ∞
Cho tập dữ liệu DB, tham số k và n, điểm p ϵ DB. Ta có
với nni(p) là láng ghiềng gần nhất thứ i cua p trong DB.
Kí hiệu outlier
n
k là phần tử gây nhiễu thứ n, nếu có đúng n – 1 điểm q trong DB mà
Kí hiệu out* là tập n phần tử của DB.
Kí hiệu out
n
k là tập n phần tử gây nhiễu đầu tiên.
t
t
d
i
iitt
qpqpdL
/1
1
)||(),(
∑
=
−==
2. ĐịNH NGHĨA VÀ KÍ HIệU (TIếP)
Kí hiệu là 1 số thực dương. Ta nói out* là 1 ước chừng của out
n
k nếu
. Trong đó w* là và w
n
là trọng số của
outlier
n
k
Các điểm trong DB được sắp xếp thứ tự theo trọng số.
n phần tử out
n
k có trọng số lớn nhất được xem là các phần tử gây nhiễu.
ε
ε
KHÔNG GIAN ĐƯờNG CONG
Tìm k láng ghiềng gần nhất của mỗi điểm bằng cách sử dụng không gian đường cong.
Năm 1890, Peano chứng minh tồn tại một ánh xạ liên tục từ đoạn I=[0,1] sang Q = [0,1]
2
.
Năm 1891, Hilbert định nghĩa 1 phương pháp chung để sinh ra 1 lớp đầy đủ của không gian đường cong. Ông nhận
thấy rằng: nếu 1 đoạn I có thể được ánh xạ liên tục sang Q, sau đó nếu phân I thành 4 đoạn con và Q
thành 4 hình vuông con phù hợp thì mỗi đoạn con có thể được ánh xạ sang 1 hình vuông con. Các hình vuông con
được sắp xếp sao cho mỗi cặp hình vuông con liên tục sẽ chung nhau 1 cạnh. Nếu quá trình này kéo dài vô tận thì I và
Q sẽ được phân thành 2
2h
với h = 1,2,
KHÔNG GIAN ĐƯờNG CONG (TIếP)
Với 1 ≤ h và 2 ≤ d, kí hiệu H
d
h là xấp xỉ thứ h của không gian đường cong Hilbert d
chiều, chúng ánh xạ các đoạn con 2
hd
có chiều dài 1/2
hd
sang siêu lập phương con 2
hd
mà các điểm trung tâm được xem như các điểm trong không gian hữu hạn.
Đặt D là tập và điểm pϵD.
H(p) là ảnh nghịch đảo của p trong ánh xạ (giá trị Hilbert của p).
DB là 1 tập trong D.
H(DB) là tập
KHÔNG GIAN ĐƯờNG CONG (TIếP)
Hpred(p) và Hsucc(p) là 2 điểm đứng liền trước và đứng liền sau p trong H(DB) theo thứ tự đường cong
Hilbert.
Hpred(p,m) và Hsucc(p,m) là điểm đứng liền trước và liền sau thứ m của p.
Sử dụng tính chất: nếu 2 điểm trong khoảng đơn vị I là gần nhau thì hình ảnh tương ứng của chúng cũng
gần nhau trong siêu lập phương D. Điều ngược lại không đúng. Do vậy việc giảm số chiều: từ d chiều sang
1 chiều có thể dẫn tới mất 1 số tính chất. Để hạn chế điều này sử dụng thêm phương pháp chuyển dịch
hoặc quay siêu lập phương D.
PHƯƠNG PHÁP CHUYểN DịCH HOặC
QUAY SIÊU LậP PHƯƠNG D
Duy trì sự gần nhau của 2 điểm trong không gian d chiều bằng vài hệ số khi chúng chuyển sang
không gian 1 chiều. Số lần điều chỉnh phụ thuộc vào d chiều.
Cho 1 tập DB và vecto
Một điểm p thuộc DB có thể được biến đổi d+1 lần dọc theo đường chéo chính bằng cách p
j
= p
+ v
(j)
với j=0, ,d
Bản sao các điểm được điều chỉnh về [0,2]
d
và với mỗi điểm p, giá trị Hilbert d+1 trong đoạn [0,2]
được tính toán.
2. ĐịNH NGHĨA VÀ KÍ HIệU (TIếP)
Một vùng r là một siêu lập phương hở [0,2)
d
với chiều dài mỗi cạnh là r = 2
1-l
có dạng
Trong đó với ai, 0 ≤ i < d và l ϵ N.
o
Số vùng của cạnh r là –log2(r).
o
Cho p và q. MinReg(p,q) là cạnh nhỏ nhất của vùng r chứa p và q. MaxReg(p,q) là cạnh lớn nhất của vùng
r chứa p nhưng không chứa q.Ta có:
2. ĐịNH NGHĨA VÀ KÍ HIệU (TIếP)
Ở đây pi là giá trị của p chiếu xuống tọa độ thứ i.
Đặt p, q1, q2 là 3 điểm. Ta có:
là bán kính láng giềng gần nhất của p chứa vùng r nhưng không chứa q1 hoặc q2.
2. ĐịNH NGHĨA VÀ KÍ HIệU (TIếP)
Bổ đề 1: Cho 1 tập DB, 1 điểm p thuộc DB, 2 số nguyên dương a và b và 1 tập các điểm
Đặt r = và
Ta có:
1. Các điểm trong S là |S| là các láng ghiềng thực sự đầu
tiên của p trong DB.
2.
3. THUẬT TOÁN
Thuật toán HilOut gồm 2 giai đoạn:
Thực hiện tối đa d + 1 lần quét tập dữ liệu vào
và cho kết quả là - một xấp xỉ của Out
k
n
,
ở đây , với chi phí thời gian
phức tạp thấp.
Thực hiện một lần quét đơn tập dữ liệu và tính
toán Out
k
n
để có được kết quả chính xác cần tìm.
3. THUẬT TOÁN (tiếp)
Mỗi lần quét HilOut tính toán một cận dưới và cận trên tới trọng số wk của mỗi
điểm và nó giữ các giá trị cận dưới lớn nhất trong WLB.
Giá trị thứ n, w* trong WLB là 1 cận dưới tới trọng số của phần tử gây nhiễu thứ n
và nó được sử dụng để xác định các điểm có khả năng là các phần tử gây nhiễu.
Tại mỗi vòng lặp, như kết quả thực nghiệm chỉ ra, số các phần tử gây nhiễu dự
tuyển giảm. Điều này cho phép thuật toán tìm được kết quả chính xác trong ít
bước:
3. THUẬT TOÁN (tiếp)
Trong thuật toán HilOut, mỗi điểm có 7 thành phần thuộc tính:
Point: một điểm trong nửa khoảng [0,2)
d
Hilbert: giá trị Hilbert tương ứng với điểm thứ h
trong không gian đường cong Hilbert ánh xạ từ
siêu lập phương [0,2)
d
sang tập số nguyên [0,2
hd
)
Level: thứ tự vùng r nhỏ nhất chứa cả point và
phần tử kế tiếp trong DB (theo thứ tự Hilbert)
Weight: một cận trên tới trọng số của point trong
DB.
Radius: bán kính của vùng lân cận của point không
gian d chiều.
Weight
0
: tổng khoảng cách giữa point tới mỗi điểm
nằm trong vùng lân cận
Count: số điểm trong vùng lân cận
3. THUẬT TOÁN (tiếp)
Input của thuật toán là tập dữ liệu DB với N điểm trong siêu lập phương [0,1]
d
, số
n các phần tử gây nhiễu cần tìm và k là số láng giềng gần nhất được chỉ định.
Cấu trúc dữ liệu để thực hiện gồm hai đống (heap) của n các thuộc tính điểm OUT
và WLB, tập TOP, một danh sách các thuộc tính điểm PF.
Cuối mỗi lần lặp, thuộc tính được lưu trong OUT, WLB tương ứng là n giá trị lớn
nhất của trường Weight, WLb(f) =
, , TOP là tập 2n thuộc tính điểm phổ biến nhất được thiết lập từ sự kết hợp
các thuộc tính được lưu trong OUT và WLB ở cuối lần lặp trước đó.