ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN
-----------------------------
TRỊNH VĂN HÀ
LỰA CHỌN THUỘC TÍNH TRONG
KHAI PHÁ DỮ LIỆU
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
THÁI NGUYÊN 2008
ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN
-----------------------------
TRỊNH VĂN HÀ
LỰA CHỌN THUỘC TÍNH TRONG
KHAI PHÁ DỮ LIỆU
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số : 60.48.01
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hướng dẫn khoa học: TS NGUYỄN THANH TÙNG
THÁI NGUYÊN 2008
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
2
MỤC LỤC
Trang phụ bìa ......................................................................................................1
Mục lục ...............................................................................................................2
Lời mở đầu .........................................................................................................4
Chương 1. KHÁI QUÁT VỀ KHAI PHÁ DỮ LIỆU ......................................6
1.1.Tại sao phải khai phá dữ liệu ....................................................................6
1.2. Quá trình khai phá dữ liệu .......................................................................7
1.3. Các phương pháp khai phá dữ liệu ..........................................................9
1.4. Các loại dữ liệu có thể khai phá ...........................................................10
1.5. Các ứng dụng của khai phá dữ liệu........................................................10
1.6. Một số thách thức đặt ra cho việc khai phá dữ liệu ................................14
1.7. Tổng kết chương 1 ................................................................................15
Chương 2. KHÁI QUÁT VỀ LỰA CHỌN THUỘC TÍNH TRONG KHAI
PHÁ DỮ LIỆU ................................................................................................16
2.1. Rút gọn thuộc tính .................................................................................16
2.2. Khái quát về lựa chọn thuộc tính ...........................................................18
2.2.1. Bài toán lựa chọ thuộc tính .........................................................18
2.2.2. Đặc điểm chung của các thuật toán lựa chọn thuộc tính ..............20
2.2.3. Ứng dụng của các kỹ thuật lựa chọn thuộc tính ..........................23
2.3. Kết luận chương 2 .................................................................................26
Chương 3. MỘT SỐ THUẬT TOÁN LỰA CHỌN THUỘC TÍNH ĐIỂN
HÌNH ...............................................................................................................28
3.1. Các thuật toán theo cách tiếp cận filter ..................................................28
3.1.1 Thuật toán RELIEF .....................................................................28
3.1.2. Thuật toán FOCUS .....................................................................31
3.1.3. Thuật toán LVF ..........................................................................33
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
3
3.1.4. Thuật toán EBR ..........................................................................35
3.1.5. Thuật toán SCRAP .....................................................................38
3.1.6. Lựa chọn nhóm ...........................................................................40
3.2. Các thuật toán theo cách tiếp cận wrapper .............................................42
3.3.1 Thuật toán LVW ..........................................................................42
3.3.2 Thuật toán NEURALNET ..........................................................43
3.3. Một số thuật toán khác ..........................................................................44
3.3.1. Thuật toán Genetic .....................................................................44
3.3.2. Lựa chọn thuộc tính thông qua rời rạc hóa dữ liệu ......................46
3.4. Kết luận chương 3 .................................................................................53
KẾT LUẬN .....................................................................................................54
Tài liệu tham khảo ..........................................................................................56
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
4
LỜI MỞ ĐẦU
Như đã biết, trong những năm gần đây công nghệ thông tin phát triển vô
cùng nhanh chóng và được ứng dụng rộng rãi trong mọi lĩnh vực đời sống xã
hội, nhất là trong quản lý, một lĩnh vực mà yếu tố khoa học công nghệ có tính
quyết định. Sự việc đó dẫn đến sự bùng nổ thông tin, làm cho những nhà quản lý
rơi vào tình trạng “ngập lụt thông tin". Chính vì vậy, các chuyên gia cho rằng,
hiện nay chúng ta đang sống trong một xã hội “rất giàu về thông tin nhưng
nghèo về tri thức”. Tình hình đó đòi hỏi phải phát triển các phương pháp khai
phá, phát hiện ra những thông tin, tri thức có ích bị che giấu trong các “núi” dữ
liệu phục vụ cho công việc của các nhà quản lý, các chuyên gia, từ đó thúc đẩy
khả năng sản xuất, kinh doanh, cạnh tranh của các tổ chức, doanh nghiệp.
Khai phá dữ liệu (Data Mining) là một lĩnh vực khoa học liên ngành mới
xuất hiện gần đây nhằm đáp ứng nhu cầu này. Các kết quả nghiên cứu cùng với
những ứng dụng thành công trong khai phá dữ liệu, khám phá tri thức cho thấy
khai phá dữ liệu là một lĩnh vực khoa học tiềm năng, mang lại nhiều lợi ích,
đồng thời có ưu thế hơn hẳn so với các công cụ phân tích dữ liệu truyền thống.
Hiện nay, các CSDL cần khai phá thường có kích thước rất lớn, chẳng hạn
các CSDL tin-sinh-học (Bioinformatics), CSDL đa phương tiện, CSDL giao tác,
… . Các CSDL này thường chứa tới hàng ngàn thuộc tính, gây rất nhiều khó
khăn cho việc khai phá, thậm chí còn làm cho nhiệm vụ khai phá trở nên bất khả
thi. Vấn đề đặt ra là phải tìm cách rút gọn số thuộc tính mà không làm những
thông tin cần thiết phục vụ nhiệm vụ khai phá.
Mục đích của rút gọn thuộc tính là làm giảm số chiều của không gian thuộc
tính, loại bỏ dữ liệu dư thừa, không liên quan. Rút gọn thuộc tính đóng vai trò
quan trọng trong bước tiền xử lý dữ liệu cũng như trong quá trình khai phá. Kết
quả rút gọn thuộc tính ảnh hưởng trực tiếp đến hiệu quả thực hiện các nhiệm vụ
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
5
khai phá: Gia tăng tốc độ, cải thiện chất lượng, tính dễ hiểu của các kết quả thu
được.
Từ năm 1970 đến nay, rút gọn thuộc tính (hay còn gọi là rút gọn số chiều –
Dimension reduction) đã trở thành đề tài được quan tâm bởi nhiều nhà nghiên
cứu thuộc các lĩnh vực nhận dạng thống kê, học máy, khai phá dữ liệu.
Chính những lý do trên, chúng tôi chọn đề tài “Lựa chọn thuộc tính trong
khai phá dữ liệu” làm đề tài nghiên cứu của mình.
Nội dung của luận văn được trình bày trong 3 chương và phần kết luận.
Chương 1: Trình bày khái quát về Khai phá dữ liệu, bao gồm: Khai phá dữ
liệu là gì, quy trình khai phá, các kỹ thuật và một số ứng dụng quan trọng của
khai phá dữ liệu.
Chương 2: Trình bày khái quát về nội dung, các cách tiếp cận, quy trình
giải quyết vấn đề lựa chọn thuộc tính và một số ứng dụng quan trọng của lựa
chọn thuộc tính.
Chương 3: Trình bày kết quả nghiên cứu một số thuật toán lựa chọn thuộc
tính điển hình.
Thái nguyên, tháng 11 năm 2008.
Học viên
Trịnh Văn Hà
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
6
CHƢƠNG 1
KHÁI QUÁT VỀ KHAI PHÁ DỮ LIỆU
1.1. Tại sao phải khai phá dữ liệu.
Ước tính cứ khoảng 20 tháng lượng thông tin trên thế giới lại tăng gấp đôi.
Chính vì vậy, hiện nay lượng dữ liệu mà con người thu thập và lưu trữ được
trong các kho dữ liệu là rất lớn, nhiều khi vượt quá khả năng quản lý. Thời gian
này, người ta bắt đầu đề cập đến khái niệm khủng hoảng phân tích dữ liệu tác
nghiệp để cung cấp thông tin với yêu cầu chất lượng ngày càng cao cho những
người ra quyết định trong các tổ chức tài chính, thương mại, khoa học, ... . Đúng
như John Naisbett đã cảnh báo “Chúng ta đang chìm ngập trong dữ liệu mà vẫn
đói tri thức”.
Với một khối lượng dữ liệu tăng nhanh và khổng lồ như vậy, rõ ràng các
phương pháp thủ công truyền thống áp dụng để phân tích dữ liệu sẽ không hiệu
quả, tốn kém và dễ dẫn đến những sai lệch. Do đó để có thể khai phá hiệu quả
các cơ sở dữ liệu lớn cần phải có những kỹ thuật mới, các kỹ thuật khai phá dữ
liệu (Data Mining).
Khai phá dữ liệu là một lĩnh vực khoa học mới xuất hiện, nhằm tự động
hóa khai thác những thông tin, tri thức hữu ích, tiềm ẩn trong các CSDL cho các
tổ chức, doanh nghiệp, ... từ đó thúc đẩy khả năng sản xuất, kinh doanh, cạnh
tranh của tổ chức, doanh nghiệp này. Các kết quả nghiên cứu cùng với những
ứng dụng thành công trong khai phá dữ liệu, khám phá tri thức cho thấy khai
phá dữ liệu là một lĩnh vực khoa học tiềm năng, mang lại nhiều lợi ích, đồng
thời có ưu thế hơn hẳn so với các công cụ phân tích dữ liệu truyền thống. Hiện
nay, khai phá dữ liệu được ứng dụng rộng rãi trong các lĩnh vực như: Phân tích
dữ liệu hỗ trợ ra quyết định, điều trị y học, tin-sinh học, thương mại, tài chính,
bảo hiểm, text mining, web mining ... .
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
7
Do sự phát triển nhanh chóng về phạm vi áp dụng và các phương pháp tìm
kiếm tri thức, nên đã có nhiều quan điểm khác nhau về khai phá dữ liệu. Tuy
nhiên, ở một mức độ trừu tượng nhất định, chúng ta định nghĩa khai phá dữ liệu
như sau :
Khai phá dữ liệu là quá trình tìm kiếm, phát hiện các tri thức mới, hữu ích
tiềm ẩn trong cơ sở dữ liệu lớn.
Khám phá tri thức trong CSDL (Knowledge Discovery in Databaes – KDD)
là mục tiêu chính của khai phá dữ liệu, do vậy hai khái niệm khai phá dữ liệu và
KDD được các nhà khoa học xem là tương đương nhau. Thế nhưng, nếu phân
chia một cách chi tiết thì khai phá dữ liệu là một bước chính trong quá trình
KDD.
Khám phá tri thức trong CSDL là lĩnh vực liên quan đến nhiều ngành như:
Tổ chức dữ liệu, xác suất, thống kê, lý thuyết thông tin, học máy, CSDL, thuật
toán, trí tuệ nhân tạo, tính toán song song và hiệu năng cao, ... . Các kỹ thuật
chính áp dụng trong khám phá tri thức phần lớn được thừa kế từ các ngành này.
1.2. Quá trình khai phá dữ liệu
Quá trình khám phá tri thức có thể phân thành các công đoạn sau :
Trích lọc dữ liệu: Là bước tuyển chọn những tập dữ liệu cần được khai
phá từ các tập dữ liệu lớn ( databases, data warehouses, data
repositories) ban đầu theo một số tiêu chí nhất định.
Tiền xử lý dữ liệu: Là bước làm sạch dữ liệu (xử lý dữ liệu không đầy
đủ, dữ liệu nhiễu, dữ liệu không nhất quán, ... ), tổng hợp dữ liệu (nén,
nhóm dữ liệu, tính tổng, xây dựng các histograms, lấy mẫu, ...), rời rạc
hóa dữ liệu (rời rạc hóa dựa vào histograms, entropy, phân khoảng, ...).
Sau bước tiền sử lý này, dữ liệu sẽ nhất quán, đầy đủ, được rút gọn và
rời rạc hóa.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
8
Biến đổi dữ liệu: Là bước chuẩn hóa và làm mịn dữ liệu để đưa dữ liệu
về dạng thuận lợi nhất nhằm phục vụ việc áp dụng các kỹ thuật khai
phá ở bước sau.
Khai phá dữ liệu: Là bước áp dụng những kỹ thuật phân tích (phần
nhiều là các kỹ thuật học máy) nhằm khai thác dữ liệu, trích lọc những
mẫu tin (information patterns), những mối quan hệ đặc biệt trong dữ
liệu. Đây được xem là bước quan trọng và tiêu tốn thời gian nhất của
toàn bộ quá trình KDD.
Đánh giá và biểu diễn tri thức: Những mẫu thông tin và mối quan hệ
trong dữ liệu đã được phát hiện ở bước khai phá dữ liệu được chuyển
sang và biểu diễn ở dạng gần gũi với người sử dụng như đồ thị, cây,
bảng biểu, luật, ... . Đồng thời bước này cũng đánh giá những tri thức
khai phá được theo những tiêu chí nhất định.
Hình 1.1 dưới đây mô tả các công đoạn của khai phá dữ liệu:
Hình 1.1. Các bƣớc thực hiện quá trình khai phá dữ liệu
Nếu theo quan điểm của học máy (Machine Learning), thì các kỹ thuật khai
phá dữ liệu bao gồm:
Học có giám sát (Supervised Learning) : Là quá trình phân lớp các
đối tượng trong cơ sở dữ liệu dựa trên một tập các ví dụ huấn luyện
về các thông tin về nhãn lớp đã biết.
Dữ liệu
Dữ liệu đích
Xử lý dữ liệu
đích
Thu nhỏ dữ
liệu
Mẫu
Tri thức
Chọn lọc
Làm sạch
Thu nhỏ
Khai phá
Biểu diễn
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
9
Học không có giám sát (Unsupervised Learning) : Là quá trình phân
chia một tập các đối tượng thành các lớp hay cụm (clusters) tương tự
nhau mà không biết trước các thông tin về lớp và không có các ví dụ
huấn luyện.
Học nửa giám sát (Semi-Supervised Learning) : Là quá trình phân
chia một tập các đối tượng thành các lớp dựa trên một tập nhỏ các ví
dụ huấn luyện và một số thông tin về một số nhãn lớp đã biết.
1.3. Các phƣơng pháp khai phá dữ liệu
Kỹ thuật khai phá dữ liệu thường được chia làm 2 nhóm chính:
Kỹ thuật mô tả: Các nhiệm vụ mô tả về ccác tính chất hoặc các đặc tính
chung của dữ liệu trong CSDL hiện có. Các kỹ thuật này gồm có: phân cụm
(clustering), tóm tắt (summerization), trực quan hóa (visualiztion), phân tích sự
phát triển và độ lệch (Evolution and deviation analysis), phân tích luật kết hợp
(association rules analysis)… .
Kỹ thuật dự đoán: Có nhiệm vụ đưa ra các dự đoán dựa vào các suy diễn
trên dữ liệu hiện thời. Các kỹ thuật này gồm: Phân lớp (classification), hồi quy
(regression), … .
Với hai đích chính của khai phá dữ liệu là Dự đoán (Prediction) và Mô tả
(Description), người ta thường sử dụng các kỹ thuật sau cho khai phá dữ liệu:
Phân lớp và dự đoán (classification and prediction) : Là việc xếp các
đối tượng vào những lớp đã biết trước. Ví dụ, phân lớp các bệnh
nhân, phân lớp các loài thực vật, ... . Hướng tiếp cận này thường sử
dụng một số kỹ thuật của học máy như cây quyết định (decision tree),
mạng nơ-ron nhân tạo (neural network), ... . Phân lớp và dự đoán còn
được gọi là học có giám sát.
Phân cụm (clustering/segmentation) : Là việc xếp các đối tượng theo
từng cụm tự nhiên.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
10
Luật kết hợp (association rules) : Là việc phát hiện các luật biểu diễn
tri thức dưới dạng khá đơn giản. Ví dụ: “70% nữ giới vào siêu thị
mua phấn thì có tới 80% trong số họ cũng mua thêm son”.
Phân tích hồi quy (regression analysis) : Là việc học một hàm ánh xạ
từ một tập dữ liệu thành một biến dự đoán có giá trị thực. Nhiệm vụ
của phân tích hồi quy tương tự như của phân lớp, điểm khác nhau là ở
chỗ thuộc tính dự báo là liên tục chứ không phải rời rạc.
Phân tích các mẫu theo thời gian (sequential/temporal patterns) :
Tương tự như khai phá luật kết hợp nhưng có quan tâm đến tính thứ
tự theo thời gian.
Mô tả khái niệm (concept description and summarization) : Thiên về
mô tả, tổng hợp và tóm tắt các khái niệm. Ví dụ tóm tắt văn bản.
Hiện nay, các kỹ thuật khai phá dữ liệu có thể làm việc với rất nhiều kiểu
dữ liệu khác nhau. Một số dạng dữ liệu điển hình là: CSDL quan hệ, CSDL đa
chiều (Multidimensional Data Structures), CSDL giao tác, CSDL quan hệ
hướng đối tượng, dữ liệu không gian và thời gian, CSDL đa phương tiện, dữ
liệu văn bản và web, ... .
1.4. Các loại dữ liệu có thể khai phá
Về cơ bản, khai phá dữ liệu có thể ứng dụng cho bất kỳ kho thông tin nào bao
gồm:
+ Các cơ sở dữ liệu quan hệ.
+ Kho dữ liệu.
+ Cácc cơ sở dữ liệu giao tác
+ Các hệ thống cơ sở dữ liệu tiên tiến
+ Các tệp
+ ……
1.5. Các ứng dụng của khai phá dữ liệu
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
11
Khai phá dữ liệu là một lĩnh vực liên quan tới nhiều ngành học khác như:
hệ CSDL, thống kê, trực quan hoá… hơn nưa, tuỳ vào cách tiếp cận được sử
dụng, khai phá dữ liệu còn có thể áp dụng một số kỹ thuật như mạng nơron, lý
thuyết tập thô, tập mờ, biểu diễn tri thức… So với các phương pháp này, khai
phá dữ liệu có một số ưu thế rõ rệt.
So với phương pháp học máy, khai phá dữ liệu có lợi thế hơn ở chỗ, khai
phá dữ liệu có thể sử dụng với các CSDL chứa nhiều nhiễu, dữ liệu không
đầy đủ hoặc biến đổi liên tục. Trong khi đó phương pháp học máy chủ yếu
được áp dụng trong các CSDL đầy đủ, ít biến động và tập dữ liệu không
qua lớn
Phương pháp hệ chuyên gia: phương pháp này khác với khai phá dữ liệu ở
chỗ các ví dụ của chuyên gia thường ở mức cao hơn nhiều so với các dữ
liệu trong CSDL, và chúng thường chỉ bao hàm được các trường hợp quan
trọng. Hơn nữa các chuyên gia sẽ xác nhận giá trị và tính hữu ích của các
mẫu phát hiện được.
Phương pháp thống kê là một trong những nền tảng lý thuyết của khai phá
dữ liệu, nhưng khi so sánh hai phương pháp với nhau ta có thể thấy các
phương pháp thống kê cũng tồn tại một số điểm yếu mà khai phá dữ liệu
khắc phục được:
Với nhưng ưu điểm đó, khai phá dữ liệu hiện đang được áp dụng một
cách rộng rãi trong nhiều lĩnh vực kinh doanh và đời sống khác nhau như:
marketing, tài chính, ngân hàng và bảo hiểm, khoa học, y tế, an ninh, internet…
rất nhiều tổ chức và công ty lớn trên thế giới đã áp dụng kỹ thuật khai phá dữ
liệu vào các hoạt động sản xuất kinh doanh của mình và thu được những lợi ích
to lớn. Các công ty phần mềm lớn trên thế giới cũng rất quan tâm và chú trọng
tới việc nghiên cứu và phát triển kỹ thuật khai phá dữ liệu: Oracle tích hợp các
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
12
công cụ khai phá dữ liệu vào bộ Oracle9i, IBM đã đi tiên phong trong việc phát
triển các ứng dụng khai phá dữ liệu với các ứng dụng như Intelligence Miner…
Các ứng dụng này được chia thành 3 nhóm ứng dụng khác nhau : Phát hiện
gian lận (fraud detection), các ứng dụng hỗ trợ tiếp thị và quản lý khách hàng,
cuối cùng là các ứng dụng về phát hiện và xử lý lỗi hệ thống mạng.
Phát hiện gian lận ( fraud detection ):
Gian lận là một trong những vấn đề nghiêm trọng của các công ty viễn
thông, nó có thể làm thất thoát hàng tỷ đồng mỗi năm. Có thể chia ra làm 2 hình
thức gian lận khác nhau thường xảy ra đối với các công ty viễn thông : Trường
hợp thứ nhất xảy ra khi một khách hàng đăng ký thuê bao với ý định không bao
giờ thanh toán khoản chi phí sử dụng dịch vụ. Trường hợp thứ hai liên quan đến
một thuê bao hợp lệ nhưng lại có một số hoạt động bất hợp pháp gây ra bởi một
người khác. Những ứng dụng này sẽ thực hiện theo thời gian thực bằng cách sử
dụng dữ liệu chi tiết cuộc gọi, một khi xuất hiện một cuộc gọi nghi ngờ gian
lận, lập tức hệ thống sẽ có hành động ứng xử phù hợp, ví dụ như một cảnh báo
xuất hiện hoặc từ chối cuộc gọi nếu biết đó là cuộc gọi gian lận.
Hầu hết các phương thức nhận diện gian lận đều dựa trên hành vi sử dụng
điện thoại khách hàng trước kia so sánh với hành vi hiện tại để xác định xem đó
là cuộc gọi hợp lệ không.
Các ứng dụng quản lý và chăm sóc khách hàng
Các công ty viễn thông quản lý một khối lượng lớn dữ liệu về thông tin
khách hàng và dữ liệu về chi tiết cuộc gọi (call detail records). Những thông tin
này có thể cho ta nhận diện được những đặc tính của khách hàng và thông qua
đó có thể đưa ra các chính sách chăm sóc khách hàng thích hợp dựa trên dự
đoán hoặc có một chiến lược tiếp thị hiệu quả.
Một trong các ứng dụng data mining phổ biến dựa trên việc xem xét luật kết
hợp giữa các dịch vụ viễn thông khách hàng sử dụng. Hiện nay trên một đường
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
13
điện thoại khách hàng sử dụng rất nhiều dịch vụ khác nhau, ví dụ như : gọi điện
thoại, truy cập internet, tra cứu thông tin từ hộp thư tự động, nhắn tin, gọi 108,
.v.v. Dựa trên cơ sở dữ liệu khách hàng chúng ta có thể khám phá mối liên kết
trong việc sử dụng các dịch vụ, có thể đưa ra các luật như (khách hàng gọi điện
thoai quốc tế) => (truy cập internet), v.v... Trên cơ sở phân tích được các luật
như vậy các công ty viễn thông có thể điều chỉnh việc bố trí nơi đăng ký các
dịch vụ phù hợp, ví dụ điểm đăng ký điện thoại quốc tế nên bố trí gần với điểm
đăng ký Internet chẳng hạn.
Một ứng dụng phục vụ chiến lược marketing khác đó là dựa trên kỹ thuật
luật kết hợp của data mining để tìm ra tập các thành phố, tỉnh nào trong nước
thường gọi điện thoại với nhau. Ví dụ ta có thể tìm ra tập phổ biến ( Cần Thơ,
HCM, Hà Nội ) chẳng hạn. Điều này thật sự hữu dụng trong việc hoạch định
chiến lược tiếp thị hoặc xây dựng các vùng cước phù hợp.
Một vấn đề khá phổ biến ở các công ty viễn thông hiện là sự thay đổi nhà
cung cấp dịch vụ (customer churn) đặc biệt với các công ty điện thoại di động.
Đây là vấn đề khá nghiêm trọng ảnh hưởng đến tốc độ phát triển thuê bao, cũng
như doanh thu của các nhà cung cấp dịch vụ. Thời gian gần đây các nhà cung
cấp dịch vụ di động luôn có chính sách khuyến mãi lớn để lôi kéo khách hàng.
Điều đó dẫn đến một lượng không nhỏ khách hàng thường xuyên thay đổi nhà
cung cấp để hưởng những chính sách khuyến mãi đó. Kỹ thuật data mining hiện
nay có thể dựa trên dữ liệu tiền sử để tìm ra các quy luật, từ đó có thể tiên đoán
trước được khách hàng nào có ý định rời khỏi mạng trước khi họ thực hiện. Dựa
trên các kỹ thuật data mining như cây quyết định (decision tree), mạng nơ ron
nhân tạo (neural nerwork) trên dữ liệu cước (billing data), dữ liệu chi tiết cuộc
gọi (call detail data), dữ liệu khách hàng (customer data) tìm ra các quy luật mà
dựa trên đó ta có thể tiên đoán trước ý định rời khỏi mạng của khách hàng, từ đó
công ty viễn thông sẽ có các ứng xử phù hợp nhằm lôi kéo khách hàng.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
14
Cuối cùng, một ứng dụng cũng rất phổ biến đó là phân lớp khách hàng
(classifying). Dựa vào kỹ thuật data mining học trên cây quyết định (decision
tree) trên dữ liệu khách hàng và chi tiết cuộc gọi có thể tìm ra các luật để phân
loại khách hàng. Ví dụ ta có thể phân biệt được khách hàng nào thuộc đối tượng
kinh doanh hay nhà riêng dựa vào các luật sau :
Luật 1 : nếu không quá 43% cuộc gọi có thời gian từ 0 đến 10 giây và không
đến 13% cuộc gọi vào cuối tuần thì đó là khách hàng kinh doanh.
Luật 2 : Nếu trong 2 tháng có các cuộc gọi đến hầu hết từ 3 mã vùng giống
nhau và <56,6% cuộc gọi từ 0-10 giây thì có là khách hàng nhà riêng.
Trên cơ sở tìm ra được các luật tương tự vậy, ta dể dàng phân loại khách hàng,
để từ đó có chính sách phân khúc thị trường hợp lý.
Các ứng dụng phát hiện và cô lập lỗi trên hệ thống mạng viễn thông
(Network fault isolation )
Mạng viễn thông là một cấu trúc cực kỳ phức tạp với nhiều hệ thống phần
cứng và phần mềm khác nhau. Phần lớn các thiết bị trên mạng có khả năng tự
chuẩn đoán và cho ra thông điệp trạng thái, cảnh báo lỗi (status and alarm
message). Với mục tiêu là quản lý hiệu quả và duy trì độ tin cậy của hệ thống
mạng, các thông tin cảnh báo phải được phân tích tự động và nhận diện lỗi
trước khi xuất hiện làm giảm hiệu năng của mạng. Bởi vì số lượng lớn các cảnh
báo độc lập và có vẻ như không quan hệ gì với nhau nên vấn đề nhận diện lỗi
không ít khó khăn. Kỹ thuật data mining có vai trò sinh ra các luật giúp hệ
thống có thể phát hiện lỗi sớm hơn khi nó xảy ra. Kỹ thuật khai thác mẫu tuần
tự (sequential/temporal patterns) của data mining thường được ứng dụng trong
lĩnh vực này thông qua việc khai thác cơ sở dữ liệu trạng thái mạng (network
data).
1.6. Một số thách thức đặt ra cho việc khai phá dữ liệu
Các cơ sở dữ liệu lớn
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
15
Số chiều lớn
Thay đổi dữ liệu và tri thức có thể làm cho các mẫu đã phát hiện không
còn phù hợp.
Dữ liệu bị thiếu hoặc nhiễu
Quan hệ giữa các trường phức tạp
Giao tiếp với người sử dụng và kết hợp với các tri thức đã có.
Tích hợp với các hệ thống khác…
1.7. Tổng kết chƣơng 1
Khai phá dữ liệu là một môn khoa học liên ngành: Cơ sở dữ liệu, học máy
và thống kê toán học, nghiên cứu các kỹ thuật “đào núi tìm vàng” nhằm phát
hiện những thông tin có giá trị, tiềm ẩn trong các CSDL lớn. Chương mở đầu
này đã trình bày tóm tắt khai phá dữ liệu, bao gồm: Khai phá dữ liệu là gì, quy
trình khai phá, các kỹ thuật và một số ứng dụng quan trọng của khai phá dữ liệu.
Lựa chọn thuộc tính là một nhiệm vụ quan trọng trong bước tiền xử lý
của quá trình khai phá dữ liệu. Mục đích của nó là làm giảm bớt kích thước dữ
liệu, giúp cho việc khai phá hiệu quả hơn, các kết quả thu được chính xác hơn.
Chương 2 sau đây sẽ trình bày về vấn đề này.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
16
CHƢƠNG 2
KHÁI QUÁT VỀ LỰA CHỌN THUỘC TÍNH
TRONG KHAI PHÁ DỮ LIỆU
2.1. Rút gọn thuộc tính
Hiện nay, các CSDL cần khai phá thường có kích thước rất lớn, chẳng hạn
các CSDL tin-sinh-học (Bioinformatics), CSDL đa phương tiện, CSDL giao tác,
… . Các CSDL này thường chứa tới hàng ngàn thuộc tính, gây rất nhiều khó
khăn cho việc khai phá, thậm chí còn làm cho nhiệm vụ khai phá trở nên bất khả
thi. Vấn đề đặt ra là phải tìm cách rút gọn số thuộc tính mà không làm những
thông tin cần thiết phục vụ nhiệm vụ khai phá.
Chính vì thế, từ năm 1970 đến nay, rút gọn thuộc tính (hay còn gọi là rút
gọn thứ nguyên – Dimension reduction) đã trở thành đề tài được quan tâm bởi
nhiều nhà nghiên cứu thuộc các lĩnh vực nhận dạng thống kê, học máy, khai phá
dữ liệu.
Mục đích của rút gọn thuộc tính là làm giảm số chiều của không gian thuộc
tính, loại bỏ dữ liệu dư thừa, không liên quan. Rút gọn thuộc tính đóng vai trò
quan trọng trong bước tiền xử lý dữ liệu cũng như trong quá trình khai phá. Kết
quả rút gọn thuộc tính ảnh hưởng trực tiếp đến hiệu quả thực hiện các nhiệm vụ
khai phá: Gia tăng tốc độ, cải thiện chất lượng, tính dễ hiểu của các kết quả thu
được.
Các kỹ thuật rút gọn thuộc tính có thể được phân thành hai loại: Lựa chọn
thuộc tính (Attribute selection) và biến đổi thuộc tính (Attribute transformation).
Lựa chọn thuộc tính là chọn một tập con tối tiểu tốt nhất (theo một nghĩa
nào đó) từ tập thuộc tính ban đầu của tập dữ liệu.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
17
Biến đổi thuộc tính là thực hiện việc biến đổi các thuộc tính ban đầu thành
thành một tập các thuộc tính mới với số lượng ít hơn sao cho bảo tồn được thông
tin nhiều nhất. Các phương pháp biến đổi thuộc tính lại có thể có hai loại: Trích
lọc thuộc tính (Feature extraction) và tạo sinh thuộc tính (Feature generation).
Trích lọc thuộc tính là kỹ thuật xây dựng một tập thuộc tính mới (có số lượng ít
hơn nhiều) từ các thuộc tính ban đầu bằng cách sử dụng một ánh xạ nào đó;
chẳng hạn phân tích thành phần chính (Principal Component Analysis), phân
tích phân biệt tuyến tính (Linear Discriminant Analysis). Tạo sinh thuộc tính là
kỹ thuật phát hiện thông tin quan hệ giữa các thuộc tính ban đầu từ đó mở rộng
không gian bằng cách tạo thêm các thuộc tính phản ảnh các thông tin quan hệ
mới phát hiện được. Nhược điểm của các kỹ thuật biến đổi thuộc tính là các
thuộc tính mới tạo ra thường không mang ý nghĩa vật lý nào đối với người sử
dụng.
Phần lớn các công trình gần đây tập trung vào nghiên cứu các kỹ thuật lựa
chọn thuộc tính. Chương 2 này nhằm trình bày khái quát về các kỹ thuật này.
Giảm kích
thước
Dữ liệu
Kích thước lớn
Dữ liệu kích
thước nhỏ hơn
Hệ thống
Xử lý
Khó Xử lý
Hình 2.1: Vấn đề giảm kích thước
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
18
2.2. Khái quát về lựa chọn thuộc tính
2.2.1. Bài toán lựa chọn thuộc tính
Lựa chọn thuộc tính là qúa trình lựa chọn một tập con gồm P thuộc tính từ
tập gồm M thuộc tính (P ≤ M) sao cho không gian thuộc tính được thu gọn lại
một cách tối ưu theo một tiêu chuẩn nhất định. Việc tìm ra một tập con thuộc
tính tốt nhất (làm mất đi ít nhất lượng thông tin cần thiết) thường khó thực hiện;
nhiều bài toán liên quan đến vấn đề này là những bài toán NP-khó. Nhìn chung,
một thuật toán lựa chọn thuộc tính thường bao gồm bốn khâu cơ bản:
Tạo lập tập con,
Đánh giá tập con,
Kiểm tra điều kiện dừng,
Kiểm chứng kết quả.
Tạo lập tập con thuộc tính là quá trình tìm kiếm liên tiếp nhằm tạo ra các
tập con để đánh giá, lựa chọn. Giả sử có M thuộc tính trong tập dữ liệu ban đầu,
khi đó số tất cả các tập con từ M thuộc tính sẽ là
2
M
. Với số ứng viên này, việc
tìm tập con tối ưu, ngay cả khi M không lớn lắm, cũng là một việc không thể.
Vì vậy, phương pháp chung để tìm tập con thuộc tính tối ưu là lần lượt tạo ra các
tập con để so sánh. Mỗi tập con sinh ra bởi một thủ tục sẽ được đánh giá theo
một tiêu chuẩn nhất định và đem so sánh với tập con tốt nhất trước đó. Nếu tập
con này tốt hơn, nó sẽ thay thế tập cũ. Quá trình tìm kiếm tập con thuộc tính tối
ưu sẽ dừng khi một trong bốn điều kiện sau xảy ra: (a) đã thu được số thuộc tính
quy định, (b) số bước lặp quy định cho quá trình lựa chọn đã hết, (c) việc thêm
vào hay loại bớt một thuộc tính nào đó không cho một tập con tốt hơn, (d) đã thu
được tập con tối ưu theo tiêu chuẩn đánh giá. Tập con tốt nhất cuối cùng phải
được kiểm chứng thông qua việc tiến hành các phép kiểm định, so sánh các kết
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
19
quả khai phá với tập thuộc tính “tốt nhất” này và tập thuộc tính ban đầu trên các
tập dữ liệu thực hoặc nhân tạo khác nhau.
Hình 2.2. Quy trình lựa chọn thuộc tính
Nhiều khía cạnh khác nhau của bài toán lựa chọn thuộc tính đã được các
nhà nghiên cứu tìm hiểu. Xây dựng quy trình lần lượt tạo các tập con để đánh
giá là vấn đề quan trọng trong quá trình lựa chọn thuộc tính. Quy trình này bao
gồm việc chọn điểm xuất phát, chọn hướng tìm kiếm và chiến lược tìm kiếm tập
con. Một vấn đề quan trọng khác trong lựa chọn thuộc tính là xác định cách thức
đánh mức độ phù hợp của mỗi tập con.
Hiện nay có hai cách tiếp cận chính đối với bài toán lựa chọn thuộc tính:
filter (lọc) và wrapper (đóng gói). Mỗi cách tiếp cận có những chú trọng riêng
dành cho việc rút kích thước dữ liệu hay để nâng cao độ chính xác.
Cách tiếp cận kiểu filter thực hiện việc lựa chọn thuộc tính độc lập với
thuật khai phá sử dụng sau này. Các thuộc tính được chọn chỉ dựa trên độ quan
trọng của chúng trong việc mô tả dữ liệu.
Ngược lại với cách tiếp cận filter, lựa chọn thuộc tính kiểu wrapper tiến
hành việc lựa chọn bằng cách áp dụng ngay thuật khai phá, độ chính xác của kết
quả được lấy làm tiêu chuẩn để lựa chọn các tập con thuộc tính.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
20
Cách tiếp cận filter có ưu điểm là thời gian tính toán nhanh, nhược điểm là
không sử dụng sử dụng thông tin nhãn lớp của các bộ dữ liệu nên độ chính xác
không cao
Hình 2.3. Các cách tiếp cận filter và wrapper
Gần đây một số cách tiếp cận mới cũng đã được các tác giả đã đề xuất,
chẳng hạn cách tiếp cận lai ghép (hybrid approach) nhằm kết hợp các ưu điểm
của cả hai cách tiếp cận filter và wrapper, cách tiếp cận tập thô. Cũng có thể
phân chia các cách tiếp cận bài toán lựa chọn thuộc tính thành hai loại: có giám
sát (supervised) và không có giám sát (unsupervised), tùy theo việc lựa chọn có
sử dụng hay không sử dụng thông tin nhãn lớp của các đối tượng.
2.2.2. Đặc điểm chung của các thuật toán lựa chọn thuộc tính
Hai khâu chủ yếu trong quá trình lựa chọn thuộc tính là tạo lập các tập con
và đánh giá các tập con.
2.2.2.1 Tạo lập các tập con
Thông thường có hai phương pháp tạo lập các tập con cho việc chọn lựa:
phương pháp tiến (Forward Generation) và phương pháp lùi (Backward
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
21
Generation). Tạo lập theo phương pháp tiến bắt đầu bằng tập rỗng. Sau đó, tại
mỗi bước lặp một thuộc tính tốt nhất (theo tiêu chuẩn đánh giá) trong số các
thuộc tính còn lại sẽ được thêm vào. Quá trình tạo lập dừng lại khi đã vét cạn tất
cả các thuộc tính của tập dữ liệu ban đầu hoặc đã tìm được tập con tối ưu.
Ngược lại với phương pháp tiến, phương pháp lùi bắt đầu bằng tập tất cả các
thuộc tính. Tại mỗi bước lặp, một thuộc tính tồi nhất (theo tiêu chuẩn đánh giá)
sẽ bị loại. Tập thuộc tính ban đầu sẽ nhỏ dần cho đến khi chỉ còn lại một thuộc
tính hoặc khi điều kiện dừng thỏa mãn. Một phương pháp khác để tạo lập các
tập con là bắt đầu bằng một tập con thuộc tính chọn ngẫu nhiên, sau đó tại mỗi
bước lặp lần lượt thêm vào hoặc loại bớt một thuộc tính cũng được chọn một
cách ngẫu nhiên.
2.2.2.2. Tiêu chuẩn đánh giá
Một tập con thuộc tính là tối ưu luôn được hiểu theo một tiêu chuẩn đánh
giá nào đó. (Một tập tối ưu theo tiêu chuẩn này chưa chắc sẽ là tối ưu theo tiêu
chuẩn khác). Có thể phân các tiêu chuẩn đánh giá thành hai loại: độc lập và phụ
thuộc. Tiêu chuẩn độc lập là những tiêu chuẩn được dùng trong cách tiếp cận
filter; chúng đánh giá mức độ phù hợp của một hay một tập con thuộc tính một
cách độc lập, không thông qua áp dụng một thuật học. Ngược lại với tiêu chuẩn
độc lập, tiêu chuẩn phụ thuộc đánh giá một tập con thuộc tính thông qua độ hiệu
quả của một thuật học áp dụng trên chính tập thuộc tính cần đánh giá. Nói một
cách khác, tiêu chuẩn phụ thuộc chính là số đo mức độ hiệu quả của thuật học.
Các tiêu chuẩn phụ thuộc thường được sử dụng trong cách tiếp cận wrapper.
Dưới đây, ta giới thiệu tóm tắt một số tiêu chuẩn thuộc hai loại nêu trên.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
22
a) Tiêu chuẩn độc lập
Các tiêu chuẩn độc lập thường được sử dụng để đánh giá các tập con thuộc
tính cho lựa chọn là: số đo khoảng cách, số đo lượng thông tin thu thêm
(Information gain), số đo độ phụ thuộc, số đo độ nhất quán và số đo độ tương tự.
Số đo khoảng cách. Số đo này còn được gọi là số đo độ khả tách
(separability), độ phân kỳ (divergence), độ phân biệt (discrimination).
Giả sử cần lựa chọn thuộc tính để giải quyết một bài toán phân lớp
trong trường hợp có hai lớp. Gọi D là thuộc tính nhãn lớp (thuộc tính
quyết định), X là một tập con thuộc tính nào đó. Người ta có thể sử
dụng khoảng cách giữa hai phân phối xác suất có điều kiện
( / )P D C
( / )P D X
để lựa chọn. Thuộc tính X sẽ được coi là tốt hơn thuộc tính
Y nếu khoảng cách giữa
( / )P D C
và
( / )P D X
lớn hơn khoảng cách
( / )P D C
và
( / )P D Y
.
Số đo lượng thông tin thu thêm (information gain). Lượng thông tin
thu thêm từ thuộc tính X được định nghĩa bằng hiệu số giữa độ bất
định (entropy) tiên nghiệm và giá trị kỳ vọng của độ bất định hậu
nghiệm của thuộc tính quyết định D khi đã biết X. Thuộc tính X được
coi là tốt hơn thuộc tính Y nếu lượng thông tin thu thêm được từ X lớn
hơn lượng thông tin thu thêm được từ Y.
Số đo độ phụ thuộc (dependency - hay còn gọi là số đo độ tương quan).
Số đo này đánh giá khả năng dự đoán của một thuộc tính đối với giá trị
của một thuộc tính khác. Trong hai thuộc tính điều kiện X và Y, thuộc
tính nào tương quan mạnh hơn với thuộc tính quyết định D thì nó sẽ
được ưu tiên lựa chọn. Số đo độ tương quan giữa hai thuộc tính cũng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
23
được mở rộng để đánh giá sự phụ thuộc giữa một thuộc tính vào một
số thuộc tính khác.
Số đo độ nhất quán (consistency). Đây là một tiêu chuẩn mới, gần đây
thường được sử dụng vào việc đánh giá lựa chọn thuộc tính. Khác với
các số đo khác, tiêu chuẩn này gắn kết chặt chẽ với tập dữ liệu huấn
luyện. Số đo độ nhất quán là tỷ lệ các bộ dữ liệu (đối tượng) nhất quán
trong tập dữ liệu. Tập thuộc tính được chọn là tập nhỏ nhất bảo đảm
được tỷ lệ dữ liệu nhất quán theo ngưỡng quy định bởi người sử dụng.
b) Tiêu chuẩn phụ thuộc
Trong học luật phân lớp (học có giám sát), mục đích đầu tiên của là cực
tiểu hóa sai số dự báo. Do đó, sai số dự báo (hay độ chính xác của dự báo)
thường được chọn làm tiêu chuẩn (phụ thuộc) để đánh giá các tập con thuộc
tính. Như đã nói ở trên, tiêu chuẩn phụ thuộc luôn được sử dụng trong cách tiếp
cận wrapper. Việc lựa chọn các thuộc tính được tiến hành thông qua việc áp
dụng một thuật phân lớp, nên tập con thuộc tính chọn được sẽ có khả năng dự
báo rất cao. Tuy vậy, việc sử dụng tiêu chuẩn phụ thuộc để lựa chọn thuộc tính
sẽ tiêu tốn nhiều thời gian tính toán.
2.2.3. Ứng dụng của các kỹ thuật lựa chọn thuộc tính
Nhiều hệ thống thông tin trong nhiều lĩnh vực đã nhận thấy rõ lợi ích của
việc lựa chọn thuộc tính nhằm giảm bớt số chiều của dữ liệu trong các cơ sở dữ
liệu có kích thước lớn. Hình 1.3 dưới đây trình bày một số lĩnh vực áp dụng
quan trọng của các kỹ thuật lựa chọn thuộc tính.
Những giải thuật lựa chọn đặc trưng thường được ứng dụng để tối ưu hóa
hiệu quả phân lớp của các hệ thống nhận dạng tự động, nhất là khi số cá thể mẫu
trong tập huấn luyện có hạn. Thông thường, độ chính xác của một thuật phân lớp
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
24
học được sẽ bị giảm khi sử dụng quá nhiều thuộc tính. Ví dụ như trong chuẩn
đoán khối u ác tính, do có quá nhiều thuộc tính, độ chính xác của việc nhận biết
khối u ác tính của các bác sĩ chuyên khoa qua chỉ vào khoảng 65% đến 85%.
Với việc ứng dụng các giải thuật lựa chọn thuộc tính, hiện nay các những hệ
thống nhận dạng tự động khối u có thể đạt kết quả phân loại khối u chính xác
đến 95%.
Lựa chọn
thuộc tính
Nhận dạng ảnh
Phân loại văn bản
Kiểm tra hệ thống Phân cụm
Tin-sinh-học
Qui nạp luật
If ... ... then
X
If ... ... then
Y
If ... ... then
Z
Hình 2.4: Các lĩnh vực ứng dụng của lựa chọn thuộc tính