TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
CHƯƠNG TRÌNH ĐÀO TẠC THẠC SĨ CNTT QUA MẠNG
TẬP THÔ TRONG KHAI PHÁ DỮ LIỆU
TÌM TẬP RÚT GỌN SỬ DỤNG MA TRẬN PHÂN BIỆT ĐƯỢC
Bộ môn: Khai phá dữ liệu và kho dữ liệu
Giáo viên hướng dẫn: PGS.TS. Đỗ Phúc
Sinh viên: Trần Hoài Phong
MSSV: CH1101027
Niên khóa 2011 - 2013
Mục lục
Lời mở đầu
Việc khám phá tri thức trong cơ sở dữ liệu đã được phát triển như là một trong
những lĩnh vực quan trọng và năng động nhất vì những thách thức gặp phải trong lý
thuyết cũng như các ứng dụng thực tế có liên quan đến vấn đề khám phá hoặc rút trích
ra những thông tin thú vị và kiến thức chưa biết từ một tập cơ sở dữ liệu rất lớn của thế
giới thực. Lý thuyết Tập thô là một hình thức toán học để biểu diễn các thông tin
không chắc chắn. Nó được xem như là một công cụ để giảm số chiều đầu vào và xử lý
các dữ liệu mơ hồ không chắc chắn. Trong những năm trở lại đây, đã có những sự phát
triển nhanh chóng trong lý thuyết tập thô và các ứng dụng của nó trong nhiều lĩnh vực
nghiên cứu khách nhau bao gồm các vấn đề liên quan đến máy học theo quy nạp và rút
trích tri thức trong các hệ thống tri thức. Mục tiêu chính của bài báo cáo này sẽ đưa ra
một số khái niệm cơ bản về tập thô. Trong đó tập trung phần lớn vào bài toán tìm ma
trận tập rút gọn sử dụng ma trận phân biệt được để quá đó cho chúng ta thấy rõ tại sao
việc phân tích tập thô lại có thể được sử dụng hiệu quả để rút trích ra kiến thức từ một
tập lớn cơ sở dữ liệu.
Trong bài báo cáo em sẽ đưa ra một thuật toán cũng như một ứng dụng áp dụng
thuật toán được nêu ra để giúp hiểu rõ hơn về quá trình rút trích tri thức từ tập dữ liệu
thực tế. Việc cài đặt thuật toán hoàn toàn là do cá nhân lập trình, do tính phức tạp của
Niên khóa 2011 - 2013
2
thuật toán cũng như một số hạn chế về thời gian cài đặt cũng như kiến thức nên phần
ứng dụng có thể chưa phải là bản hoàn chỉnh nhất có thể.
Cuối cùng em xin cám ơn thầy đã rất nhiệt tình hướng dẫn trong quá trình giảng
dạy. Thầy đã cung cấp cho em nhiều kiến thức quý báu qua đó giúp em có thể nghiên
cứu sâu hơn trong nhiều lĩnh vực trong tin học mà trước đây mình chưa từng nghĩ đến.
1. Các khái niệm và thuật ngữ
Tập thô dùng để phân tích sự không chắc chắn trong dữ liệu. Chúng được sử
dụng để xác định các đặc trưng quan trọng của các đối tượng và xây dựng các tập xấp
xỉ trên và xấp xỉ dưới của tập đối tượng. Trong thế giới thực các dữ liệu khác nhau về
kích thước và độ phức tạp do đó rất khó để phân tích cũng như quản lý trên quan điểm
toán học. Mục tiêu quan trọng nhất của phân tích tập thô là giảm kích thức dữ liệu và
xử lý vấn đề không đồng nhất trong dữ liệu. Phần tiếp theo sẽ nêu ra các khái niệm
chính của tập thô được dùng cho các thông tin không nhất quán, gần đúng để xử lý các
dữ liệu dư thừa.
1.1. Hệ thông tin
Trong mô hình dữ liệu của tập thô, thông tin được lưu trữ trong bảng nơi một sự
kiện hoặc một đối tượng được thể hiện tương ứng với một dòng. Các thông tin về đối
tượng trong thế giới thực được thể hiện bởi dòng tương ứng trong bảng. Mỗi cột trong
bảng được dùng để thể hiện các đặc trưng (một giá trị, một đặc điểm, …) mà có thể đo
đạc được cho đối tượng đó. Một bảng như vậy được gọi là một hệ thông tin.
Nó có thể được biểu diễn như là một cặp IS=(U,A) trong đó U={x1, x2,…,xn}
là tập hữu hạn khác rỗng các phần tử. A={a1, a2, …, am} là tập hữu hạn khác rỗng các
thuộc tính sao cho a:U->Va, a
∈
A. Tập Va được gọi là tập giá trị của a. Chúng ta sẽ
chia tập giá trị này thành hai tập con C
⊂
A và D = A – C, tương ứng là tập thuộc tính
Niên khóa 2011 - 2013
3
và thuộc tính quyết định. Tập thuộc tính đại diện cho các đặc trưng có thể đo lường
được của đối tượng trong khi thuộc tính quyết định là một thuộc tính dùng để phân lớp.
Một ví dụ của bảng thông tin:
Các cột của bảng được đánh nhãn bởi các thuộc tính Outlook, Temperature,
Humidity, Windy và Play. Các dòng được đánh nhãn bởi các đối tượng p1, p2, p3,
…,p5.
Mỗi dòng trong bảng có thể được xem là thông tin về một đối tượng cụ thể. Ví
dụ đối tượng p3 có thể được đặc trưng trong bảng bởi các tập giá trị thuộc tính sau đây
{(Outlook,overcast),(Temperature,83),(Humidity,86), (Windy, False),(Play, Yes)}
Outlook Temperature Humidity Windy Play
P1 sunny 85 85 FALSE no
P2 sunny 80 90 TRUE no
P3 overcast 83 86 FALSE yes
P4 rainy 70 96 FALSE yes
P5 rainy 68 80 FALSE yes
P6 overcast 64 65 TRUE yes
P7 overcast 81 75 FALSE yes
1.2. Quan hệ bất khả phân biệt
Đây là điểm khởi đầu của lý thuyết tập thô, nó thể hiện thực tế do thiếu một số
tri thức làm cho chúng ta không thể phân biệt được vài đối tượng với những thông tin
sẵn có. Đây là một dạng của sự dư thừa trong dữ liệu. Cho hệ thông tin IS = (U, A) đối
với mỗi tập thuộc tính B
⊆
A một quan hệ bất khả phân biệt được ký hiệu là IND
B
được định nghĩa như sau:
IND
B
(U) = {(x,y)
∈
U
2
|
∀
a
∈
B a(x) = a(y)} trong đó B là quan hệ bất khả
phân biệt
Nếu (x,y)
∈
IND
is
thì đối tượng x và y là bất khả phân biệt với nhau bởi thuộc
tính B. Chúng ta có thể dễ dàng chứng minh quan hệ bất khả phân biệt là một quan hệ
Niên khóa 2011 - 2013
4
tương đương. Chúng ta kí hiệu lớp bất khả phân biệt B của x là [x]
B
. Quan hệ tương
đương sẽ làm cho tập đối tượng bị chia thành các phân mãnh lớp tương đương và hội
các tập hợp này sẽ tạo ra lại tập đối tượng.
Chúng ta hãy quan sát mỗi tập con các thuộc tính đã chia tập hợp các đối tượng
trong bảng thành các lớp có cùng đặc trưng giống nhau. Ví dụ trong bảng 1, các đối
tượng p1, p6, p7 là bất khả phân biệt bởi thuộc tính outlook. Vì vậy mỗi tập hợp con
của các thuộc tính sẽ tạo ra một nhóm các tập đối tượng có cùng các đặc trưng. Các
nhóm này được xem như tập cơ sở là khối xây dựng cơ bản của lý thuyết tập thô.
1.3. Xấp xỉ tập hợp
Quan hệ tương đương và các lớp tương đương cung cấp các thông tin và các tri
thức về các đối tượng mà chúng ta đang xem xét. Ý tưởng chính của lý thuyết tập thô
là các không gian xấp xỉ và các xấp xỉ dưới và xấy xỉ trên của một tập hợp. Một tập thô
được xác định thông qua xấp xỉ trên và xấp xỉ dưới của nó. Gọi X
⊆
U là một xấp xỉ
bằng cách chỉ sử dụng các thông tin chứa trong B bằng cách khởi tạo ra các xấp xỉ B-
trên và xấp xỉ B-dưới của X:
B
X = {x
∈
U: [x]
B
⊆
X}
B
X = {x
∈
U: [x]
B
∩
X
≠ ∅
}
BN
B
=
B
X -
B
X
Trong đó BN
B
gọi là biên B của X chứa các đối tượng không thể phân lớp theo
B. Nêu biên B là một tập hợp rỗng người ta nói tập này là rõ, ngược lại nếu biên B
khác rỗng người ta nói tập này là thô.
Tập thô có thể được đặc trưng bởi một con số
α
B
(X) =
|B(X)|
|B(X)|
Niên khóa 2011 - 2013
5
Được gọi là độ chính xác của xấp xỉ, trong đó |X| là lực lượng của X
≠ ∅
. Dễ
nhận thấy 0<=
α
B
(X) <=1. Nếu
α
B
(X) = 1, X là rõ so với B, và ngược lại, nếu
α
B
(X) < 1, X là thô so với B.
1.4. Rút gọn và lõi
Nó dùng để đề cập một tập thuộc tính con mà có thể đặc trưng được đầy đủ tri
thức trong cơ sở dữ liệu, điều đó có nghĩa là chúng ta có thể loại bỏ một số dữ liệu thừa
từ hệ thông tin trong khi vẫn có thể bảo quản các đặc tính cơ bản của nó. Một rút gọn
có thể được coi như là một tập đầy đủ các thuộc tính có nghĩa là nó có thể đại diện cho
cấu trúc của lớp.
Cho C,D
⊆
A là một tập các thuộc tính điều kiện và quyết định. Chúng ta sẽ gọi
C’
⊆
C là D-Rút gọn của C (rút gọn tương ứng của D), nếu C’ là một tập con nhỏ nhất
của C thỏa
γ
(C,D) =
γ
(C’,D)
Giao của tất cả D-Rút gọn được gọi là D-Lõi (Lõi tương ứng của D). Vì lõi là
giao của tất cả rút gọn nên nó là một tập các thuộc tính của các rút gọn hợp lệ và do đó
nó bao gồm tất cả các thuộc tính không thể gở ra khỏi hệ thông tin mà không gây ra sự
sụp đổ trong cấu trúc của lớp tương đương.
1.5. Ma trận bất khả phân biệt
Cho hệ thông tin T = (U, C, D) với U={u1, u2, …., un}, ma trận phân biệt của
nó M là một ma trận n x n, trong đó mỗi phần tử m cho một cặp (x,y) được định nghĩa
như sau.
m
ij
=
λ
, u
i
(D) = u
j
(D)
={c
∈
C | u
i
(c)
≠
u
j
(c)} , u
i
(D)
≠
u
j
(D)}
Niên khóa 2011 - 2013
6
Ý nghĩa của phần tử m là các đối tượng x, y có thể được phân biệt bởi bất kì
thuộc tính nào trong m. Nếu m
ij
=
λ
hàm ý các đối tượng x, y không phân biệt được
trên tập thuộc tính quyết định D. Nếu m
ij
=
∅
thì bảng quyết định là không nhất quán
(x, y bằng nhau thuộc tính điều kiện nhưng khác nhau trong thuộc tính quyết định).
Ví dụ cho ma trận
Ma trận bất khả phân biệt tương ứng là:
2. Các thuật toán tìm rút gọn
Từ các khái niệm và thuật ngữ đã được tìm hiểu ở trên chúng ta đi vào một số
thuật toán để thấy được bản chất của vấn đề rút gọn các tập thuộc tính và đây là cơ sở
để hiểu được phần nào các thuật toán tìm tập rút gọn trong một hệ thông tin
1.6. Tìm rút gọn dựa trên hàm phân biệt
Niên khóa 2011 - 2013
7
Cho hệ thông tin T = (U, C, D) với U={u1, u2, …., un} có ma trận phân biệt M
= “m
ij
”, hàm phân biệt f
t
của T được xây dựng như sau
f
t
=
, , ,
{ | }
ij
i j i j m ij ij ij
m m c
< ≠∅
∧ ∨ ∈
Ví dụ từ ma trận M
Ta có hàm phân biệt sau:
f
t
=
( ) ( )a c b c a b∨ ∧ ∧ ∧ ∨
Sử dụng các tính chất trong đại số Boolean ta có thể đưa về các dạng chuẩn tắc,
từ đó ta sẽ tìm ra được các rút gọn của hệ thông tin.
Sau khi rút gọn ta được f
t
=
b c
∧
từ đó ta tìm được một rút gọn của hệ thông tin
là {b, c}
1.7. Tìm rút gọn dựa trên chiến lược Johnson
Trong thuật toán trên đòi hỏi một độ phức tạp rất lớn về thời gian và không gian
lưu trữ. Để khắc phục nhược điểm trên Johnson đưa ra một thuật toán vẫn dựa vào ý
nghĩa của ma trận bất khả phân biệt nhưng không cần phải lưu trữ ma trận bất khả phân
biệt. Thay vào đó là xác định số cặp phân biệt được đối với từng thuộc tính điều kiện.
Xét hệ thông tin T = (U, C, D) với U={u1, u2, …., un}, Với bất kì B
⊆
C và X
⊆
U, quan hệ tương đương IND(B) giới hạn trên tập X được ký hiệu là IND
x
(B) và
tập các lớp tương đương tạo bởi quan hệ này là [IND
x
(B)]
Niên khóa 2011 - 2013
8
Với thuộc tính a
∈
A, giả sử [IND
x
(a)] = {X
1
, X
2
, …., X
m
}. Đặt x = |X| và x
i
= |X
i
|, i = 1,…, m. Số W
x
(a) các cặp đối tượng trong X phân biệt nhau tại thuộc tính a
được tính từ công thức:
2 2
1
W ( )
2 2
m
i j
i
i j
x
i
x x
x x
a
≠
=
−
= =
∑
∑
Nếu R
⊆
C là một rút gọn của C thì mọi cặp đối tượng bằng nhau trên R cũng
bằng nhau trên D, hay nói cách khác W
R
(D) = 0. Dựa vào ý tưởng này người ta xây
dựng một thuật toán tìm tập rút gọn xuất phát từ tập R =
∅
và bổ sung dần các thuộc
tính vào R cho đến khi nhận được W
R
(D) = 0.
Thuật toán
Vào: Hệ thông tin T = (C, D)
Ra: Tập rút gọn R
Phương pháp:
1. R =
∅
; L = {U}
2. Repeat
3. For c
j
∈
C
For X
i
∈
L
Tìm [IND
i
x
(c
j
)]
Tìm W
i
x
(c
j
)
End
Tính W
U
R
(c
j
) = W
1
x
(c
j
) + … + W
m
x
(c
j
)
End
4. Chọn thuộc tính c
j
có giá trị W
U
R
(c
j
) nhỏ nhất
5. R = R
∪
c
j
Niên khóa 2011 - 2013
9
6. L = [IND
1
x
(c
j
)]
∪
…
∪
[IND
m
x
(c
j
)]
7. Nếu W
U
R
(c
j
) = 0 hoặc R = C
Dừng
Ngược lại thực hiện lại bước 2.
Ví dụ
Cho hệ thông tin sau:
Đặt c
1
= Đau đầu, c
2
= Đau cơ, c
3
= Thân nhiệt
1. R =
∅
; L = {U}
2. Repeat
3.
[IND
1
x
(c
1
)] = {{u1, u2, u3}, {u4, u5, u6}}
W
L
R
(c
1
) = W
1
x
(c
1
) = ½(3
2
-1
2
-2
2
) + ½(3
2
-2
2
-1
2
) = 2
[IND
1
x
(c
2
)] = {{u1, u2, u3, u4, u6}, {u5}}
W
L
R
(c
2
) = W
1
x
(c
2
) = 6 + 0 = 6
[IND
1
x
(c
3
)] = {{u1, u4}, {u2, u5}{u3, u6}}
W
L
R
(c
3
) = W
1
x
(c
2
) = 1 + 0 + 0 = 1
4. Chọn c
3
do W
L
R
(c
3
) nhỏ nhất bằng 1
Niên khóa 2011 - 2013
10
5. R = R
∪
c
3
6. L = [IND
1
x
(c
3
)] = {{u1, u4}, {u2, u5}{u3, u6}}
7. Do W
L
R
(c
3
)
≠
0 hoặc R
≠
C. Lặp lại bước 2
1. R = { c
3
}; L = {{u1, u4}, {u2, u5}{u3, u6}}
2. Repeat
3.
[IND
1
x
(c
1
)] = {{u1}, {u4}} W
1
x
(c
1
) = 0
[IND
2
x
(c
1
)] = {{u2}, {u5}} W
2
x
(c
1
) = 0
[IND
3
x
(c
1
)] = {{u3}, {u6}} W
3
x
(c
1
) = 0
W
L
R
(c
1
) = 0 + 0 + 0 = 0
[IND
1
x
(c
2
)] = {{u1, u4}} W
1
x
(c
2
) = 0
[IND
2
x
(c
2
)] = {{u2}, {u5}} W
2
x
(c
2
) = 0
[IND
3
x
(c
2
)] = {{u3, u6}} W
3
x
(c
2
) = 0
W
L
R
(c
2
) = 0 + 0 + 0 = 0
4. Chọn c
1
hoặc c
2
do W
L
R
(c
1
) = W
L
R
(c
2
) = 0
5. R = R
∪
c
1
hoặc R = R
∪
c
2
6. Do
L
R
(c
1
) = W
L
R
(c
2
) = 0 dừng thuật toán.
=> Sau khi thuật toán kết thúc ta được R = { c
3
, c
1
} hoặc R = { c
3
, c
2
}
3. Cài đặt thuật toán Johnson
Ứng dụng minh họa được lập trình trên nền .net. Ngôn ngữ lập trình c# được
viết trên bộ công cụ visual studio 2008.
Niên khóa 2011 - 2013
11
1.8. Các hàm để nhập, xuất dữ liệu phục vụ cho bài toán
- Hàm này để thay đổi số thuộc tính đầu vào, từ thuộc tính đầu vào sẽ tạo ra giao
diện nhập hệ thông tin
!
"#
""
$!%"&'"!%
(
)"*+,
(
(
- Hàm này thêm vào một gridview để người dùng nhập các thông tin của hệ thông
tin làm đầu vào cho bài toán.
$!%"&'"!%
!
-"./
&'"!%
'"!%"0
'"!%12
-/ 3" 44
'"!%"044
(
'"!%"0%%
-'"!%12"./
-/ 3
'"!%"0" 44
'"!%54
'"!%"0675
(
(
&'"!%'"!%
(
Niên khóa 2011 - 2013
12
(
(
(
- Hàm này để xóa các kết quả thừa hoặc các kết quả không phải có w nhỏ nhất.
$8'""!91!9
:;
-1"<= ./ <<
!91!9167
1>
-<= ./ <<
??$@@AB2CD
-:;67.:;67
110
:;10
<<
(
-:;673:;67
110
:;10
<<
(
??@E0FGHI
!91!9167
1>
>0"
-1"J1"
>0-
(
-K/ K31" K44
-J16K7L"16K7
>0-
(
(
(
->0
110
Niên khóa 2011 - 2013
13
:;10
<<
(
(
(
(
(
1.9. Các hàm chính được sử dụng trong thuật toán Johnson
- Hàm “btnTimRutGon_Click” thực hiện các bước 1, 4, 5, 6, 7 trong thuật toán
Mô tả hàm
Ban đầu hàm khởi tạo các giá trị cho R, L, Y ban đầu từ các giá trị đầu vào. Lưu
ý ở đây ta có thêm tập Y dùng để lưu các giá trị W
U
R
(c
j
) phục vụ cho việc kiểm tra
xem có bằng 0 hay không cũng như để loại các trường hợp có W
U
R
(c
j
) không phải là
nhỏ nhất.
Tập R sẽ có nhiều trường hợp vì đôi khi thuật toán chạy sẽ cho ra hai giá trị W
U
R
(c
j
) bằng nhau và đều nhỏ nhất, do đó sẽ có trường hợp R = “{c1, c2}” hoặc R = “{c1,
c3}”. Do đó ta phải lặp trong R trước tiên lấy ra mọi trường hợp để tiến hành tính toán
W
U
R
(c
j
) trên các trường hợp khác nhau.
Với mỗi trường hợp trong R ta có các L tương ứng, từ R với L tương ứng đó ta
đưa vào hàm “GetMinY”. Hàm “GetMinY” mô tả lại các bước thực hiện trong 2 và 3.
Sau khi đã chạy hàm GetMinY ta sẽ được các giá trị sau đây: giá trị W
U
R
(c
j
)
nhỏ nhất, các vị trí của thuộc tính gây ra giá trị W
U
R
(c
j
) nhỏ nhất, các thuộc tính gây ra
giá trị W
U
R
(c
j
) nhỏ nhất và tập các giá trị W
U
R
(c
j
).
Từ các giá trị nhận được ta sẽ xác định được R và L. Tiến hành kiểm tra với các
điều kiện dừng xem có dừng thuật toán và xuất ra kết quả hay không.
Lập trình hàm
01"MK
Niên khóa 2011 - 2013
14
-'"!%12".=NN
'"!%"0".=
!912!9
12!9
!9$02!9
!992!9
-/ 3'"!%12"<= 44
$0
(
!9:902!9
:90$0
9:90
!9:;2!9
2"
0;O)"
!90;P
!9O
!9:P
!910!91
!990!99
!9:;0!9:;
1
:;
9
-/ 310" 44
!9:1!91067
!9:9!99067
MO;:1:9"0;"0;P
"O":P":;0
-/ 3O" 44
Niên khóa 2011 - 2013
15
!9:10
!9:1
:10O67
1:10
:;:;060;P677
:902!9
-!90
!9:P60;P677
-!9$0
-$6/7!9
-$$
!9$
:90$$
(
(
:90$
(
(
(
9:90
(
(
-0;/
K
(
&K-
-!911
Niên khóa 2011 - 2013
16
-1""
&K"
K
(
(
-&K
K
(
$8'""1:;
:8'"1:;
(
(
- Hàm “GetMinY” thực hiện các bước 2, 3 trong thuật toán
Mô tả hàm
Ban đầu hàm nhận giá trị R, L vào. Lặp tất cả thuộc tính c
j
, nếu thuộc tính đó
đã có trong R thì ta sẽ không xét nữa. Tiếp theo lặp các X thuộc L.
Trong mỗi vòng lặp ta tính ra được các [IND
i
x
(c
j
)] và W
i
x
(c
j
). Đồng thời có
một biết y để lưu tổng các W
i
x
(c
j
) vừa tìm được.
Sau khi hàm được chạy xong ta trả lại kết quả cho hàm “btnTimRutGon_Click”
để hàm này tính toán điều kiện dừng.
Lập trình hàm
MO;!91!99
"0;"!90;P"!90
"!9:P"!9:;
:P2!9
:;2!9
0;O)"
Niên khóa 2011 - 2013
17
0;P2!9
02!9
-/ 3" 44
-1
"
(
!9P2!9
!/
-!9$9
!9"Q2!9
!9P$2!9
-/ 3$" 44
-J"Q$67
??0;
!9;2!9
;$67
"Q$67
-K4= K3$" K44
-
'"!%126$67767)">L"'"
!%126$6K7767)">
;$6K7
"Q$6K7
(
(
P$;
??2!
Niên khóa 2011 - 2013
18
!90!9;
!90%2!9
20"R0"
20"./
010=
-= 30" 44
2/P06/7
2P067
-
'"!%1262/P767)">L"'"!
%1262P767)">NN
'"!%1262/P76'"!%"0"<
=7)">L"'"!%1262P76'"!%
"0"<=7)">
010067
01044
<<
(
(
01006/7
22<010R010
(
22?E
!!42
(
(
PP$
(
-0;O)"SS!30;
0;!
Niên khóa 2011 - 2013
19
0;P
0
0;P:;"
0
(
-!0;
0;P:;"
0
(
:;!
:PP
(
(
1.10. Chạy và thực thi kết quả:
Người dùng nhập số lượng thuộc tính C của hệ thông tin. Sau đó nhập các giá trị
c tương ứng trong từng ô. Sau khi nhập xong nhấn nút tìm rút gọn. Chương trình sẽ
đưa ra tập rút gọn tìm được.
Dữ liệu thứ 1:
Niên khóa 2011 - 2013
20
Dữ liệu thứ 2:
Niên khóa 2011 - 2013
21
Dữ liệu thứ 3:
Niên khóa 2011 - 2013
22
1.11. Nhận xét:
Ưu điểm
- Thuật toán đã cài đặt thành công và thu được kết quả chính xác trong trường
hợp có nhiều tình huống phức tạp như có nhiều W
i
x
(c
j
) giống nhau. Điều chưa
được xử lý đầy đủ trong phần thuật toán.
- Không cần phải tốn không gian lưu trữ để lưu ma trận bất khả phân biệt.
- Người dùng có thể nhập động hoàn toàn các thuộc tính cũng như các đối tượng
để đưa vào bài toán.
- Phần cài đặt đã được đi đúng với các bước của thuật toán, đồng thời có những
bước tinh chỉnh để giúp cho thuật toán tìm được đầy đủ nhất, đồng thời có
những hàm tinh chỉnh kết quả giúp tránh tình trạng dư thừa dữ liệu.
Niên khóa 2011 - 2013
23
Khuyết điểm
- Do thuật toán khá phức tạp đòi hỏi đệ quy khá lớn trong nhiều trường họp có W
i
x
(c
j
) giống nhau. Tương ứng với mỗi trường hợp ta lại có các R khách nhau.
Chính vì điều này là gia tăng mức độ khó khăn trong việc cài đặt thuật toán.
- Từ các trường hợp khác nhau trong R đã nêu trên sau khi đã cài đặt và xử lý
được, ta lại gặp trường hợp một số R lại cho ra kết quả đi hết các thuộc tính
nhưng W
i
x
(c
j
) lại không bằng không và không giống nhau. Đòi hỏi chúng ta
phải qua một bước xử lý kết quả đối với các trường hợp như vậy để có thể nhận
được kết quả chính xác nhất.
- Một số khuyết điểm nhỏ như thực hiện việc lặp hết các thuộc tính sẽ tạo ra các
kết quả ví dụ R = {{c1, c2}, {c2, c1}} nghĩa là hai cặp trên thực tế là giống
nhau nhưng lại có trong kết quả cũng đã được xử lý.
- Cũng vì thời gian thực tế có hạn nên chưa thể test được nhiều trường hợp, có thể
trong quá trình lập trình các trường hợp phức tạp kể trên sẽ gây một số sai sót có
thể gây ra lỗi chương trình đồng thời phần lập trình chưa được tối ưu và gọn nhẹ
nhất có thể mong thầy có thể thông cảm.
Niên khóa 2011 - 2013
24
4. Kết luận
Tập thô chủ yếu dùng để phân loại các thông tin không chính xác, không chắc
chắn, không đầy đủ hoặc các kiến thức được thể hiện trong các dữ liệu thu được từ
kinh nghiệm. Nó chủ yếu phân biệt sự khác nhau giữa các đối tượng từ đó xếp chúng
vào các lớp cụ thể từ đó có thể phát sinh ra các thuật toán như tìm tập rút gọn, đưa ra
các luật và phân loại đối tượng…
Bài tiểu luận này chỉ đi vào một phần tương đối nhỏ, tổng quát của tập thô đó là
quá trình tìm ra tập rút gọn trong hệ thông tin. Từ các khái niệm tổng quá em đã đưa ra
một vài thuật toán để tìm ra các tập rút gọn trong một hệ thông tin. Đồng thời viết ra
một ứng dụng thực thi một thuật toán đã mô tả. Các nghiên cứu này đã giúp cho em có
được những kiến thức rất hữu ích. Qua nó em có thể thấy được những hướng đi rất tốt
mà sau này có thể áp dụng được trong cuộc sống hiện tại. Dữ liệu của thế giới thực
hiện giờ là rất khổng lồ. Nếu có thể áp dụng được những gì vừa nghiên cứu được và
mở rộng sâu hơn sẽ có thể tạo ra những sản phẩm vô cùng hữu ích trong cuộc sống.
Mặc dù đã cố gắng hết sức nhưng do hạn chế về mặt thời gian cũng như kiến
thức nên phần tiểu luận không khỏi tránh được những khuyết điểm, sai sót. Rất mong
được nhận xét của thầy. Và cám ơn thầy đã theo dõi phần tiểu luận của em.
Niên khóa 2011 - 2013
25