Có thể dùng máy tính cá nhân để phân tích các lượng dữ liệu lớn trong một thời gian đủ ngắn để cho phép các nhà chiến lược đưa ra quyết định dựatrên phân tích của cây quyết định.. - Áp d
Trang 1CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
BÀI THU HOẠCH MÔN HỌC
Môn: CÔNG NGHỆ TRI THỨC & ỨNG DỤNG
CÂY QUYẾT ĐỊNH VÀ ỨNG DỤNG
TRONG VAY TÍN CHẤP
Học viên thực hiện:
CH1101154 TRẦN THỊ TƯỜNG VI
TP HCM, năm 2012
Trang 2Mở đầu
Ngày nay cùng với sự phát triển vượt bậc của công nghệ thông tin, lượng thông tinngày càng bùng nổ và trở nên khổng lồ Các phương pháp thống kê truyền thống hầunhư không còn phù hợp nữa Khai khoáng dữ liệu (data mining) ngày càng đượcnhiều người chú ý Nó thực sự đã đem lại những lợi ích đáng kể trong việc cung cấpnhững thông tin tiềm ẩn trong các cơ sở dữ liệu lớn Trong rất nhiều phương phápkhai khoáng thì cây quyết định (decision tree) được coi là công cụ mạnh và phổ biến
Trong kinh doanh, ra quyết định cho một vấn đề thiếu khoa học, cảm tính sẽ rất nguyhiểm Nghiên cứu những cơ sở của việc ra quyết định một cách khoa học sẽ giúp tanhận thức đúng đắn những cơ sở khoa học, những quy luật chi phối và lường trướcđược những hậu quả tất yếu sẽ xảy ra nếu như các quyết định được chấp nhận
Trong bài thu hoạch nhỏ này, em muốn giới thiệu về cây quyết định, một vài thuật
toán trên nó và áp dụng để giải một bài toán ‘đánh giá khách hàng tiềm năng cho
gói vay tín chấp’ của các ngân hàng Hy vọng với những kiến thức thu nhận được,
cùng với việc cố gắng mô phỏng ý tưởng giải bài toán sẽ giúp mọi người hiểu rõ hơn
ý nghĩa của data mining, đặc biệt là cây quyết định trong thực tiễn
Trang 3MỤC LỤC
Mở đầu 1
PHẦN I : LÝ THUYẾT 3
I CÂY QUYẾT ĐỊNH 3
I.1 Khái niệm 3
I.2 Ví dụ 3
I.3 Ưu điểm 5
II CÁC THUẬT TOÁN 6
II.1 Giới thiệu vài khái niệm 6
1 Entropy 6
2 Information Gain 7
II.2 ID3 8
II.3 C4.5 9
III VẤN ĐỀ TRONG CÂY QUYẾT ĐỊNH 10
III.1 Overfitting 10
III.2 Thao tác với các thuộc tính liên tục 10
III.3 Thao tác với dữ liệu bị thiếu 11
III.4 Chọn lựa thuộc tính xấu 11
III.5 Thao tác các thuộc tính liên quan đến chi phí 12
PHẦN II : ÁP DỤNG 13
I XÂY DỰNG CÂY QUYẾT ĐỊNH 13
I.1 Mô tả bài toán 13
I.2 Công cụ hỗ trợ 14
I.3 Xây dựng cây quyết định 14
1 Xây dựng tập thuộc tính 14
2 Xây dựng dữ liệu 15
3 Chuẩn bị dữ liệu cho chương trình 16
4 Chạy chương trình 17
5 Tập luật suy ra từ kết quả chạy 20
II NHẬN XÉT 21
Tài liệu tham khảo 22
Trang 4PHẦN I : LÝ THUYẾT
I CÂY QUYẾT ĐỊNH
I.1 Khái niệm
Cây quyết định (Decision Tree) là một cây phân cấp có cấu trúc được dùng để phânlớp các đối tượng dựa vào dãy các luật (series of rules)
Trong đó, mỗi nút nhánh thể hiện một sự lựa chọn trong số nhiều sự lựa chọn và mỗinút lá là sự thể hiện của một quyết định
Cây quyết định được xây dựng để hỗ trợ quá trình ra quyết định
Cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp (classes) của nó, câyquyết định sẽ sinh ra các luật để dự đoán lớp của các đối tượng chưa biết (unseendata)
I.2 Ví dụ
Dưới đây là một ví dụ về cây quyết định được xây dựng từ một tập dữ liệu đã cónhằm phân lớp những khách hàng có thông tin phản hồi (Responded) sau khi nhậnquảng cáo ‘nhà cho thuê’
Input: Giá trị của 4 thuộc tính dưới đây:
- District = {Suburban, Rural, Urban}
- House Type = {Detached, Semi-deteched, Terrace}
- Income = {High, Low}
- Previous Customer = {Yes, No}
Output/Outcome: Nothing, Responded
Trang 5Ghi chú: Số k/n bên dưới các giá trị chỉ mang tính chất tham khảo (không bắt buộc có
trong cây quyết định), nó thể hiện số khách có phản hồi/ số khách có thuộc tính có giátrị đó
Ví dụ: số 2/5 bên dưới Suburban thể hiện trong 5 khách hàng có District là Suburbanthì có 2 khách hàng phản hồi
Luật suy ra từ cây quyết định trên:
Rule1: (District=Suburban) AND (House Type=Detached) => (Outcome = Nothing) Rule2: (District=Suburban) AND (House Type=Terrace) AND (Income=High) =>(Outcome = Nothing)
Rule3: (District=Suburban) AND (House Type=Terrace) AND (Income=Low) =>(Outcome = Responded)
Rule4: (District=Urban) AND (Previous Customer=No) => (Outcome = Responded)Rule5: (District=Urban) AND (Previous Customer=Yes) => (Outcome = Nothing)Rule6: (District=Rural) => (Outcome = Responded)
Trang 6I.3 Ưu điểm
So với các phương pháp khai phá dữ liệu khác, cây quyết định là phương pháp có một
số ưu điểm:
hình cây
thiết Các kỹ thuật khác thường đòi hỏi chuẩn hóa dữ liệu, cần tạo các biến
phụ (dummy variable) và loại bỏ các giá trị rỗng.
trị là tên thể loại Các kỹ thuật khác thường chuyên để phân tích các bộ dữ
liệu chỉ gồm một loại biến Chẳng hạn, các luật quan hệ chỉ có thể dùng chocác biến tên, trong khi mạng nơ-ron chỉ có thể dùng cho các biến có giá trịbằng số
huống cho trước trong một mô hình, thì có thể dễ dàng giải thích điều kiện đóbằng logic Boolean Mạng nơ-ron là một ví dụ về mô hình hộp đen, do lời giảithích cho kết quả quá phức tạp để có thể hiểu được
cho ta có thể tin tưởng vào mô hình
ngắn Có thể dùng máy tính cá nhân để phân tích các lượng dữ liệu lớn trong
một thời gian đủ ngắn để cho phép các nhà chiến lược đưa ra quyết định dựatrên phân tích của cây quyết định
ý đến, chỉ những trường hợp được mô tả trong những giới hạn của những đặc
tính mà liên quan đến những khái niệm mục tiêu
II CÁC THUẬT TOÁN
II.1 Giới thiệu vài khái niệm
1 Entropy
- Entropy mô tả mức độ hỗn loạn trong một tín hiệu lấy từ một sự kiện ngẫu nhiên.Nói cách khác, entropy cũng chỉ ra có bao nhiêu thông tin trong tín hiệu, vớithông tin là các phần không hỗn loạn ngẫu nhiên của tín hiệu
- Claude E Shannon đã xây dựng định nghĩa về entropy để thoả mãn các giả địnhsau:
Entropy phải tỷ lệ thuận liên tục với các xác suất xuất hiện của các phần tửngẫu nhiên trong tín hiệu Thay đổi nhỏ trong xác suất phải dẫn đến thay đổinhỏ trong entropy
Nếu các phần tử ngẫu nhiên đều có xác suất xuất hiện bằng nhau, việc tăng sốlượng phần tử ngẫu nhiên phải làm tăng entropy
Có thể tạo các chuỗi tín hiệu theo nhiều bước, và entropy tổng cộng phải bằngtổng có trọng số của entropy của từng bước
Trang 7- Shannon cũng chỉ ra rằng bất cứ định nghĩa nào của entropy, cho một tín hiệu cóthể nhận các giá trị rời rạc, thoả mãn các giả định của ông thì đều có dạng
với
K là một hằng số, chỉ phụ thuộc vào đơn vị đo.
n là tổng số các giá trị có thể nhận của tín hiệu.
i là giá trị rời rạc thứ i.
p(i) là xác suất xuất hiện của giá trị i.
- Áp dụng khái niệm ‘entropy’ trên vào cây quyết định với K = 1 ta có được địnhnghĩa như dưới đây:
- Gain được tính để ước lượng độ lợi từ việc phân rã một thuộc tính
là gain của tập sau khi phân rã thuộc tính
là entropy của tập
là số giá trị khác nhau của thuộc tính trong
là tần số của các dữ liệu có giá trị của là trong
là là giá trị có thể của
là một tập con của chứa các dữ liệu mà giá trị của =
Trang 8- Gain xác định độ cải thiện entropy tong qua phân lớp một thuộc tính, Gain càngcao càng tốt.
- Chúng ta có thể sử dụng khái niệm về thu thập để đánh giá tầm quan trọng nhữngthuộc tính và xây dựng những cây quyết định mà mỗi nút chứa thuộc tính mànhận được lớn nhất trong những thuộc tính chưa được xem xét trong đường đi từgốc
- Mục đích của việc sắp thứ tự này là :
1 Để tạo ra cây quyết định nhỏ mà những record có thể được xát định sau chỉmột vài lần cây quyết định phân chia
2 Để kết nối một hi vọng đối với việc tối thiểu của quá trình tạo quyết định
II.2 ID3
Ý tưởng chính của thuật toán này
1 Tính đồng nhất định lượng (entropy) của các thuộc tính chưa dùng dựa vào các
dữ liệu test (test data)
2 Chọn thuộc tính có entropy nhỏ nhất (hoặc information gain là lớn nhất)
3 Tạo node chứa thuộc tính đó
Mô tả thuật toán:
ID3 (Examples, Target_Attribute, Attributes)
1. Create a root node for the tree
2. If all examples are positive, Return the single-node tree Root, with label = +
3. If all examples are negative, Return the single-node tree Root, with label = -
4. If number of predicting attributes is empty, then Return the single node treeRoot, with label = most common value of the target attribute in the examples
5. Otherwise
Begin
o A = The Attribute that best classifies examples
o Decision Tree attribute for Root = A
o For each possible value, , of A,
Add a new tree branch below Root, corresponding to the test A =
Trang 9- Tại mỗi nút của cây, C4.5 chọn một thuộc tính tốt nhất trong tập dữ liệu mà nóchia những tập mẫu thành những tập con (enriched in on class or the other).Nguyên tắc của nó dựa trên information gain (difference in entropy) để chọn mộtthuộc tính cho việc phân lớp dữ liệu Thuộc tính với information gain chuẩn hóanhất đươc chọn C4.5 sẽ tiếp tục làm trên tập nhỏ hơn.
- Quá trình xây dựng cây quyết định có 2 giai đoạn đó là xây dựng cây và cắt tỉa(pruning) cây để được cây quyết định tối ưu
Mô tả thuật toán:
1 Check for base cases
All the samples in the list belong to the same class When this happens, itsimply creates a leaf node for the decision tree saying to choose that class.None of the features provide any information gain In this case, C4.5creates a decision node higher up the tree using the expected value of the
Trang 10Instance of previously-unseen class encountered Again, C4.5 creates adecision node higher up the tree using the expected value
2 For each attribute a
1 Find the normalized information gain from splitting on a
3 Let a_best be the attribute with the highest normalized information gain
4 Create a decision node that splits on a_best
5 Recurse on the sublists obtained by splitting on a_best, and add those
nodes as children of node
III VẤN ĐỀ TRONG CÂY QUYẾT ĐỊNH
Các vấn đề đặc thù trong khi học hay phân lớp dữ liệu bằng cây quyết định gồm: xácđịnh độ sâu để phát triển cây quyết định, xử lý với những thuộc tính liên tục, chọnphép đo lựa chọn thuộc tính thích hợp, sử dụng tập dữ liệu đào tạo với những giá trịthuộc tính bị thiếu, sử dụng các thuộc tính với những chi phí khác nhau, và cải thiệnhiệu năng tính toán Sau đây là những vấn đề chính đã được giải quyết trong các thuậttoán phân lớp dựa trên cây quyết định
III.1 Overfitting
- Định nghĩa: Cho một không giả thuyết H , một giả thuyết h thuộc H được gọi là
overfit trên training data nếu tồn tại một vài giả thuyết h’ thuộc H mà h có ít lỗi
hơn h’ trên training example , nhưng h’ có lỗi nhỏ hơn h trên toàn bộ sự phân bốcủa những trường hợp
- Một vài cách để tránh overfiting
+ Dừng phát triển cây sớm hơn bình thường, trước khi đạt tới điểm phân lớphoàn hảo tập dữ liệu đào tạo Với phương pháp này, một thách thức đặt ra làphải ước lượng chính xác thời điểm dừng phát triển cây
+ Cho phép cây có thể “quá vừa” dữ liệu, sau đó sẽ cắt, tỉa cây
- Có thể hiểu đây là hiện tượng cây quyết định chứa một số đặc trưng riêng của tập
dữ liệu đào tạo, nếu lấy chính tập traning data để test lại mô hình phân lớp thì độchính xác sẽ rất cao, trong khi đối với những dữ liệu tương lai khác nếu sử dụngcây đó lại không đạt được độ chính xác như vậy
- Quá vừa dữ liệu là một khó khăn đáng kể đối với học bằng cây quyết định và
Trang 11những phương pháp học khác Đặc biệt khi số lượng ví dụ trong tập dữ liệu đàotạo quá ít, hay có hỗn tạp trong dữ liệu
III.2 Thao tác với các thuộc tính liên tục
- Việc thao tác với thuộc tính liên tục trên cây quyết định hoàn toàn không đơn giản như với thuộc tính rời rạc Thuộc tính rời rạc có tập giá trị xác định từ trước
và là tập hợp các giá trị rời rạc
- Việc phân chia dữ liệu dựa vào phép kiểm tra giá trị của thuộc tính rời rạc đượcchọn tại một ví dụ cụ thể có thuộc tập giá trị của thuộc tính đó hay không:value(A) ∈ X với X ⊂ domain (A) Đây là phép kiểm tra logic đơn giản, khôngtốn nhiều tài nguyên tính toán
- Trong khi đó, với thuộc tính liên tục (thuộc tính dạng số) thì tập giá trị là khôngxác định trước Ví dụ: thuộc tính tuổi tác, tiền lương, Chính vì vậy, trong quátrình phát triển cây, cần sử dụng kiểm tra dạng nhị phân: value(A) ≤ C Với C
là hằng số, ngưỡng C được lần lượt xác định dựa trên từng giá trị riêng biệt haytừng cặp giá trị liền nhau (theo thứ tự đã sắp xếp) của thuộc tính liên tục đangxem xét trong tập dữ liệu đào tạo Điều đó có nghĩa là nếu thuộc tính liên tục Atrong tập dữ liệu đào tạo có n giá trị phân biệt thì cần thực hiện n-1 lần kiểm travalue(A) ≤ Ci với i = 1 n-1 để tìm ra ngưỡng C best tốt nhất tương ứng với thuộctính đó Việc xác định giá trị của C và tiêu chuẩn tìm C tốt nhất tùy vào chiếnlược của từng thuật toán
- Cụ thể với một giá trị thuộc tính A là giá trị liên tục giải thuật có thể linh động tạo
ra một thuộc tính logic Ac mang giá trị true nếu A < C và false nếu ngược lại
- Trong thuật toán C4.5, Ci được chọn là giá trị trung bình của hai giá trị liền kềnhau trong dãy giá trị đã sắp xếp
III.3 Thao tác với dữ liệu bị thiếu
- Thực tế sẽ gặp rất nhiều trường hợp giá trị của các thuộc tính bị thiếu, vậy điều gìxảy ra nếu dữ liệu chứa một hoặc nhiều giá trị không biết “?” thay cho một giá trịthuộc tính cụ thể
- Xét một trường hợp mà trong đó Gain(S,A) được tính toán tại nút n trong câyquyết định đề xát định khi nào thuộc tính A là thuộc tính tốt nhất để kiểm tra nútquyết định này Giả sử rằng (x,c(x)) là một trong những training example trong S
và giá trị A(x) là không được biết đến
- Một trong những chiến thuật liên quan đến thiếu giá trị thuộc tính là gán nó giá trị
mà hầu như chung trong số những training example tại nút n Thay phiên nhau,chúng ta gán nó giá trị chung trong số những training example tại nút n mà có sựphân loại c(x)
- Thứ hai một thủ tục phức tạp hơn là gán một kết quả có thể xảy ra cho mỗi mộtgiá trị của A hơn là đơn giản gán một giá trị chung cho A(x).Khả năng có thểnhận được bằng cách quan sát tần số của những giá trị khác nhau cho A trong sốnhững ví dụ tại nút n
- Cho ví dụ, cho trước thuộc tính với giá trị logic A , nếu nút n chứa 6 trường hợpđược biết đến với A=1 và 4 trường hợp là A=0 , như vậy chúng ta có xát suất mà
Trang 12xuống nhánh với A=1 và phân số 0,4 của x phân bố xuống nhánh của nhữngnhánh cây khác.Những tỉ số ví dụ này được sử dụng mục đích tính toán thông tinGain và những sự phân chia xa hơn ở những nhánh con của cây nếu sự thiếu giátrị thuộc tính thứ hai của cây phải được kiểm tra Phương pháp để quản lý thiếusót giá trị thuộc tính này được sử dụng trong C4.5.
III.4 Chọn lựa thuộc tính xấu
- Information gain có khuynh hướng ưu tiên chọn những thuộc tính có nhiều giá trịhơn những thuộc tính chỉ có một vài giá trị
- Ví dụ nếu tập dữ liệu có thuộc tính Date thì khi xây dựng cây quyết định ta sẽ thuđược cây có chiều cao là 1 với thuộc tính Date được chọn
- Để tránh trường hợp này Quinlan dùng GainRatio(S,A) thay cho Gain(S,A).
Với
P(S v) là tần số của các dữ liệu có giá trị của Sv trong
III.5 Thao tác các thuộc tính liên quan đến chi phí
- Đôi khi những thuộc tính của thực thể có thể liên quan đến chi phí (Cost), trongnhững trường hợp như vậy ta sẽ ưu tiên những cây quyết định sử dụng thuộc tínhchi phi thấp ở những nơi có thể, và chỉ dùng những thuộc tính có giá trị cao khicần tạo ra những sự phân loại đáng tin cậy
- Chỉ ra một function tính đo chi phí Cost(A) cho mỗi thuộc tính
- Chúng ta có thể dùng CostedGain(S,A)
với có thể là một hằng số để xác định độ quan trọng tương đối củachi phí chống lại information gain