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

Một số vấn đề liên quan đến khai phá dữ liệu bằng cây quyế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 (1.35 MB, 90 trang )



2
Mục lục
Mục lục 2
Mở đầu 4
Chương 1 Tổng quan về công nghệ khai phá tri thức và kho dữ liệu 5
1.1 Công nghệ khai phá tri thức và khai phá dữ liệu 5
1.1.1 Khai phá tri thức và khai phá dữ liệu. 5
1.1.2 Quá trình khai phá tri thức 6
1.1.3 Nhiệm vụ khai phá dữ liệu 7
1.2 Kho dữ liệu 13
1.2.1 Kho dữ liệu và một số đặc điểm 13
1.2.2 Sự khác nhau giữa kho dữ liệu và cơ sở dữ liệu tác nghiệp 15
1.2.3 Kiến trúc chung của kho dữ liệu 19
Chương 2 Tiền xử lý dữ liệu, một công đoạn quan trọng trong quá trình KDD 25
2.1 Giới thiệu 25
2.2 Làm sạch dữ liệu 26
2.2.1 Giá trị bị mất 26
2.2.2 Dữ liệu bị nhiễu 27
2.2.3 Dữ liệu không nhất quán 29
2.3 Tích hợp và chuyển đổi dữ liệu 29
2.3.1 Tích hợp dữ liệu 29
2.3.2 Chuyển đổi dữ liệu 31
2.4 Thu gọn dữ liệu 32
2.4.1 Kết hợp khối dữ liệu. 32
2.4.2 Thu gọn các chiều 34
2.4.3 Nén dữ liệu 36
2.4.4 Giảm bớt số lượng 36
2.5 Rời rạc hóa và tổng quát hóa bậc khái niệm. 37
2.5.1 Tổng quát hóa và rời rạc hóa bậc khái niệm cho dữ liệu kiểu số 37


2.5.2 Tổng quát hóa mức khái niệm cho dữ liệu kiểu xác định 40
Chương 3 Một số phương pháp xây dựng cây quyết định trong khai phá dữ liệu. 43
3.1 Phân lớp và dự báo 43
3.1.1 Phân lớp và dự báo. 43
3.1.2 Chuẩn bị dữ liệu cho phân lớp và dự báo 46
3.1.3 So sánh các phương pháp phân lớp 47
3.2 Phân lớp bằng quy nạp cây quyết định 47
3.2.1 Quy nạp cây quyết định 48
3.2.2 Thu gọn cây 53
3.2.3 Rút ra quy tắc phân lớp từ cây quyết định 54
3.2.4 Cải tiến quy nạp cây quyết định cơ bản. 55
3.2.5 Quy nạp cây quyết định và khả cỡ. 56
3.2.6 Tích hợp quy nạp cây quyết định với công nghệ kho dữ liệu. 59
3.3 Xây dựng cây quyết định bằng phụ thuộc hàm 60
3.3.1 Định nghĩa vấn đề 62
3.3.2 Hàm và xấp xỉ phụ thuộc. 62
3.3.3 Phương pháp phân lớp 63
3.3.4 Ưu điểm của việc sử dụng lớp phụ thuộc hàm (CFDs). 64
3.3.5 Đánh giá 65


3
Chương 4 Khai phá dữ liệu trong CSDL ORACLE 10G. 66
4.1 Giới thiệu công cụ khai phá dữ liệu Oracle 66
4.2 Quá trình khai phá dữ liệu của Oracle 68
4.3 Một số thuật toán của ODM 69
4.3.1 Các thuật toán học có giám sát 69
4.3.2 Các thuật toán học không giám sát 73
Chương 5 Bài toán khai phá dữ liệu khách vi phạm quy chế xuất nhập cảnh 78
5.1 Lựa chọn phương pháp phân lớp. 78

5.2 Mô tả dữ liệu nghiệp vụ. 79
5.2.1 Chuẩn bị dữ liệu cho ứng dụng 79
5.2.2 Lựa chọn dữ liệu cho ứng dụng 80
5.3 Các tham số xây dựng mô hình cho thuật toán cây quyết định 82
5.4 Xây dựng mô hình 83
5.4.1 Xây dựng và kiểm thử mô hình 83
5.4.2 Nhận xét 88
Kết luận 89
1. Kết quả đạt được của luận văn 89
2. Phương hướng nghiên cứu tiếp theo 89
Tài liệu tham khảo 91








4

Mở đầu
Trong vài thập niên trở lại đây, với sự phát triển mạnh mẽ của công nghệ phần
cứng, đã tạo ra những máy tính có năng lực xử lý nhanh, khả năng lưu trữ lớn. Cùng
với việc tin học hóa mạnh mẽ trong hầu hết các lĩnh vực của đời sống xã hội nên
các tổ chức đã thu thập được một khối lượng dữ liệu lớn. Nhiều hệ quản trị cơ sở dữ
liệu đi cùng với các giải pháp lưu trữ và các công cụ phân tích dữ liệu mạnh đã giúp
chúng ta khai thác một cách hiệu quả nguồn tài nguyên dữ liệu quý báu đã thu thập
được.
Tuy nhiên, vấn đề mà chúng ta đang gặp phải là dữ liệu được thu thập và lưu trữ

ngày càng nhiều nhưng vẫn thiếu thông tin, thiếu tri thức giúp các nhà quản lý ra
quyết định. Các công cụ phân tích dữ liệu truyền thống tỏ ra không mấy hữu hiệu
khi lượng dữ liệu thu thập được tăng lên một cách nhanh chóng. Nhu cầu tìm kiếm
thông tin và tri thức ẩn chứa trong dữ liệu đã có từ lâu nhưng mãi đến những năm
90 của thế kỷ trước với sự phát triển mạnh mẽ của của một số lĩnh vực mới như kho
dữ liệu, các hệ hỗ trợ ra quyết định, các phương pháp phát hiện tri thức và khai phá
dữ liệu mới thu được những kết quả bước đầu. Từ đó, khai phá dữ liệu và phát hiện
tri thức đã trở thành một lĩnh vực nghiên cứu sôi động, thu hút được sự quan tâm
của rất nhiều các nhà khoa học thuộc các lĩnh vực khác nhau như cơ sở dữ liệu, học
máy, trí tuệ nhân tạo, thống kê,…
Luận văn này sẽ đề cập đến các kiến thức, kỹ thuật cơ bản liên quan đến khai
phá dữ liệu. Đi sâu nghiên cứu, phân tích, đánh giá và so sánh một số phương pháp,
thuật toán khai phá dữ liệu bằng cây quyết định.
Bằng việc vận dụng những kiến thức trình bày trong luận văn, kết hợp với tìm
hiểu và ứng dụng công nghệ khai phá dữ liệu của Oracle, chúng ta sẽ triển khai một
bài toán khai phá dữ liệu thực tế, đó là “Dự đoán loại vi phạm quy chế xuất nhập
cảnh của người nước ngoài tại Việt Nam”.


5


Chương 1 Tổng quan về công nghệ khai phá tri thức và
kho dữ liệu

1.1 Công nghệ khai phá tri thức và khai phá dữ liệu
1.1.1 Khai phá tri thức và khai phá dữ liệu.
Khai phá tri thức trong cơ sở dữ liệu (KDD) là một quá trình nhận biết các mẫu
hay mô hình từ dữ liệu, với các tính chất: có giá trị, mới, khả ích và có thể hiểu
được [3]. Khai phá dữ liệu (DM) là một công đoạn của quá trình KDD, nó bao gồm

các thuật toán khai phá dữ liệu cụ thể, có thể thực hiện được với khả năng có hạn
của máy tính, để tìm ra các mẫu hay mô hình trong dữ liệu. Nói một cách khác, mục
tiêu chung của KDD và DM là tìm ra các mẫu, các mô hình mà ta quan tâm, tồn tại
trong cơ sở dữ liệu nhưng đang bị che lấp.
KDD được phát triển nhanh chóng cùng với các lĩnh vực có liên quan như quản
trị cơ sở dữ liệu, thống kê, học máy và tính toán song song và hiệu năng cao, thu
nhận tri thức cho các hệ chuyên gia, trực quan hóa dữ liệu. Các lĩnh vực này đều có
một mục đích chung là chắt lọc (extract) tri thức từ dữ liệu trong các cơ sở dữ liệu
lớn.
Các lĩnh vực học máy, nhận dạng mẫu và KDD đều có cùng mục đích nghiên
cứu lý thuyết và giải thuật cho các hệ thống nhằm tìm ra các mẫu và các mô hình
bên trong dữ liệu (là những phương pháp khai phá dữ liệu chính). Khai phá tri thức
tập trung vào việc mở rộng lý thuyết và giải thuật cho những bài toán tìm kiếm mẫu
đặc biệt (có thể được hiểu theo nghĩa tri thức có ích hay được quan tâm) trong
những tập dữ liệu lớn của thế giới thực.
KDD cũng có nhiều điểm chung với các phương pháp thống kê, đặc biệt là
phân tích dữ liệu có tính chất thăm giò (EDA). Những hệ thống KDD thường được
nhúng vào bên trong những thủ tục thống kê một cách riêng biệt, để mô hình hóa dữ


6
liệu và kiểm soát nhiễu, những thủ tục này đóng vai trò là một thành phần trong kết
cấu tổng thể của hệ khám phá tri thức.
1.1.2 Quá trình khai phá tri thức
Quá trình khai phá tri thức thông thường gồm có một số bước cơ bản [3], như hình
1.1:
- Tìm hiểu ứng dụng và hình thành bài toán. Bước này hiển nhiên là điều kiện
đầu tiên đối với việc chắt lọc các tri thức hữu dụng và để lựa chọn phương
pháp khai phá dữ liệu thích hợp ở bước thứ ba phù hợp với mục tiêu của ứng
dụng và bản chất của dữ liệu.

- Thu thập và xử lý dữ liệu. Bao gồm việc chọn lựa nguồn dữ liệu, loại bỏ
nhiễu, xử lý dữ liệu bị mất, chuyển đổi (nếu có) và thu gọn dữ liệu. Bước này
thường chiếm phần lớn thời gian của toàn bộ quá trình KDD.
- Khai phá dữ liệu: Thực hiện việc chắt lọc các mẫu, mô hình bị che lấp trong
dữ liệu. Trong đó “mô hình được xem như một biểu diễn tổng thể của một
cấu trúc nhằm tóm lược những thành phần mang tính hệ thống nằm trong dữ
liệu hoặc miêu tả tập dữ liệu này được sinh sôi nảy nở như thế nào”. Trái lại,
“mẫu là một cấu trúc cục bộ có thể chỉ liên quan đến một nhóm các trường
và một số ít ca dữ liệu”. Phương pháp khai phá dữ liệu có một số lớp chính
như: Mô hình dự đoán bao gồm phân lớp và hồi quy; phân đoạn; mô hình
phụ thuộc như mô hình đồ thị hoặc ước lượng mật độ; Mô hình tóm lược như
tìm mối quan hệ giữa các trường, các liên kết…
- Làm sáng tỏ tri thức đã tìm được, đặc biệt là thể hiện dưới dạng mô tả và dự
đoán, đây là hai mục tiêu chính của các hệ thống khai phá dữ liệu trong thực
tế. Kinh nghiệm cho thấy, các mẫu và các mô hình tìm thấy không phải lúc
nào cũng đáng quan tâm và có thể trực tiếp sử dụng được ngay. Vì vậy quá
trình KDD cần thiết lặp đi lặp lại với việc đánh giá tri thức đã thu được. Để
đánh giá kết quả đã thu được người ta thường chia dữ liệu ra làm hai phần,
phần thứ nhất dùng để huấn luyện và phần thứ hai dùng vào việc kiểm thử.


7
Có thể lặp lại bước này một số lần với các lần chia dữ liệu khác nhau, sau đó
lấy kết quả trung bình để đánh giá luật thi hành.
- Bước cuối cùng là đem tri thức đã được phát hiện vào sử dụng trong thực tế.
Trong một số trường hợp, người ta có thể sử dụng tri thức phát hiện được mà
không cần phải đưa vào một hệ thống máy tính. Mặt khác, người sử dụng lại
mong muốn tri thức đã tìm được có thể được đưa vào máy tính và được khai
thác bằng một số chương trình. Đưa các kết quả đã thu được vào sử dụng
trong thực tế là mục tiêu cuối cùng của một quy trình KDD.



Hình 1.1 Quá trình khai phá tri thức.

Có một điều cần phải lưu ý là không gian các mẫu thường là vô hạn, và để
liệt kê ra được các mẫu cần phải có một số hình thức nghiên cứu trong không gian
này. Hiệu quả của sự tính toán bị ràng buộc bởi việc giới hạn không gian con tìm
kiếm mà có thể thực hiện được bằng thuật toán.
1.1.3 Nhiệm vụ khai phá dữ liệu
Để nhiệm vụ khai phá dữ liệu được thực hiện một cách thuận lợi, hiệu quả và
thành công người ta phải luôn quan tâm đến một số các yếu tố, bao gồm: các đặc tả
về một phần của cơ sở dữ liệu hay một tập dữ liệu mà người sử dụng quan tâm; loại
tri thức để khai phá; các tri thức nền giúp ích cho việc định hướng quá trình khai
Nhận dạng và
định nghĩa vấn đề
Thu nhận và
tiền xử lý dữ liệu
KHAI PHÁ DỮ LIỆU
Chắt lọc tri thức
Giải thích và
đánh giá kết quả
Sử dụng tri thức đã
khai phá được


8
phá; đánh giá sự quan tâm với mẫu tìm được…Dưới đây chúng ta sẽ xem xét một số
những yếu tố đó [4].
1.1.3.1 Dữ liệu liên quan đến nhiệm vụ khai phá.
Yếu tố đầu tiên là đặc tả về dữ liệu mà chúng ta thực hiện khai phá trên nó.

Thông thường, một người sử dụng chỉ quan tâm đến một phần nhỏ của cơ sở dữ
liệu. Khai phá toàn bộ cơ sở dữ liệu là một điều không thực tế, số lượng của các
mẫu sinh ra có thể là hàm mũ đối với cỡ của cơ sở dữ liệu và nhiều mẫu tìm thấy sẽ
chẳng liên quan gì đến quan tâm của người sử dụng.
Trong một cơ sở dữ liệu quan hệ, dữ liệu liên quan đến các nhiệm vụ có thể
được thu thập thông qua một truy vấn quan hệ, bao gồm các thao tác chọn, chiếu,
nối, kết hợp. Việc chuẩn bị dữ liệu có thể được xem là một “nhiệm vụ con” của cả
nhiệm vụ khai phá dữ liệu. Quá trình thu thập dữ liệu đem lại một dữ liệu quan hệ
mới, và được gọi là dữ liệu quan hệ khởi tạo. Dữ liệu này có thể được sắp xếp hay
nhóm lại tùy thuộc vào điều kiện đã được chỉ rõ trong truy vấn. Sau đó, nó có thể
được làm sạch hoặc chuyển đổi trước khi áp dụng các phương pháp phân tích dữ
liệu.
1.1.3.2 Loại tri thức sẽ khai phá.
Chỉ rõ loại tri thức sẽ khai phá là một điều rất quan trọng, bởi vì nó xác định
rõ chức năng khai phá dữ liệu sẽ được thực hiện. Tri thức bao gồm các loại như mô
tả khái niệm, dự báo, phân cụm và phân tích sự phát triển…
Thêm vào việc chỉ rõ loại tri thức sẽ được khai phá cho một nhiệm vụ khai
phá dữ liệu, người sử dụng có thể chỉ rõ hơn và cung cấp những khuân mẫu mà tất
cả những mẫu tìm được phải phù hợp. Những khuân mẫu đó, có thể được sử dụng
để định hướng cho quá trình khai phá.
1.1.3.3 Tri thức nền.
Tri thức nền là thông tin về lĩnh vực sẽ khai phá, nó rất hữu dụng cho tiến
trình khai phá. Chúng ta sẽ tập trung sự chú ý vào một dạng tri thức nền rất mạnh đã
được biết là thứ bậc khái niệm. Thứ bậc khái niệm cho phép khai phá tri thức ở


9
nhiều mức trừu tượng khác nhau. Một thứ bậc khái niệm định nghĩa một chuỗi
những ánh xạ từ một tập khái niệm mức thấp đến khái niệm mức cao, tổng quát hơn
và là một hình thức thể hiện rất có ý nghĩa của tri thức nền. Trong đó, cho phép dữ

liệu thô được kiểm soát ở mức độ trừu tượng cao và khái quát hơn. Quá trình khái
quát dữ liệu được thực hiện bằng cách thay thế dữ liệu gốc bằng dữ liệu có mức
khái niệm cao hơn. Điều này cho phép người sử dụng quan sát dữ liệu với ý nghĩa
đầy đủ hơn, minh bạch hơn và làm cho những mẫu tìm được dễ hiểu hơn.
Những thứ bậc khái niệm này có thể được cung cấp bởi những người sử dụng
hệ thống, các chuyên gia lĩnh vực, hoặc các kỹ sư tri thức. Chúng còn có thể tự
động được khai phá hoặc cải tiến một cách linh hoạt dựa vào phân tích thống kê
phân bố của dữ liệu.
1.1.3.4 Độ đo sự lôi quấn
Việc chỉ rõ dữ liệu liên quan và loại tri thức sẽ khai phá về cơ bản đã làm
giảm số lượng của những mẫu sinh ra. Tuy nhiên, quá trình khai phá dữ liệu vẫn
sinh ra một số lượng lớn các mẫu. Thông thường, chỉ có một phần nhỏ trong những
mẫu này thực sự được quan tâm bởi những người sử dụng cụ thể. Vì thế, người sử
dụng cần phải hạn chế hơn nữa số lượng của những mẫu không được quan tâm sinh
ra quá trình khai phá. Điều này thu được bằng cách chỉ ra độ đo sự lôi quấn để đánh
giá tính dễ hiểu, sự chắc chắn, sự có lợi và tính mới lạ của những mẫu thu được.
Thông thường, mỗi độ đo được kết hợp với một ngưỡng, và người sử dụng có thể
điều chỉnh được ngưỡng này, những luật không phù hợp với ngưỡng được xem là
không đáng chú ý. Dưới đây chúng ta sẽ xem khái quát về một số độ đo mục tiêu
này.
Tính dễ hiểu: Một nhân tố góp phần vào sự quan tâm của một mẫu là làm
cho con người nhận thức được các mẫu một cách dễ dàng. Tính dễ hiểu được định
nghĩa dưới dạng kích thước của các mẫu tính bằng bit, hoặc số lượng các thuộc tính
hay các toán hạng xuất hiện trong mẫu. Ví dụ, một mẫu có cấu trúc phức tạp hơn thì
sẽ khó hiểu hơn vì thế nó kém lôi quấn hơn.
Độ chắc chắn: Mỗi một mẫu đã được tìm ra đều có một độ đo về sự chắc
chắn gắn liền với chúng. Độ đo này đánh giá tính hiệu lực hay tính đáng tin cậy của


10

mẫu. Độ đo sự chắc chắn của một luật kết hợp có dạng “A=>B”. Cho một tập các
bản ghi (hoặc các giao dịch), thì sự tin tưởng “A=>B” được định nghĩa là:
_ _ _ _ _ _ _ _
()
_ _ _ _
So ban ghi bao gom ca A va B
SuTinTuong A B
So ban ghi co A
 
công thức (1.1)
Ví dụ: Cho một tập các bản ghi về dữ liệu bán hàng của một công ty máy
tính. Sự tin tưởng của luật kết hợp dưới đây là 85%
Mua(X,”may_tinh”) => Mua(X,”Phan_mem”)
Có nghĩa là 85% khách hàng mua máy tính thì sẽ mua phần mềm.
Sự tin tưởng đạt 100% có nghĩa là luật đã tìm thấy luôn luôn đúng trên tập
dữ liệu đã phân tích, những luật này được gọi là chính xác.
Sự có lợi: Khả năng có lợi của một mẫu là nhân tố định rõ sự lôi quấn của
nó. Nó có được đánh giá bằng một hàm tiện ích, như hàm ủng hộ (Support). Sự ủng
hộ của một mẫu kết hợp liên quan đến tỷ lệ phần trăm của các bản ghi cho một mẫu
đúng. Cho một luật kết hợp có dạng “A=>B” trong đó A và B là tập của các mục,
khi đó sự ủng hộ được định nghĩa là:
_ _ _ _ _ _ _
_ ( )
_ _ _ _
So ban ghi bao gom A va B
Ung ho A B
Tong so cac ban ghi
 
công thức (1.2)


Ví dụ: Cho một tập các bản ghi về dữ liệu bán hàng của một công ty máy
tính. luật kết hợp có sự ủng hộ là 30% nghĩa là có 30% trong tổng số các khách
hàng mua cả máy tính và phần mềm.
1.1.3.5 Biểu diễn các mẫu đã tìm ra.
Để việc khai phá dữ liệu thêm hiệu quả, hệ thống khai phá dữ liệu nên có khả
năng thể hiện những mẫu đã được phát hiện dưới nhiều hình thức khác nhau, như
các luật, các bảng tổng hợp, biểu đồ, cây quyết định hay các biểu diễn trực quan
khác. Việc cho phép thể hiện các mẫu đã được phát hiện dưới nhiều hình thức khác
nhau giúp người sử dụng với những kinh nghiệm khác nhau nhận ra các mẫu đáng
quan tâm và để tác động hay định hướng cho hệ thống trong những lần khai phá tiếp


11
sau. Một người sử dụng cũng có thể chỉ rõ hình thức thể hiện sẽ được sử dụng cho
việc hiển thị những mẫu đã được phát hiện.
Sự cần thiết phải có KDD
Có rất nhiều lý do khiến chúng ta cần phải có KDD, một số lý do tiêu biểu đó là
[3]:
- Nhiều tổ chức, trong một thời gian dài đã thu thập được một lượng lớn dữ
liệu, họ phải làm gì với những dữ liệu này.
- Người ta thu thập và lưu trữ dữ liệu vì nghĩ rằng có thể thu được những
thông tin có giá trị từ những dữ liệu này.
- Trong kinh doanh, thu giữ các dữ liệu về thị trường, đối thủ cạnh tranh và về
khách hàng. Trong các ngành sản xuất, thu giữ các dữ liệu về hiệu suất, tối
ưu hóa các cơ hội, cũng như nguyên tắc cải tiến các quy trình và các rắc rối
gặp phải.
- Chỉ có một lượng nhỏ dữ liệu đã thu thập được phân tích.
- Với ý nghĩ tiếp tục thu thập dữ liệu để không bỏ qua điều gì đó quan trọng,
mà dữ liệu này lại không được phân tích gây ra tốn kém.
- Các phương thức phân tích dữ liệu cổ điển tỏ ra không còn mấy phù hợp khi

lượng dữ liệu lên.
- Nhiều khi người phân tích dữ liệu không phải là những chuyên gia về dữ
liệu, do đó cần phải có công cụ để họ thực hiện công việc phân tích dữ liệu
- Trong môi trường cạnh tranh việc phát hiện ngay những dấu hiệu bất thường
và nhanh chóng đưa ra quyết định phù hợp là điều hết sức quan trọng.
Một số khó khăn gặp phải khi xây dựng KDD
Trong quá trình xây dựng KDD, chúng ta luôn gặp phải những trở ngại, chúng ta
phải tìm cách khắc phục và vượt qua những trở ngại này để thu được những kết quả
mong muốn. Một trong những khó khăn cơ bản đó là [3]:


12
- Cơ sở dữ liệu lớn: Những cơ sở dữ liệu với hàng trăm bảng, mỗi bảng hàng
trăm trường, hàng triệu bản ghi có dung lượng nhiều gigabyte đã trở nên bình
thường, và bây giờ đã xuất hiện nhiều cơ sở dữ liệu cỡ terabyte.
- Kích thước lớn: Không chỉ có nhiều bản ghi trong cơ sở dữ liệu mà trong các
bảng cũng cũng có rất nhiều thuộc tính, vì thế kích thước của vấn đề lớn.
Một tập dữ liệu có kích thước lớn làm tăng không gian tìm kiếm theo cách
bùng nổ tổ hợp. Hơn nữa, sẽ tăng khả năng làm cho thuật toán khai phá dữ
liệu tìm ra những mẫu sai, không có giá trị khái quát. Để giải quyết vấn đề
này, người ta sử dụng phương pháp giảm kích thước ảnh hưởng đến vấn đề
và sử tri thức ưu tiên (có trước) để nhận ra và loại bỏ những trường không
liên quan.
- Hiện tượng quá khớp: Khi thuật toán tìm kiếm tham số tốt nhất cho một mô
hình cụ thể sử dụng một tập dữ liệu học hạn chế, có thể xảy ra hiện tượng dữ
liệu quá khớp, làm cho mô hình kém hiệu quả trên tập dữ liệu thử. Giải quyết
vấn đề này sử dụng phương pháp kiểm tra chéo, thực hiện theo đúng các
nguyên tắc và các chiến lược thống kê phức tạp khác.
- Tri thức và dữ liệu thay đổi: Dữ liệu thay đổi nhanh chóng có thể làm cho
các mô hình tìm thấy trước đây không còn giá trị. Hơn nữa, các trường đã

được chọn trong một ứng dụng cơ sở dữ liệu cụ thể có thể bị thay đổi, bị xóa,
hay được thêm vào. Giải pháp có thể sử dụng là tăng cường phương thức cho
việc cập nhật các mô hình và xem sự thay đổi như là một cơ hội cho việc
khám phá bằng cách sử dụng chúng một cách thích hợp để chỉ tìm phải kiếm
lại cho các mô hình bị thay đổi.
- Dữ liệu bị nhiễu và bị mất: Vấn đề này đặc biệt hay xảy ra trong các cơ sở
dữ liệu thương mại, dữ liệu của các thuộc tính quan trọng có thể bị mất nếu
cơ sở dữ liệu không được thiết kế để dành cho mục đích khai phá. Để giải
quyết vấn đề này chúng ta phải tăng cường sử dụng những chiến lược thống
kê phức tạp để phát hiện ra những trường thông tin ẩn và sự phụ thuộc giữa
chúng.


13
- Các trường có quan hệ phức tạp: Cấu trúc phân cấp của các thuộc tính, giá
trị, quan hệ giữa các thuộc tính và nhiều phương thức phức tạp để biểu diễn
tri thức về nội dung của cơ sở dữ liệu đòi hỏi thuật toán phải sử dụng thông
tin có hiệu quả. Trước đây, các thuật toán về khai phá dữ liệu được phát triển
cho những thuộc tính có giá trị đơn, gần đây những kỹ thuật xuất phát từ các
quan hệ giữa các thuộc tính cũng đã được phát triển.
- Tính hiểu được của các mô hình: Trong rất nhiều ứng dụng, việc tìm ra được
điều gì dễ hiểu hơn đối với con người là rất quan trọng. Có thể biểu diễn
bằng đồ thị, ngôn ngữ tự nhiên, và các kỹ thuật cho việc trực quan hóa dữ
liệu và tri thức.
- Tương tác người sử dụng và tri thức ưu tiên: Rất nhiều công cụ và phương
pháp KDD hiện tại không thực sự tương tác và không thể dễ dàng với tri thức
ưu tiên của về một vấn đề ngoại trừ cách đơn giản sau: Việc sử dụng miền tri
thức là rất quan trọng trong tất cả các bước của quá trình KDD.
- Tương tác với các hệ thống khác: Một hệ thống khai phá đứng một mình có
thể không thực sự hữu ích, thông thường vấn đề tích hợp bao gồm tích hợp

với một hệ quản trị cơ sở dữ liệu (ví dụ thông qua truy vấn), tích hợp với
bảng tính và các công cụ trực quan …
1.2 Kho dữ liệu
1.2.1 Kho dữ liệu và một số đặc điểm
Kho dữ liệu cho ta những kiến trúc và các công cụ hỗ trợ công việc liên quan
đến ra quyết định. Rất nhiều các tổ chức đã nhận ra rằng kho dữ liệu là công cụ có
giá trị trong thời đại phát triển và đầy cạnh tranh. Vậy chính xác kho dữ liệu là gì?
Kho dữ liệu được định nghĩa theo rất nhiều cách khác nhau, làm cho nó khó có thể
có được một định nghĩa nghiêm ngặt. Theo cách nói thông thường, một kho dữ liệu
được xem như một cơ sở dữ liệu được duy trì riêng rẽ khỏi cơ sở dữ liệu tác nghiệp
của tổ chức. Hệ thống kho dữ liệu cho phép tích hợp các hệ thống ứng dụng khác
nhau. Chúng hỗ trợ việc xử lý thông tin bằng cách cung cấp một cơ sở vững chắc
những dữ liệu liên quan đến quá khứ đã được hợp nhất cho việc phân tích.


14
Cấu trúc chính trong khi xây dựng hệ thống kho dữ liệu cần phải thỏa mãn là
“Một kho dữ liệu là một bộ sưu tập dữ liệu có tính chất hướng chủ đề, được tích
hợp, khác nhau về thời gian và không hay thay đổi, hỗ trợ cho quá trình quản lý ra
quyết định”[4]. Đây là một định nghĩa ngắn, nhưng thể hiện đầy đủ những đặc điểm
quan trọng của một kho dữ liệu.
Bốn từ khóa [4]: hướng chủ đề, được tích hợp, khác nhau về thời gian và không
hay thay đổi dùng để phân biệt kho dữ liệu với những kiểu lưu trữ dữ liệu khác, như
hệ thống cơ sở dữ liệu quan hệ, hệ thống xử lý trực tuyến v v
 Hướng chủ đề: Một kho dữ liệu được tổ chức quanh một số chủ đề quan
trọng, như khách hàng, nhà cung cấp, sản phẩm và bán hàng. Hơn là tập
trung vào những tác nghiệp và quá trình giao dịch hàng ngày của tổ chức.
Một kho dữ liệu tập trung vào mô hình và phân tích dữ liệu cho việc ra quyết
định. Bởi vậy, kho dữ liệu thông thường cung cấp một cái nhìn ngắn gọn,
đơn giản quanh một chủ để riêng biệt đưa ra bằng cách loại đi những dữ liệu

không có ích trong qúa trình hỗ trợ ra quyết định.
 Được tích hợp: Một kho dữ liệu thường được xây dựng bằng cách tích hợp từ
nhiều nguồn hỗn tạp, như cơ sở dữ liệu quan hệ, tệp dữ liệu, các bản ghi giao
dịch trực tuyến. Các kỹ thuật làm sạch và tích hợp dữ liệu được áp dụng để
đảm bảo tính nhất quán trong các quy ước đặt tên, cấu trúc mã hóa, độ đo
thuộc tính vv vv.
 Khác nhau về thời gian: Dữ liệu được lưu trữ để cung cấp thông tin từ một
bối cảnh mang tính lịch sử (ví dụ đã xảy ra từ 5 đến 10 năm). Tất cả các cấu
trúc then chốt trong kho dữ liệu đều mang yếu tố thời gian một cách rõ ràng
hoặc không rõ ràng.
 Không hay thay đổi: Dữ liệu đã được biến đổi trong kho dữ liệu luôn được
lưu trữ một cách độc lập vật lý với những dữ liệu ứng dụng tìm thấy trong
môi trường tác nghiệp. Chính tại sự phân tách ấy, một kho dữ liệu không đòi
hỏi phải xử lý giao dịch, khôi phục và các cơ chế điều khiển tương tranh. Nó


15
chỉ thường yêu cầu hai thao tác trong truy nhập dữ liệu đó là: khởi tạo nạp dữ
liệu và truy nhập dữ liệu.
Như vậy, một kho dữ liệu có thể được xem như là một kiến trúc, được xây dựng
bằng việc tích hợp dữ liệu từ nhiều nguồn khác nhau để hỗ trợ các cấu trúc và/hoặc
những truy vấn đặc biệt, báo cáo phân tích và ra quyết định.
Vậy chúng ta sử dụng thông tin của những kho dữ liệu này như thế nào? Có rất
nhiều tổ chức sử dụng những thông tin này để hỗ trợ cho hoạt động ra quyết định
kinh doanh bao gồm: tăng sự tập trung vào khách hàng; lưu trữ các sản phẩm, quản
lý danh mục các sản phẩm bằng cách so sánh năng suất bán hàng theo tháng, quý
hay năm…; Phân tích hiệu quả và tìm kiếm các nguồn lợi; Quản lý quan hệ với
khách hàng, tạo ra môi trường bền vững, quản lý giá trị các tài sản liên doanh….
Kho dữ liệu đồng thời cũng rất hữu ích khi xét từ khía cạnh nó được tích hợp từ
nhiều nguồn dữ liệu khác nhau. Các tổ chức thường tập hợp nhiều loại dữ liệu và

duy trì những cơ sở dữ liệu lớn từ các nguồn thông tin phân tán, không thuần nhất
và phức tạp. Để tích hợp những dữ liệu này và tạo ra cách truy nhập dữ liệu dễ dàng
và hiệu quả là một điều rất mong muốn và còn là thách thức với chúng ta. Đã có
nhiều cố gắng của các chuyên gia trong chuyên ngành cơ sở dữ liệu nhằm đạt được
mục đích này.
1.2.2 Sự khác nhau giữa kho dữ liệu và cơ sở dữ liệu tác nghiệp
Khi chúng ta đã quen thuộc với các hệ quản trị cơ sở dữ liệu thương mại thì rất
dễ dàng để hiểu thế nào là một kho dữ liệu bằng cách so sánh hai hệ thống này với
nhau [4].
Nhiệm vụ quan trọng của hệ thống cơ sở dữ liệu hoạt động trực tuyến là để thực
hiện các giao dịch trực tuyến và xử lý truy vấn. Những hệ thống này đươc gọi là “hệ
thống xử lý giao dịch trực tuyến (OLTP). Chúng bao hàm hầu hết các hoạt động
hàng ngày của một tổ chức như thông tin về đặt hàng, tài chính, tiền lương… Trong
khi đó, kho dữ liệu được người sử dụng hay nhân viên tri thức khai thác với vai trò
phân tích dữ liệu và ra quyết định. Những hệ thống này có thể được tổ chức và biểu
diễn dữ liệu ở những định dạng khác nhau với mục tiêu làm cho nó đáp ứng được


16
các yêu cầu khác nhau của mọi người sử dụng. Những hệ thống này được gọi là “hệ
thống xử lý phân tích trực tuyến (OLAP)”
Một số các đặc điểm quan trọng dùng để phân biệt giữa OLTP và OLAP đó là
[4]:
- Hướng hệ thống và người sử dụng: Một hệ thống OLTP hướng tới khách
hàng và được dùng vào giao dịch và xử lý truy vấn bởi các nhân viên bán
hàng, khách hàng và các chuyên gia công nghệ thông tin. Hệ thống OLAP
hướng tới thị trường, được dùng vào việc phân tích dữ liệu bởi các nhân viên
tri thức, bao gồm cả nhà quản lý, người điều hành và nhà phân tích.
- Nội dung dữ liệu: Hệ OLTP quản lý dữ liệu hiện thời, thường thì nó quá chi
tiết để sử dụng cho việc ra quyết định. Một hệ thống OLAP quản lý một

lượng lớn những dữ liệu trước đây, cung cấp một phương tiện dễ dàng để kết
hợp, tổng kết, lưu trữ và quản lý thông tin ở những mức khác nhau. Đó chính
là những đặc điểm làm cho dữ liệu dễ dàng được sử dụng vào việc ra quyết
định.
- Thiết kế cơ sở dữ liệu : Hệ OLTP thường được thiết kế theo một mô hình
dữ liệu quan hệ thực thể và một thiết kế cơ sở dữ liệu hướng ứng dụng. Hệ
OLAP thường theo mô hình hình sao (star) hay bông tuyết (snowflake) và
thiết kế cơ sở dữ liệu hướng chủ đề.
- Loại dữ liệu: Một hệ thống OLTP tập trung chủ yếu vào dữ liệu hiện hành
bên trong một xí nghiệp hay một phòng ban, mà không tham chiếu đến dữ
liệu trong quá khứ hay dữ liệu của các tổ chức khác. Ngược lại, hệ thống
OLAP thường được mở rộng bằng nhiều phiên bản của một lược đồ cơ sở dữ
liệu nhờ có tiến trình phát triển của tổ chức. Hệ thống OLAP đồng thời cũng
xử lý được những thông tin bắt nguồn từ những tổ chức khác, tích hợp thông
tin từ nhiều nguồn lưu trữ dữ liệu. Bởi vì kích thước rất lớn của nó, dữ liệu
của hệ OLAP thường được lưu trữ trên nhiều phương tiện lưu trữ khác nhau.
- Kiểu truy nhập: Kiểu truy nhập của hệ thống OLTP chủ yếu bao gồm
những giao dịch ngắn và nguyên tố (nhỏ nhất, không thể phân chia được


17
nữa), nên nó đòi hỏi cơ chế điều khiển tương tranh và khôi phục. Tuy nhiên,
truy nhập trong hệ thống OLAP hầu hết là các thao tác chỉ đọc (bởi vì kho dữ
liệu lưu trữ những dữ liệu trước đây mà không lưu những thông tin hiện
hành), nhưng có thể có rất nhiều những truy vấn phức tạp.
Một số những đặc điểm khác dùng để phân biệt OLTP và OLAP được tổng kết ở
bảng sau:


18


Đặc điểm
OLPT
OLAP
Đặc trưng
Xử lý các thao tác
Xử lý thông tin
Định hướng
Giao dịch
Phân tích
Người dùng
Nhân viên bán hàng, quản trị
viên cơ sở dữ liệu, chuyên
gia cơ sở dữ liệu
Nhân viên tri thức (như nhà
quản lý, phân tích …)
Chức năng
Công việc hàng ngày
Yêu cầu các thông tin dài hạn,
hỗ trợ quyết định
Thiết kế cơ sở dữ liệu
Dựa trên mô hình quan hệ
thực thể, hướng ứng dụng
Dựa trên mô hình hình sao/hình
bông tuyết, hướng chủ đề
Dữ liệu
Hiện thời, đảm bảo được cập
nhật
Mang tính lịch sử, độ chính xác
được duy trì qua thời gian

Sự tổng kết
Nguyên bản, chi tiết cao
Được tóm tắt và hợp nhất
Đơn vị công việc
Giao dịch đơn giản, ngắn
gọn
Truy vấn phức tạp
Truy nhập
Đọc/ghi
Hầu hết chỉ đọc
Tập trung
Dữ liệu vào
Thông tin ra
Thao tác
Sắp xếp chỉ số trên khóa
chính
Duyệt trên rất nhiều dữ liệu
Số lượng truy nhập bản
ghi
Khoảng 10
Hàng triệu
Số lượng người sử dụng
Hàng nghìn
Hàng trăm
Cỡ của cơ sở dữ liệu
Từ 100 MB đến GB
Từ 100 GB đến TB
Sự ưu tiên
Hiệu năng, tính sẵn sàng cao
Tính mềm dẻo cao, người dùng

cuối tự quản
Bảng 1.1 -Sự khác nhau giữu CSDL tác nghiệp và kho dữ liệu
Tại sao lại phải có một kho dữ liệu riêng biệt
Có thể chúng ta sẽ tự hỏi “tại sao không thực hiện việc xử lý phân tích trực
tuyến trực tiếp trên cơ sở dữ liệu tác nghiệp, mà lại phải mất thời gian và tài nguyên
để đi xây dựng một kho dữ liệu riêng biệt”. Một lý do quan trọng của việc chia tách
này là để thúc đẩy hiệu suất cao trên cả hai hệ thống [4]. Một cơ sở dữ liệu tác
nghiệp được thiết kế và hiệu chỉnh xuất phát từ nhiệm vụ và khối lượng công việc
phải hoàn thành, như tổ chức các tệp chỉ số, việc tìm kiếm, tối ưu truy vấn…Mặt
khác, những truy vấn của kho dữ liệu thường rất phức tạp. Chúng liên quan đến việc
tính toán trên những nhóm dữ liệu lớn và có thể yêu cầu phải tổ chức dữ liệu riêng


19
biệt, phương thức truy nhập và thao tác dữ liệu dựa trên cái nhìn nhiều chiều. Xử lý
truy vấn OLAP trong cơ sở dữ liệu tác nghiệp sẽ làm giảm hiệu suất của các tác
nghiệp một cách đáng kể.
Hơn nữa, một cơ sở dữ liệu tác nghiệp hỗ trợ xử lý nhiều giao dịch trong cùng
một thời điểm, nên phải duy trì các cơ chế điều khiển tương tranh và khôi phục, như
cơ chế khóa (locking) hay ghi tệp…để đảm bảo tính toàn vẹn và bền vững của giao
dịch. Truy vấn OLAP thường truy cập các bản ghi dữ liệu ở chế độ chỉ đọc (read
only) để phục vụ cho việc tổng hợp và kết hợp dữ liệu. Cơ chế phục hồi và điều
khiển truy nhập đồng thời nếu áp dụng cho các thao tác OLAP sẽ gây nguy hiểm
cho những giao dịch đồng thời và do đó làm giảm thông lượng của hệ thống OLPT.
Cuối cùng việc tách rời kho dữ liệu và cơ sở dữ liệu tác nghiệp dựa trên sự khác
nhau về mục tiêu sử dụng dữ liệu, nội dung và cấu trúc của hai hệ thống. Hệ hỗ trợ
quyết định đòi hỏi dữ liệu mang tính lịch sử, trong khi cơ sở dữ liệu tác nghiệp
thông thường không duy trì dữ liệu này. Trong bối cảnh đó, dữ liệu trong cơ sở dữ
liệu tác nghiệp sẽ không đầy đủ cho quá trình ra quyết định. Hỗ trợ ra quyết định
yêu cầu dữ liệu phải được hợp nhất (tổng kết và kết hợp) từ nhiều nguồn dữ liệu

không thuần nhất, mang lại dữ liệu có chất lượng cao, được tính hợp và làm sạch.
Ngược lại cơ sở dữ liệu tác nghiệp chỉ lưu chữ dữ liệu dạng thô, và rất chi tiết, nên
cần thiết phải hợp nhất trước khi phân tích. Từ những lý do này chúng ta thấy hai hệ
thống có chức năng hoàn toàn khác nhau nên yêu cầu những loại dữ liệu khác nhau,
nó thể hiện việc cần thiết phải duy trì cơ sở dữ liệu riêng biệt. Tuy nhiên nhiều nhà
cung cấp các hệ quản trị cơ sở dữ liệu tác nghiệp bắt đầu tập trung vào việc tối ưu
hệ thống này cho các truy vấn OLAP, như Oracle là một ví dụ điển hình, chúng ta
sẽ nghiên cứu những đặc điểm của cơ sở dữ liệu này trong Chương 4.

1.2.3 Kiến trúc chung của kho dữ liệu
Trong phần này chúng ta sẽ thảo luận một vài vấn đề có tính khái quát xoay
quanh kiến trúc của một kho dữ liệu. Từ việc thiết kế, xây dựng và mô hình kiến
trúc của kho dữ liệu [4].


20
1.2.3.1 Các bước cho việc thiết kế và xây dựng kho dữ liệu
Để thiết kế một kho dữ liệu hiệu quả, chúng ta phải phân tích, hiểu những
nghiệp vụ cần thiết và xây dựng một cơ chế phân tích nghiệp vụ. Việc xây dựng
một hệ thống thông tin lớn và phức tạp có thể được xem như xây dựng một tòa nhà
lớn và phức tạp, trong đó chủ đầu tư, nhà thiết kế và nhà xây dựng đều có cái nhìn
khác nhau. Chính những điều này kết hợp lại tạo nên một cơ chế phức tạp để biểu
diễn cái nhìn từ dưới lên, từ trên xuống hay cái nhìn của nhà triển khai về một hệ
thống thông tin.
Có bốn cách nhìn cần phải xem xét khi thiết kế một kho dữ liệu [4], đó là:
 Cách nhìn từ trên xuống (top-down) cho phép lựa chọn những thông tin liên
quan cần thiết cho kho dữ liệu. Những thông tin này phù hợp với nhu cầu
công việc hiện tại và tương lai.
 Cách nhìn về nguồn dữ liệu cho thấy những thông tin thu được, lưu trữ và
quản lý bởi các hệ thống tác nghiệp. Những thông tin này có thể được cung

cấp ở mức độ chính xác và chi tiết khác nhau, từ những bảng dữ liệu riêng
biệt thành những bảng dữ liệu được tích hợp. Nguồn dữ liệu thường được mô
hình hóa bằng những kỹ thuật mô hình truyền thống, như mô hình quan hệ
thực thể hay công cụ CASE.
 Cách nhìn từ kho dữ liệu bao gồm các bảng sự thật và các bảng chiều. Chúng
biểu diễn những thông tin được lưu trữ trong kho dữ liệu, bao gồm các phép
tính và việc tính toán trước tổng số, như thông tin về nguồn, về ngày, về thời
gian gốc của dữ liệu được thêm vào để cung cấp ngữ cảnh lịch sử.
 Cuối cùng, cách nhìn về yêu cầu công việc là hình ảnh của dữ liệu trong kho
dữ liệu dưới cái nhìn của người dùng cuối.
Xây dựng và sử dụng kho dữ liệu là một công việc phức tạp bởi vì chúng đòi hỏi
phải có kỹ năng nghiêp vụ, kỹ năng công nghệ, kỹ năng quản lý chương trình. Về
kỹ năng nghiêp vụ, xây dựng một kho dữ liệu liên quan đến việc phải hiểu hệ thống
lưu trữ và quản lý dữ liệu như thế nào, làm thế nào để xây dựng một bộ chắt lọc
thông tin từ cơ sở dữ liệu tác nghiệp sang kho dữ liệu, và làm thế nào để có cơ chế


21
làm tươi giữ cho kho dữ liệu luôn được cập nhật với cơ sở dữ liệu tác nghiệp. Sử
dụng kho dữ liệu liên quan đến việc hiểu những thông tin có ý nghĩa bên trong nó,
cũng như hiểu và chuyển đổi những yêu cầu công việc thành những truy vấn mà có
thể thỏa mãn được bằng kho dữ liệu. Về mặt kỹ năng công nghệ, chúng bao gồm
khả năng để phát hiện ra những mẫu hay những khuynh hướng, để suy ra những
khuynh hướng dựa vào lịch sử và tìm kiếm những dị thường hay những thay đổi mô
hình. Cuối cùng, kỹ năng quản lý chương trình liên quan đến việc cần thiết phải đối
mặt với nhiều công nghệ, nhiều nhà cung cấp và những người sử dụng cuối để đưa
ra kết quả một cách đúng lúc và hiệu quả.
 Quá trình thiết kế kho dữ liệu
Một kho dữ liệu có thể được xây dựng theo cách tiếp cận từ trên xuống, từ dưới
lên và kết hợp cả hai cách này. Cách tiếp cận từ trên xuống bắt đầu với kế hoạch và

thiết kế tổng thể. Nó có ích trong trường chúng ta hợp thuần thục về mặt công nghệ
cũng như phải giải quyết một cách rõ ràng và có hiểu biết tốt về vấn đề nghiệp vụ.
Cách tiếp cận từ dưới lên bắt đầu với thử nghiệm và bản mẫu. Nó hữu ích trong giai
đoạn đầu của mô hình hóa nghiệp vụ và phát triển công nghệ. Nó cho phép một tổ
chức phát triển với chi phí thấp nhất và để đánh lợi ích mà công nghệ mang lại
trước khi đi đến những giao ước quan trọng. Cách tiếp cận mà kết hợp cả hai
phương pháp trên, một tổ chức có thể khai thác những kế hoạch và chiến lược theo
cách tiếp cận từ trên xuống trong khi vẫn duy trì việc triển khai nhanh chóng và cơ
hội ứng dụng theo cách tiếp cận từ dưới lên.
Xét từ khía cạnh của kỹ nghệ phần mềm, việc thiết kế và xây dựng một kho dữ
liệu có thể có nhiều bước như sau: Lập kế hoạch, nghiên cứu các yêu cầu, phân tích
vấn đề, thiết kế kho, kiểm thử và kết hợp dữ liệu, và cuối cùng là triển khai kho dữ
liệu.
1.2.3.2 Kiến trúc ba lớp của kho dữ liệu
Kho dữ liệu thường chấp nhận kiến trúc ba lớp, được trình bày ở hình 1.1[4]:
1. Lớp dưới là kho cơ sở dữ liệu phục vụ, thường là một hệ quản trị cơ sở dữ
liệu quan hệ. “Dữ liệu được chắt lọc như thế nào từ lớp này để tạo ra kho dữ
liệu?”. Dữ liệu từ cơ sở dữ liệu tác nghiệp và những nguồn khác được chắt


22
lọc bằng một giao diện ứng dụng được gọi là một cổng (gateway). Các cổng
này được hỗ trợ bởi hệ quản trị cơ sở dữ liệu ở bên dưới và cho phép chương
trình chạy trên máy khách sinh ra những câu lệnh SQL được thực hiện trên
một máy chủ, các cổng đó có thể bao gồm ODBC, OLE-DB, JDBC…
2. Lớp giữa là một máy phục vụ OLAP, khi triển khai thường sử dụng một
trong những loại sau: mô hình OLAP quan hệ hay còn gọi là ROLAP, nó là
phần mở rộng của hệ quản trị cơ sở dữ liệu quan hệ, dùng để ánh xạ những
thao tác trên dữ liệu nhiều chiều thành những thao tác theo chuẩn quan hệ;
Mô hình OLAP nhiều chiều, là một mô hình phục vụ với mục đích riêng biệt,

trực tiếp triển khai dữ liệu nhiều chiều và các thao tác trên những dữ liệu đó.
3. Lớp trên cùng là các máy khách, bao gồm các truy vấn, công cụ phân tích và
báo cáo, và/hoặc các công cụ khai phá dữ liệu.
Xét theo cấu trúc, kho dữ liệu được chia thành ba loại cơ bản như sau:
 Kho dữ liệu cấp xí nghiệp: Một kho dữ liệu loại này thu thập toàn bộ
thông tin về các lĩnh vực bao chùm lên toàn bộ tổ chức. Nó cung cấp dữ
liệu được tích hợp trong toàn tổ chức, thường từ một hay nhiều hệ thống
tác nghiệp hay các nguồn cung cấp thông tin mở rộng. Thông thường, nó
gồm nhiều loại dữ liệu chi tiết cũng như dữ liệu thu gọn, và có kích thước
trong khoảng từ vài đến hàng trăm gigabytes, terabytes hoặc hơn thế nữa.
Kiểu kho dữ liệu này hay được triển khai trên những máy tính lớn, các
siêu máy chủ UNIX hay trên các nền tảng có kiến trúc song song. Loại
kho dữ liệu này phù hợp với các tổ chức có mô hình nghiệp vụ rộng lớn
và nó mất đến vài năm để thiết kế và xây dựng.
 Data mart: Một data mart là một phần dữ liệu của một tổ chức, nó có giá
trị đối với một nhóm người sử dụng cụ thể. Phạm vi được hạn chế trong
một chủ đề đã được chọn. Lấy ví dụ, một data mart về thị trường được
giới hạn trong chủ đề của nó về khách hàng, về sản phẩm và bán hàng.
Dữ liệu trong data mart có xu hướng được thu gọn.


23
Truy vấn/báo cáo Phân tích Khai phá dữ liệu
Đầu ra
Lớp trên:
Công cụ tương tác với
người dùng cuối
OLAP Server
OLAP Server
Lớp giữa:

Phục vụ xử lý phân tích
trực tuyến (OLAP)
Lớp dưới:
Phục vụ kho dữ liệu
Giám sát
Quản trị
Kho dữ liệu
Data mart
Chắt lọc
Làm sạch
chuyển đổi
nạp
Làm tươi
Cơ sở dữ liệu tác nghiệp
Nguồn dữ liệu mở rộng
Dữ Liệu
Data mart thường được triển khai với chi phí thấp, máy chủ chạy trên nền
UNIX hoặc Windows. Đơn vị thời gian để triển khai data mart có thể tính
bằng tuần. Tuy nhiên, sau này rất khó khăn trong việc tích hợp nếu nó
không được hoạch định và thiết kế là một kho dữ liệu cấp xí nghiệp.
Tùy thuộc vào nguồn dữ liệu mà data mart được chia làm hai loại: Phụ
thuộc hay độc lập. Loại data mart độc lập bắt nguồn từ việc dữ liệu được
thu thập từ một hay nhiều hệ tác nghiệp hay các nguồn cung cấp thông tin
ở bên ngoài, hoặc từ dữ liệu được sản ra cục bộ bên trong một đơn vị hay
một vùng địa lý cụ thể. Loại data mart phụ thuộc bắt nguồn trực tiếp từ
kho dữ liệu cấp xí nghiệp.
 Kho dữ liệu ảo: Một kho dữ liệu ảo là một tập các view trên cơ sở dữ liệu
tác nghiệp. Để đạt hiệu quả khi xử lý truy vấn, chỉ một số các view thích
hợp mới được sử dụng, Kho dữ liệu ảo được xây dựng dễ dàng nhưng đòi
hỏi những máy chủ cơ sở dữ liệu tác nghiệp phải có khả năng vượt trội.


















Hình 1.1 Kiến trúc của một kho dữ liệu

Một kho dữ liệu cấp xí nghiệp được phát triển theo hướng từ trên xuống như
một giải pháp có tính hệ thống và giảm thiểu được vấn đề tích hợp. Tuy


24
nhiên, để phát triển phải trả chi phí cao, thời gian dài và thiếu sự mềm dẻo vì
khó khăn trong việc đạt được tính toàn vẹn và sự nhất trí cao cho một mô
hình dữ liệu chung của toàn bộ tổ chức. Sử dụng cách tiếp cận từ dưới lên để
thiết kế, xây dựng và triển khai một data mart độc lập sẽ có giá thành thấp,
nhanh thu hồi đầu tư. Tuy nhiên, sẽ phải đối mặt với vấn đề khi tích hợp các
data mart khác nhau thành một kho dữ liệu cấp xí nghiệp nhất quán.



25


Chương 2 Tiền xử lý dữ liệu, một công đoạn quan trọng
trong quá trình KDD
2.1 Giới thiệu
Trong thực tế, không phải lúc nào dữ liệu mà chúng ta muốn phân tích bằng
những kỹ thuật khai phá dữ liệu cũng được đáp ứng một cách đầy đủ. Dữ liệu không
đầy đủ, nhiễu và không nhất quán là những vấn đề thường thấy của cơ sở dữ liệu
lớn. Dữ liệu không đầy đủ xảy ra bởi một số lý do, thuộc tính mà ta quan tâm không
phải lúc nào cũng có sẵn, một số dữ liệu được coi là không quan trọng trong quá
trình thu nhận thông tin, những dữ liệu liên quan không được ghi nhận do hiểu sai
vấn đề, hay bởi vì thiết bị thu nhận dữ liệu gặp sự cố….Dữ liệu không nhất quán
xảy ra khi có một số dữ liệu khác bị xóa hay bị thay đổi. Chúng ta phải thực hiện
việc xử lý dữ liệu ra sao để có thể cải thiện chất lượng của dữ liệu, tăng tính, hiệu
quả cũng như sự dễ dàng trong quá trình khai phá. Đây là một công đoạn chiếm
phần lớn thời gian trong quá trình khai phá dữ liệu.
Hiện nay có một số kỹ thuật tiền xử lý dữ liệu cơ bản đó là [4]: Làm sạch dữ
liệu được dùng để loại bỏ dữ liệu nhiễu và hiệu chỉnh dữ liệu không nhất quán; Tích
hợp dữ liệu để trộn dữ liệu ở từ nhiều nguồn khác nhau thành một lưu trữ dữ liệu
thống nhất, như kho dữ liệu là một ví dụ; Biến đổi dữ liệu dùng để chuẩn hóa dữ
liệu. Lấy ví dụ, chuẩn hóa làm tăng độ chính xác và hiệu quả của thuật toán khai
phá; Thu gọn dữ liệu dùng để làm giảm kích thước dữ liệu bằng cách kết hợp, loại
trừ những đặc điểm dư thừa…Những kỹ thuật xử lý dữ liệu này được đem áp dụng
trước quá trình khai phá dữ liệu sẽ làm tăng chất lượng của các mẫu tìm thấy và làm
giảm thời gian đòi hỏi khi khai phá dữ liệu thực sự.
Dưới đây chúng ta sẽ lần lượt thảo luận kỹ hơn về những kỹ thuật này.



26
2.2 Làm sạch dữ liệu
Trong thực tế, dữ liệu trong các hệ thống thường có xu thế không đầy đủ, nhiễu,
không nhất quán. Bước xử lý làm sạch dữ liệu này nhằm để giải quyết những tồn tại
đó [4].
2.2.1 Giá trị bị mất
Tình huống trong dữ liệu có nhiều bản ghi bị mất thông tin ở một số các thuộc
tính là chuyện thường thấy, để đối phó với tình tình huống này thì có một số các
biện pháp cơ bản như sau:
1. Bỏ qua bản ghi: Việc này thường được thực hiện khi nhãn lớp bị mất (giả sử
nhiệm vụ khai phá dữ liệu là phân lớp). Phương pháp này không thực sự hiệu
quả trừ khi một bản ghi chỉ bị mất giá trị ở vài thuộc tính, và thực sự tồi khi tỷ lệ
giá trị bị mất trên một thuộc tính lớn.
2. Điền các giá trị bị mất bằng tay: Thông thường, cách này tốn rất nhiều thời gian
và có thể không khả thi đối với một tập dữ liệu lớn có nhiều giá trị bị mất.
3. Sử dụng một hằng số chung để điền vào giá trị bị mất: Thay thế toàn bộ giá trị bị
mất của thuộc tính bằng cùng một hằng số, ví dụ giống như là “Unknown” hay


”. Nếu giá trị bị mất được thay thế bằng “Unknown” thì chương trình khai
phá có thể sai lầm khi nghĩ rằng những từ đó hình thành nên một khái niệm đáng
quan tâm. Vì thế, mặc dù phương pháp này đơn giản nhưng nó không được
khuyên dùng
4. Sử dụng giá trị trung bình thuộc tính để điền vào những giá trị bị mất: Lấy ví dụ,
thu nhập trung bình của khách hàng là 2800 USD, lấy giá trị này thay thế cho
những giá trị bị mất của thuộc tính thu nhập.
5. Sử dụng giá trị trung bình thuộc tính của tất cả các mẫu nằm trong cùng một lớp
để điền vào giá trị bị mất
6. Sử dụng giá trị có khả năng nhất để điền vào giá trị bị mất: Cách này có thể

được dùng với phương pháp hồi quy, những công cụ dựa vào suy luận sử dụng
quy nạp cây quyết định Ví dụ, sử dụng những thuộc tính khác trong tập dữ

×