ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
ĐẠI HỌC CÔNG NGH THÔNG TIN
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SỸ
________________
KHAI PHÁ DỮ LIU VÀ KHO DỮ LIU
Đề tài:
XÂY DỰNG MÔ HÌNH KHAI PHÁ DỮ
LIU VÀ CÔNG CỤ BUSSINESS
INTELLIGENCE DEVELOPMENT
STUDIO
Giảng viên hướng dẫn : PGS.TS. ĐỖ PHÚC
Học viên thực hiện : Lê Thị Xuân Diệu
Mã số : CH1101076
TP. HCM, năm 2012
Khai phá dữ liệu và kho dữ liệu
LỜI MỞ ĐẦU
Thời đại công nghệ thông tin càng ngày càng phát triển, với lượng dữ liệu thông
tin cũng càng ngày càng một lớn dần, vấn đề đặt ra cho chúng ta là làm thế nào để lưu
trữ và tận dụng tốt những nguồn thông tin mà chúng ta đang có.
Với thực tế thì một minh chứng rõ ràng nhất cho chúng ta thấy là vấn đề kinh
doanh của các công ty kinh doanh và sản xuất các sản phẩm cho người sử dụng. Nếu
như không nắm bắt được thị trường, không khai thác được những tiềm năng khách
hàng, không biết nhu cầu khách hàng của chúng ta đang cần gì thì việc kinh doanh sẽ
không phát triển tốt hơn khi chúng ta nắm bắt được nhu cầu khách hàng và đáp ứng
được nhu cầu khách hàng, có kế hoạch tiếp thị tốt cho những khách hàng tiềm năng.
Trong bài tìm hiểu này với thời gian ngắn em xin trình bày vấn đề tìm hiểu của
mình về khai thác dữ liệu và công cụ khai phá dữ liệu rất có tiềm năng của Microsoft
tích hợp trong SQL server 2008R2 là BUSINESS INTELLIGENCE DEVELOPMENT
sở dữ liệu quan hệ và ngôn ngữ vấn đáp chuẩn (SQL) đã có vai trò hết sức quan
trọng trong việc tổ chức và khai thác các cơ sở dữ liệu đó. Cho đến nay, không một
tổ chức kinh tế nào là không sử dụng các hệ quản trị cơ sở dữ liệu và các hệ công
cụ báo cáo, ngôn ngữ hỏi đáp nhằm khai thác các cơ sở dữ liệu phục vụ cho hoạt
động tác nghiệp của mình
HV: Lê Thị Xuân Diệu CH1101076 Trang
Khai phá dữ liệu và kho dữ liệu
1.2. Bước phát triển mới của việc tổ chức và khai thác các CSDL
Cùng với việc tăng không ngừng khối lượng dữ liệu, các hệ thống thông tin
cũng được chuyên môn hóa, phân chia theo các lĩnh vực ứng dụng như sản xuất, tài
chính, buôn bán thị trường v.v. Như vậy, bên cạnh chức năng khai thác dữ liệu có tính
chất tác nghiệp, sự thành công trong kinh doanh không còn là năng suất của các hệ
thống thông tin nữa mà là tính linh hoạt và sẵn sàng đáp lại những yêu cầu trong thực
tế, CSDL cần đem lại những “tri thức” hơn là chính những dữ liệu đó. Các quyết định
cần phải có càng nhanh càng tốt và phải chính xác dựa trên những dữ liệu sẵn có trong
khi khối lượng dữ liệu cứ sau 20 tháng lại tăng gấp đôi làm ảnh hưởng đến thời gian ra
quyết định cũng như khả năng hiểu hết được nội dung dữ liệu. Lúc này các mô hình
CSDL truyền thống và ngôn ngữ SQL đã cho thấy không có khả năng thực hiện công
việc này. Để lấy được những thông tin có tính “tri thức” trong khối dữ liệu khổng lồ
này, người ta đã đi tìm những kỹ thuật có khả năng hợp nhất các dữ liệu từ các hệ
thống giao dịch khác nhau, chuyển đổi thành một tập hợp các cơ sở dữ liệu ổn định, có
chất lượng, chỉ được sử dụng riêng cho một vài mục đích nào đó. Các kỹ thuật đó
được gọi chung là kỹ thuật tạo kho dữ liệu (data warehousing) và môi trường các dữ
liệu có được gọi là các kho dữ liệu (data warehouse).
Kho dữ liệu là một môi trường có cấu trúc các hệ thống thông tin, cung cấp cho
người dùng các thông tin khó có thể truy nhập hoặc biểu diễn trong các CSDL tác
nghiệp truyền thống, nhằm mục đích hỗ trợ việc ra quyết định mang tính lịch sử hoặc
hiện tại. Theo W.H.Inmon, có thể định nghĩa kho dữ liệu như sau: “Một kho dữ liệu là
một tập hợp dữ liệu tích hợp hướng chủ đề có tính ổn định, thay đổi theo thời gian
- Chứa các bảng dữ liệu có kích thước lớn.
- Một câu hỏi thường trả về một tập kết quả liên quan đến toàn bộ bảng và
các liên kết nhiều bảng.
Cấu trúc kho dữ liệu được xây dựng dựa trên hệ quản trị CSDL quan hệ, có
chức năng giống như một kho lưu trữ thông tin trung tâm. Trong đó, dữ liệu tác nghiệp
và phần xử lý được tách riêng khỏi quá trình xử lý kho dữ liệu. Kho lưu trữ trung tâm
được bao quanh bởi các thành phần được thiết kế để làm cho kho dữ liệu có thể hoạt
động, quản lý và truy nhập được từ người dùng đầu cuối cũng như từ các nguồn dữ
liệu.
HV: Lê Thị Xuân Diệu CH1101076 Trang
Khai phá dữ liệu và kho dữ liệu
Như trên Hình 1.1 cho thấy, kho dữ liệu bao gồm 7 thành phần:
- Dữ liệu nguồn (là các ứng dụng tác nghiệp hoặc các kho dữ liệu tác
nghiệp) và các công cụ chiết xuất, làm sạch và chuyển đổi dữ liệu.
- Kho dữ liệu về dữ liệu (MetaData)
- Các kỹ thuật xây kho
- Kho dữ liệu thông minh hay dữ liệu theo chủ đề (Data marts): là nơi các
dữ liệu được khoanh vùng theo chủ đề đến một giới hạn nào đó và có thể
được thay đổi cho phù hợp với nhu cầu của từng bộ phận người dùng.
Với các kho dữ liệu này, cũng có thể xây dựng một kho dữ liệu theo cách
tiếp cận từng giai đoạn kế tiếp, nghĩa là với một tập hợp các kho dữ liệu
thông minh, ta tạo ra một kho dữ liệu; ngược lại, một kho dữ liệu có thể
được phân tích thành nhiều kho dữ liệu thông minh.
HV: Lê Thị Xuân Diệu CH1101076 Trang
Khai phá dữ liệu và kho dữ liệu
- Các công cụ vấn đáp (query), báo cáo (reporting), phân tích trực tiếp
(OLAP) và khai phá dữ liệu (data mining). Đây chính là các cách khai
thác kho dữ liệu để đem lại những “tri thức” hơn là đem lại chính những
rất khó có thể được sử dụng cho những mục đích như đưa ra các giả tuyết từ các thông
tin mà chương trình ứng dụng cung cấp (ví dụ như khó có thể đưa ra được giả thuyết
giải thích được hành vi của một nhóm khách hàng).
Trước đây, kỹ thuật học máy thường được sử dụng để tìm ra những giả thuyết
từ các thông tin dữ liệu thu thập được. Tuy nhiên, thực nghiệm cho thấy chúng thể
hiện khả năng rất kém khi áp dụng với các tập dữ liệu lớn trong kho dữ liệu này.
Phương pháp thống kê tuy ra đời đã lâu nhưng không có gì cải tiến để phù hợp với sự
phát triển của dữ liệu. Đây chính là lý do tại sao một khối lượng lớn dữ liệu vẫn chưa
được khai thác và thậm chí được lưu trữ chủ yếu trong các kho dữ liệu không trực
tuyến (off-line). Điều này tạo nên một lỗ hổng lớn trong việc hỗ trợ phân tích và tìm
hiểu dữ liệu, tạo ra khoảng cách giữa việc tạo ra dữ liệu và việc khai thác các dữ liệu
đó.Trong khi đó, càng ngày người ta càng nhận thấy rằng, nếu được phân tích thông
minh thì dữ liệu sẽ là một nguồn tài nguyên quý giá trong cạnh tranh trên thương
trường.
Giới tin học đã đáp ứng lại những thách thức trong thực tiễn cũng như trong
nghiên cứu khoa học bằng cách đã đưa ra một phương pháp mới đáp ứng cả nhu cầu
trong khoa học cũng như trong hoạt động thực tiễn. Đó chính là công nghệ Khai phá
dữ liệu (data mining). Đây chính là ứng dụng thứ ba của kho dữ liệu.
2. Khai phá dữ liệu là gì?
2.1. Khái niệm
Khai phá dữ liệu là một khái niệm ra đời vào những năn cuối của thập kỷ 80. Nó
bao hàm một loạt các kỹ thuật nhằm phát hiện ra các thông tin có giá trị tiềm ẩn
trong các tập dữ liệu lớn (các kho dữ liệu). Về bản chất, khai phá dữ liệu liên quan
HV: Lê Thị Xuân Diệu CH1101076 Trang
Khai phá dữ liệu và kho dữ liệu
đến việc phân tích các dữ liệu và sử dụng các kỹ thuật để tìm ra các mẫu hình có
tính chính quy (regularities) trong tập dữ liệu.
Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệm Phát hiện tri
thức trong cơ sở dữ liệu (Kownledge Discovery in Database – KDD) để chỉ toàn
Tiến trình khai thác cụm dựa trên mức độ tương tự giữa các đối tượng. Các đối tượng
được gom cụm sao cho mức độ tương tự giữa các đối tượng trong cùng một cụm sao
cho mức độ tương tự giữa các đối tượng nằm trong các cụm khác nhau là cực tiểu. Các
cụm được đặc trưng bằng các tính chất chung của tất cả các đối tượng trong cụm. Do
vậy, khảo sát các cụm sẽ giúp khái quát, tổng kết nhanh chóng nội dung của khối dữ
liệu lớn.
HV: Lê Thị Xuân Diệu CH1101076 Trang 10
Khai phá dữ liệu và kho dữ liệu
Phần I. PHÂN LỚP DỮ LIU
Phân lớp dữ liệu (data classification) là xếp đối tượng dữ liệu vào một trong các
lớp đã được xác định trước. Phân lớp dữ liệu gồm hai bước là xây dựng mô
hình và vận hành mô hính
1. Phân lớp quy nạp trên cây quyết định
Cây quyết định gồm các nút trong biểu diễn giá trị thuộc tính, các nhánh biểu
diễn đầu ra của kiểm tra, nút lá biểu diễn nhãn lóp. Cây quyết định được tạo
theo hai giai đoạn là tạo cây và tỉa nhánh.
Trong giai đoạn tạo cây, lúc bắt đầu tất cả các mẫu học đều nằm ở nút gốc, sau
đó các mẫu học được phân chia một cách đệ quy dựa trên thuộc tính được chọn.
Bước tỉa nhánh nhằm tìm và xóa những nhánh có phần tử không thể xếp vào
lớp nào cả.
Bước vận hành nhằm kiểm tra những giá trị thuộc tính của mẫu đối với các giá
trị trên nhánh của cây quyết định.
Thuật toán tạo cây quyết định bao gồm các bước sau:
Bước 1: Cây được xây dựng đệ quy từ trên xuống và theo cách chia để
trị
Bước 2: Ban đầu tất cả mẫu học đều nằm ở gốc
Bước 3: Thuộc tính được phân loại (nếu là giá trị liên tục được rời rạc
hóa)
,…,x
k
> thuộc về lớp C
Ví dụ
P(class=N | outlook=sunny,windy=true,…)
Ý tưởng: gán cho mẫu X nhãn phân lớp là C sao cho P(C|X) là lớn nhất
Tính xác suất a-posteriori
Định lý Bayes:
P(C|X) = P(X|C)·P(C) / P(X)
P(X) là hằng số cho tất cả các lớp
P(C) = tần số liên quan của các mẫu thuộc lớp C
C sao cho P(C|X) lớn nhất = C sao cho P(X|C)·P(C) lớn nhất
Vấn đề: tính P(X|C) là không khả thi!
Phân lớp Naïve Bayesian
Thừa nhận Naïve: sự độc lập thuộc tính
P(x
1
,…,x
k
|C) = P(x
1
|C)·…·P(x
k
|C)
Nếu thuộc tính thứ i là rời rạc: P(x
i
|C) được ước lượng bởi tần số liên quan của
các mẫu có giá trị x
i
cho thuộc tính thứ i trong lớp C
Phân loại đất theo công năng hoặc thực tế sử dụng để có chính sách quy hoạch
phù hợp;
HV: Lê Thị Xuân Diệu CH1101076 Trang 16
Khai phá dữ liệu và kho dữ liệu
Phân loại nhà theo vị trí, giá trị
Phân loại khách hàng để có chính sách bảo hiểm hợp lý;
Phân loại bệnh nhân;
Một phương pháp gom cụm tốt nếu đạt các tính chất sau:
• Có độ tương tự cao trong cùng cụm
• Có độ tương tự thấp giữa các cụm
• Có khả năng phát hiện các mẫu ẩn
• Có khả năng làm việc hiệu quả với lượng dữ liệu lớn;
• Có khả năng làm việc với nhiều loại dữ liệu khác nhau;
• Có khả năng khám phá ra các cụm có phân bố theo dạng khác nhau;
• Yêu cầu tối thiểu tri thức lĩnh vực nhằm xác định các tham biến nhập
• Có khả năng làm việc với nhiễu và mẫu cá biệt;
• Không bị ảnh hưởng bởi thứ tự nhập của dữ liệu;
• Làm việc tốt trên CSDL có số chiều cao;
• Chấp nhận các ràng buộc do người dùng chỉ định;
• Có thể hiểu và sử dụng được kết quả gom cụm
HV: Lê Thị Xuân Diệu CH1101076 Trang 17
Khai phá dữ liệu và kho dữ liệu
HV: Lê Thị Xuân Diệu CH1101076 Trang 18
Khai phá dữ liệu và kho dữ liệu
Phần III. GIỚI THIU CÔNG CỤ XÂY DỰNG MÔ HÌNH KHAI
PHÁ DỮ LIU BUSINESS INTELLIGENCE
khi có nhu cầu hoặc muốn thử nghiệm chúng ta có thể cài đặt thêm vào.
3. Mục đích của việc xây dựng các mô hình khai phá dữ liệu:
Để phân loại khách hàng và tìm ra các khách hàng tiềm năng cũng như có thể
dự đoán khách hàng nào có thể mua sản phẩm cùa công ty Adventure Works giúp bộ
phận Marketing xây dựng chiến lược quảng cáo, tiếp thị nhằm mở rộng thị trường tìm
kiếm khách hàng, mở rộng kinh doanh.
4. Mô tả từng bước quá trình xây dựng mô hình khai phá dữ liệu với BIDS
4. 1. Khởi động SQL Server Business Intelligence Development Studio
(BIDS) tạo một project mới loại Analys Services Project mới có tên “
SQL2008_BIDS”
HV: Lê Thị Xuân Diệu CH1101076 Trang 20
Khai phá dữ liệu và kho dữ liệu
4. 2. Tạo một Data Source kết nối đến cơ sở dữ liệu AdventureWorksDW
HV: Lê Thị Xuân Diệu CH1101076 Trang 21
Khai phá dữ liệu và kho dữ liệu
4. 3. Tạo một Data Source View (Trong Data Source view chọn dữ liệu lấy
từ View có tên “vTargetMail”)
HV: Lê Thị Xuân Diệu CH1101076 Trang 22
Khai phá dữ liệu và kho dữ liệu
HV: Lê Thị Xuân Diệu CH1101076 Trang 23
Khai phá dữ liệu và kho dữ liệu
4. 4. Tạo một Mining Model Structure
Trong cửa sổ Solution Explorer, kích phải chuột chọn Mining Structures
chọn New Mining Structure. Bấm Next và chọn From existing relational
database or data warehouse và bấm Next và chọn Microsoft Decision Tree