ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
________________
BÀI THU HOẠCH MÔN HỌC
KHAI PHÁ DỮ LIỆU
Đề tài: Phân lớp - Classification
Giảng viên hướng dẫn: PGS.TS.Đỗ Phúc
Sinh viên thực hiện: Nguyễn Thị Phúc Triêm
Mã số: CH1101051
TP. HCM, năm 2012
Khóa luận môn học: Khai phá dữ liệu
Lời nói đầu
Từ sự xuất hiện cách mạng thông tin, cách mạng tri thức và sự bùng nổ công nghệ cao,
con người cần luôn đổi mới, phát huy mạnh mẽ năng lực sáng tạo để luôn đổi mới quốc gia, hội
nhập vào nền kinh tế, tri thức toàn cầu. Bên cạnh đó việc khai thác dữ liệu là một công nghệ mới
mạnh mẽ với tiềm năng lớn để giúp các công ty tập trung vào các thông tin quan trọng nhất trong
các dữ liệu mà họ đã thu thập được về hành vi của khách hàng và các khách hàng tiềm năng.
Giúp phát hiện ra các thông tin ẩn trong dữ liệu mà các truy vấn và các báo cáo không thể tiết lộ
được, từ cơ sở đó đưa ra những quyết định quan trọng.
Một trong những kỹ thuật phổ biến trong khai phá dữ liệu để tìm các mẫu dữ liệu ẩn là
phân tích phân lớp, được sử dụng để dự đoán thành viên nhóm cho các trường hợp dữ liệu. Trong
xu thế phát triển chung đó em xin trình bày phần tìm hiểu nhỏ của mình trong kỹ thuật phân lớp
khai phá dữ liệu.
Chúng em xin được gửi lời cám ơn chân thành đến phó Giáo sư-Tiến sỹ Đỗ Phúc, người
đã tận tâm truyền đạt những kiến thức nền tảng cơ bản cho chúng em về môn học “Khai phá dữ
liệu”. Xin cảm ơn ban cố vấn học tập và ban quản trị Chương trình đào tạo thạc sỹ Công nghệ
thông tin qua mạng của Đại Học Quốc Gia Thành phố Hồ Chí Minh đã tạo điều kiện cho chúng
em hoàn thành tốt môn học.
2
Khóa luận môn học: Khai phá dữ liệu
I. Tổng quan về phân lớp
1. Phân lớp là gì?
Phân loại là một chức năng của khai phá dữ liệu , dùng để chỉ định các đối tượng trong một tập vào
các lớp hoặc loại đối tượng khác nhau. Mục tiêu của việc phân lớp là dự đoán lớp chính xác cho từng
trường hợp trong dữ liệu. Ví dụ, một mô hình phân loại có thể được sử dụng để xác định khoản vay
tín dụng của người dùng có độ rủi ro là trung bình, thấp, hoặc cao.
Một tác vụ phân lớp bắt đầu với một tập dữ liệu, trong đó bao gồm nhãn phân lớp cho mỗi mẫu dữ
liệu và một tập các mẫu dữ liệu huấn luyện. Ví dụ, một mô hình phân loại dự báo rủi ro tín dụng có
thể được phát triển dựa trên các dữ liệu quan sát các thông tin vay tín dung qua một khoảng thời gian.
Ngoài việc xếp hạng tín dụng lịch sử, các dữ liệu có thể theo dõi quá trình làm việc, quyền sở hữu
hoặc thuê nhà, số năm cư trú và số lượng, loại hình đầu tư, v.v Xếp hạng tín dụng sẽ là mục tiêu
chính, các thuộc tính khác sẽ là dự đoán kèm theo, và các dữ liệu cho mỗi khách hàng sẽ là một
trường hợp.
Phân lớp được ứng dụng nhiều trong phân khúc khách hàng, mô hình kinh doanh, tiếp thị, phân tích
tín dụng, mô hình y sinh học, chuẩn đoán y khoa, phân tích hiệu quả điều trị và phản ứng thuốc…
2. Phân lớp và dự đoán
Dự đoán tương tự với phân lớp: xây dựng một mô hình, sử dụng mô hình để dự đoán cho những giá
trị chưa biết.
Phân loại là rời rạc và không hàm ý thứ tự. Trong khi dự báo lại dựa trên những giá trị liên tục , giá
trị dấu chấm động sẽ chỉ ra một số, chứ không phải là một mục tiêu, phân loại. Một mô hình dự đoán
với mục tiêu là số sử dụng thuật toán hồi quy, không phải là một thuật toán phân lớp.
3. Tiến trình phân lớp
Tiến trình phân lớp gồm 2 bước
Bước 1: Xây dựng mô hình từ tập huấn luyện
Bước 2: Sử dụng mô hình - kiểm tra tính đúng đắn của mô hình và dùng nó để phân lớp dữ liệu mới
3
Khóa luận môn học: Khai phá dữ liệu
a. Xây dựng mô hình
Mỗi bộ/mẫu dữ liệu được phân vào một lớp được xác định trước
Lớp của một bộ/mẫu dữ liệu được xác định bởi thuộc tính gán nhãn lớp
Tập các bộ/mẫu dữ liệu huấn luyện - tập huấn luyện - được dùng để xây dựng mô hình
Mô hình được biểu diễn bởi các luật phân lớp, các cây quyết định hoặc các công thức toán học
b. Sử dụng mô hình
Phân lớp cho những đối tượng mới hoặc chưa được phân lớp
Đánh giá độ chính xác của mô hình
lớp biết trước của một mẫu/bộ dữ liệu đem kiểm tra được so sánh với kết quả thu được từ mô
hình
Tỉ lệ chính xác = phần trăm các mẫu/bộ dữ liệu được phân lớp đúng bởi mô hình trong số các lần
kiểm tra
4. Ví dụ về qui trình phân lớp
a. Xây dựng mô hình
4
Khóa luận môn học: Khai phá dữ liệu
b. Sử dụng mô hình
5. Học có giám sát và học không có giám sát
a. Học có giám sát (phân lớp)
Giám sát: Dữ liệu huấn luyện (quan sát, đo lường…) đều có kèm theo nhãn ghi rõ lớp của các
quan sát
Dữ liệu mới được phân loại dựa trên tập huấn luyện
b. Học không có giám sát (phân cụm)
Không biết các nhãn phân lớp của dữ liệu huấn luyện
Cho một tập các phép đo, quan sát,… với mục đích thiết lập sự tồn tại của các lớp hoặc cụm dữ
liệu
5
Khóa luận môn học: Khai phá dữ liệu
6. Các vấn đề liên quan đến phân lớp
a. Chuẩn bị dữ liệu
Làm sạch dữ liệu: xử lý dữ liệu để giảm nhiễu và xử lý các giá trị bị thiếu
Phân tích sự liên quan (tính năng lựa chọn): Hủy bỏ các thuộc tính không liên quan hoặc dư thừa
Chuyển đổi dữ liệu: Khái quát và (hoặc) bình thường hóa dữ liệu
b. Đánh giá các phương pháp phân lớp
Tiên đoán chính xác
Tốc độ và khả năng mở rộng:
• Thời gian để xây dựng mô hình
• Thời gian sử dụng mô hình
Bền vững: xử lý nhiễu và giá trị thiếu
Khả năng mở rộng (co giãn): hiệu quả trong cơ sở dữ liệu đĩa thường trú
Có thể biễu diễn được: hiểu biết và nhìn sâu sắc bằng mô hình
Luật dễ làm:
• Quyết định kích thước cây
• Luật phân lớp chắc và gọn
II. Phân lớp theo cây quyết định
1. Cây quyết định
Cây quyết định là một cây trong đó
• nút trong = một phép kiểm tra trên một thuộc tính
• nhánh của cây = đầu ra của một phép kiểm tra
• nút lá = nhãn phân lớp hoặc sự phân chia vào lớp
2. Tạo cây quyết định
Hai giai đoạn tạo cây quyết định:
• xây dựng cây
o bắt đầu, tất cả các mẫu huấn luyện đều ở gốc
o phân chia các mẫu dựa trên các thuộc tính được chọn
6
Khóa luận môn học: Khai phá dữ liệu
o kiểm tra các thuộc tính được chọn dựa trên một độ đo thống kê hoặc heuristic
• thu gọn cây
o xác định và loại bỏ những nhánh nhiễu hoặc tách khỏi nhóm
3. Ví dụ cây quyết định
Tập huấn luyện trích từ Quinlan’s ID3
7
Khóa luận môn học: Khai phá dữ liệu
Cây quyết định thu được cho “người mua máy tính”
4. Rút luật phân lớp từ cây quyết định
Mỗi một đường dẫn từ gốc đến lá trong cây tạo thành một luật
Mỗi cặp giá trị thuộc tính trên một đường dẫn tạo nên một sự liên
Nút lá giữ quyết định phân lớp dự đoán
Các luật tạo được dễ hiểu hơn các cây
Trong ví dụ trên :
IF age < 30 AND student = yes
THEN buys_computer
8
Khóa luận môn học: Khai phá dữ liệu
5. Các thuật toán trên cây quyết định
a. Thuật toán cơ bản (thuật toán tham lam)
Xây dựng một cây đệ quy phân chia và xác định đặc tính từ trên xuống
Bắt đầu, tất cả các dữ liệu huấn luyện đều ở gốc
Thuộc tính được phân loại (nếu là giá trị liên tục, giá trị này phải được phân chia trước)
Các dữ liệu được phân chia đệ quy dựa trên các thuộc tính được lựa chọn
Thuộc tính thử nghiệm được lựa chọn trên cơ sở của một biện pháp phỏng đoán hay thống kê (
thông tin đạt được)
Điều kiện dừng phân vùng:
• Tất cả các mẫu cho một nút cho trước đều thuộc về cùng một lớp
• Không còn thuộc tính còn lại nào cho việc phân thêm vùng
• Không có mẫu còn lại
6. Các độ đo lựa chọn thuộc tính
Độ lợi thông tin (information gain) (ID3/C4.5)
• Giả định tất cả các thuộc tính đều được phân loại
• Có thể sửa đổi các thuộc tính có giá trị liên tục
Chỉ số Gini (IBM IntelligentMiner)
• Tất cả các thuộc tính được cho là có giá trị liên tục
• Giả sử mỗi thuộc tính tồn tại các giá trị phân chia có thể
• Có thể cần các công cụ khác, như phân cụm, để có được các giá trị có thể phân chia
• Có thể được sửa đổi phân loại của các thuộc tính
a. Độ lợi thông tin
Chọn thuộc tính có chỉ số có độ lợi thông tin lớn nhất
Cho P và N là hai lớp và S là một tập dữ liệu có p phần tử lớp P và n phần tử lớp N
Khối lượng thông tin cần thiết để quyết định một mẫu tùy ý có thuộc về lớp P hay N hay không là
np
n
np
n
np
p
np
p
npI
++
−
++
−=
22
loglog),(
• Cho các tập {S1, S2 , …, Sv} là một phân hoạch trên tập S, khi sử dụng thuộc tính A
• Cho mỗi Si chứa pi mẫu lớp P and ni mẫu lớp N
9
Khóa luận môn học: Khai phá dữ liệu
•
∑
=
+
+
=
ν
1
),()(
i
ii
ii
npI
np
np
AE
entropy, hay thông tin mong muốn cần thiết để phân lớp các đối
tượng trong tất cả các cây con Si là
• Thông tin có được bởi việc phân nhánh trên thuộc tính A là
)(),()( AEnpIAGain −=
Thừa nhận:
Lớp P: buys_computer= “yes”
Lớp N: buys_computer= “no”
Thông tin cần thiết để phân lớp một mẫu được cho là:
I(p, n) = I(9, 5) =0.940
Tính entropy cho thuộc tính tuổi
69.0)2,3(
14
5
)0,4(
14
4
)3,2(
14
5
)(
=+
+=
I
IIageE
Ta có:
Do đó:
)(),()( ageEnpIageGain −=
10
Khóa luận môn học: Khai phá dữ liệu
048.0)_(
151.0)(
029.0)(
=
=
=
ratingcreditGain
studentGain
incomeGain
Tương tự:
b. Chỉ số Gini (IBM Intelligent Miner)
∑
=
−=
n
j
p
j
Tgini
1
2
1)(
Nếu một tập hợp dữ liệu T có chứa các mẫu từ n lớp, chỉ số Gini ( gini
(T)) được định nghĩa là
Với pj là tần số tương đối của lớp j trong T
)()()(
2
2
1
1
T
gini
N
N
T
gini
N
N
T
gini
split
+=
Nếu một tập hợp dữ liệu T được chia
thành hai tập con T1 và T2 tương ứng với kích thước N1 và N2, chỉ số Gini của dữ liệu chia chứa các
mẫu từ n lớp, chỉ số Gini (T) được định nghĩa là
Thuộc tính có gini
split
(T) nhỏ nhất được chọn để phân chia các nút (cần phải kê khai tất cả các điểm
chia tách có thể cho mỗi thuộc tính)
7. Trích xuất các luật phân lớp từ cây
Dùng luật IF-THEN để thể hiện
Một luật được tạo ra cho mỗi con đường từ nút gốc đến nút lá
Mỗi cặp thuộc tính-giá trị dọc theo một đường đi hình thành một liên từ
Nút lá nắm giữ dự đoán lớp
Các luật giúp con người dễ hiểu hơn
Ví dụ
11
Khóa luận môn học: Khai phá dữ liệu
IF age = “<=30” AND student = “no” THEN buys_computer = “no”
IF age = “<=30” AND student = “yes” THEN buys_computer = “yes”
IF age = “31…40” THEN buys_computer = “yes”
IF age = “>40” AND credit_rating = “excellent” THEN buys_computer = “yes”
IF age = “>40” AND credit_rating = “fair” THEN buys_computer = “no”
8. Tránh Overfitting trong phân loại
Cây tạo được có thể overfit dữ liệu huấn luyện
• Quá nhiều nhánh
• Độ chính xác kém cho những mẫu chưa biết
Lý do overfit
• Dữ liệu nhiễu và tách rời khỏi nhóm
• Dữ liệu huấn luyện quá ít
• Các giá trị tối đa cục bộ trong tìm kiếm tham lam (greedy search)
Hai hướng tránh overfitting
• rút gọn trước: ngừng sớm
• rút gọn sau: loại bỏ bớt các nhánh sau khi xây xong toàn bộ cây
III. Phân lớp theo Bayes
1. Thuật toán Bayes
Thuật toán Naive Bayes dựa trên xác suất có điều kiện. Nó sử dụng Định lý Bayes, một công thức
tính toán xác suất bằng cách đếm tần số của các giá trị và sự kết hợp của các giá trị trong dữ liệu lịch
sử.
Định lý Bayes tìm thấy xác suất của một sự kiện đang xảy ra được xác định xác suất của một sự kiện
đã xảy ra. Nếu B đại diện cho các sự kiện phụ thuộc và A đại diện cho các sự kiện đã xảy ra trước,
định lý Bayes 'có thể được quy định như sau.
12
Khóa luận môn học: Khai phá dữ liệu
Prob (B cho A) = Prob (A và B) / Prob (A)
Để tính toán xác suất của B cho A, thuật toán đếm số lượng các trường hợp A và B xuất hiện cùng
nhau và chia nó bởi số lượng các trường hợp A xảy ra một mình.
Giả sử bạn muốn xác định khả năng rằng một khách hàng dưới 21 tuổi sẽ tăng chi tiêu. Trong trường
hợp này, điều kiện trước (A) sẽ là dưới 21 tuổi, và tình trạng phụ thuộc (B) sẽ là tăng chi tiêu.
Nếu có 100 khách hàng trong dữ liệu huấn luyện và 25 người trong số họ là những khách hàng dưới
21 tuổi đã tăng chi tiêu, ta có:
Prob (A và B) = 25%
Nếu 75 trong 100 khách hàng dưới 21 tuổi, ta có:
Prob (A) = 75%
Định lý Bayes sẽ dự đoán 33% khách hàng dưới 21 tuổi có khả năng tăng chi tiêu (25/75).
Các trường hợp cả hai điều kiện xuất hiện cùng nhau được gọi là cặp. Trong ví dụ này, 25% của tất cả
các trường hợp được gọi cặp.
Các trường hợp chỉ có các sự kiện trước đó xảy ra được gọi là singleton. Trong ví dụ này, 75% của tất
cả các trường hợp là singleton.
13
Khóa luận môn học: Khai phá dữ liệu
2. Tại sao phân lớp theo Bayes
Học theo xác suất:
• Tính các xác suất rõ ràng cho các giả thiết
• Một trong những hướng thiết thực cho một số vấn đề thuộc loại học
Có tăng trưởng:
• Mỗi mẫu huấn luyện có thể tăng/giảm dần khả năng đúng của một giả thiết
• Tri thức ưu tiên có thể kết hợp với dữ liệu quan sát
Dự đoán theo xác suất:
• Dự đoán nhiều giả thiết, trọng số cho bởi khả năng xảy ra của chúng
Chuẩn:
14
Khóa luận môn học: Khai phá dữ liệu
• Ngay cả khi các phương pháp Bayes khó trong tính toán, chúng vẫn có thể cung cấp một
chuẩn để tạo quyết định tới ưu so những phương pháp khác
3. Phân lớp Bayes
Bài toán phân lớp có thể hình thức hóa bằng xác suất a-posteriori:
P(C|X) = xác suất mẫu
X=<x
1
,…,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
Đị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 sap cho P(X|C)·P(C) lớn nhất
Vấn đề: tính P(X|C) là không khả thi!
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
Nếu thuộc tính thứ i là liên tục:
P(x
i
|C) được ước lượng thông qua một hàm mật độ Gaussian
Tính toán dễ dàng trong cả hai trường hợp
15
Khóa luận môn học: Khai phá dữ liệu
Ví dụ:
16
Khóa luận môn học: Khai phá dữ liệu
P(p) = 9/14
P(n) = 5/14
outlook
P(sunny|p) = 2/9 P(sunny|n) = 3/5
P(overcast|p) = 4/9 P(overcast|n) = 0
P(rain|p) = 3/9 P(rain|n) = 2/5
temperature
P(hot|p) = 2/9 P(hot|n) = 2/5
P(mild|p) = 4/9 P(mild|n) = 2/5
P(cool|p) = 3/9 P(cool|n) = 1/5
humidity
P(high|p) = 3/9 P(high|n) = 4/5
P(normal|p) = 6/9 P(normal|n) = 2/5
windy
17
Khóa luận môn học: Khai phá dữ liệu
P(true|p) = 3/9 P(true|n) = 3/5
P(false|p) = 6/9 P(false|n) = 2/5
Xét mẫu không nhìn thấy X = <rain, hot, high, false>
P(X|p)·P(p) = P(rain|p)·P(hot|p)·P(high|p)·P(false|p)·P(p) = 3/9·2/9·3/9·6/9·9/14 = 0.010582
P(X|n)·P(n) = P(rain|n)·P(hot|n)·P(high|n)·P(false|n)·P(n) = 2/5·2/5·4/5·2/5·5/14 = 0.018286
Mẫu X được phân vào lớp n (don’t play)
4. Phân lớp Naïve Bayesian –giả thuyết độc lập
… làm cho có thể tính toán
… cho ra bộ phân lớp tối ưu khi thỏa yêu cầu
… nhưng yêu cầu ít khi được thỏa trong thực tế vì các thuộc tính (các biến) thường có liên quan
với nhau.
Những cố gắng khắc phục điểm hạn chế này:
• Các mạng Bayes (Bayesian networks), kết hợp lý luận Bayes với các mối quan hệ nhân quả
giữa các thuộc tính
• Các cây quyết định, lý luận trên một thuộc tính tại một thời điểm, xét những thuộc tính quan
trọng nhất trước
5. Mạng niềm tin Bayesian
18
Khóa luận môn học: Khai phá dữ liệu
Bảng xác suất có điều kiện cho biến Ung thư phổi
Hút thuốcLịch sử gia đình
Bệnh khí thủngUng thư phổi
Khó thởPositiveXRay
(~FH, ~S)
(~FH, S)
(FH, ~S)
(FH, S)
0.9
0.1
0.3
0.7
0.5
0.5
0.2
0.8
~LC
LC
19
Khóa luận môn học: Khai phá dữ liệu
Mạng niềm tin Bayesian cho phép có tập hợp con của các biến điều kiện là độc lập
Một mô hình đồ họa thể hiện mối quan hệ nhân quả
Một số trường hợp học được từ mạng niềm tin Bayesian:
• Dễ dàng với cấu trúc mạng và tất cả các biến
• Cấu trúc mạng nhưng chỉ có một số biến
• Khi không biết trước cấu trúc mạng
IV. Các hướng phân lớp khác
Mạng Neural
Phân lớp k láng giềng gần nhất
Suy luận dựa vào trường hợp
Thuật toán di truyền
Hướng tập thô
Các hướng tập mờ
20
Khóa luận môn học: Khai phá dữ liệu
V. Chương trình phân lớp Bayes
1. Chọn file dữ liệu huấn luyện
Định dạng file CSV
Dòng đầu tiên là tên thuộc tính, cột ngoài cùng bên phải là tên lớp
Các cột (trừ cột cuối cùng) đều là dữ liệu thuộc tính. Cột cuối cùng thể hiện dữ liệu lớp
2. Tính toán kết quả
Chương trình sử dụng phân lớp Naive Bayes để xác định đối với mỗi tình huống nhất định
kết quả sẽ tương ứng với phân lớp.
Bên trái là dữ liệu và các mẫu thử, bên phải là chi tiết tính toán và kết quả
21
Khóa luận môn học: Khai phá dữ liệu
Sau khi load file dữ liệu, chương trình sẽ kiếm các mẫu chưa có, đồng thời tính toán các giá
trị xác suất cơ bản tương ứng với từng lớp và từng thuộc tính
22
Khóa luận môn học: Khai phá dữ liệu
Để tính toán kết quả cho các mẫu chưa thấy ta chọn mẫu và click vào nút “Đánh giá”
Kết quả và quá trình tính toán của mẫu thử được thể hiện bên phải như hình dưới
23
Khóa luận môn học: Khai phá dữ liệu
VI. Tài liệu tham khảo
/> />www.cs.nyu.edu/courses/spring08/G22.3033-003/6class.ppt
/> />24