Lĩnh vực trí tuệ nhân tạo nói chung và hệ chuyên gia nói riêng góp phần tạo racác hệ thống có khả năng trí tuệ của con người, giúp thu thập và sử dụng tri thứctiên tiến để hỗ trợ giải qu
TỔNG QUAN VỀ HỆ CHUYÊN GIA
Khái niệm
Hệ chuyên gia (Expert System) là một chương trình máy tính thông minh, được thiết kế để giải quyết các bài toán phức tạp mà thường chỉ có các chuyên gia mới có khả năng xử lý Nó sử dụng tri thức và các thủ tục suy luận để đưa ra giải pháp hiệu quả cho những vấn đề khó khăn.
Hệ chuyên gia là một hệ thống tin học có khả năng mô phỏng năng lực quyết định và hành động của con người, đóng vai trò quan trọng trong việc ứng dụng trí tuệ nhân tạo.
Thành phần của hệ chuyên gia
Hệ chuyên gia sử dụng các tri thức của những chuyên gia để giải quyết các vấn đề ( Bài toán ) khác nhau thuộc mọi lĩnh vực.
Tri thức trong hệ chuyên gia là sự tích lũy kiến thức từ sách vở, tạp chí và các chuyên gia Thuật ngữ "hệ chuyên gia" hay "hệ thống dựa trên tri thức" thường được sử dụng thay thế cho nhau, phản ánh sự tinh thông và hiểu biết chuyên sâu trong lĩnh vực này.
Hệ chuyên gia bao gồm ba thành phần chính: cơ sở tri thức, máy suy diễn và hệ thống giao tiếp với người sử dụng Cơ sở tri thức lưu trữ các thông tin cần thiết, từ đó máy suy diễn có khả năng tạo ra câu trả lời cho người dùng thông qua giao diện người sử dụng.
Người sử dụng cung cấp các sự kiện đã biết và thông tin hữu ích cho hệ chuyên gia, từ đó nhận được những câu trả lời, lời khuyên và gợi ý chính xác.
Hoạt động của một hệ chuyên gia dựa trên tri thức được minh họa như sau:
Đặc trưng và ưu nhược điểm của hệ chuyên gia
Có bốn đặc trưng cơ bản của một hệ chuyên gia:
- Hiệu quả cao ( High performance ): Khả năng trả lời với mức độ tinh thông bằng hoặc cao hơn so với hệ chuyên gia ( Người ) trong cùng lĩnh vực.
Thời gian trả lời thỏa đáng là khoảng thời gian phản hồi hợp lý, tương đương hoặc nhanh hơn so với hệ chuyên gia (con người) để đạt được cùng một quyết định Hệ chuyên gia hoạt động trong thời gian thực, do đó, việc tối ưu hóa thời gian phản hồi là rất quan trọng để đảm bảo hiệu quả trong quá trình ra quyết định.
- Độ tin cậy cao ( Good reliability ): Không thể xảy ra sự cố hoặc giảm sút độ tin cậy khi sử dụng.
Hệ chuyên gia cung cấp các bước suy luận rõ ràng và nhất quán, giúp người dùng dễ dàng hiểu được quá trình ra quyết định, khác biệt hoàn toàn với những câu trả lời mơ hồ từ các hộp đen.
Những ưu điểm của hệ chuyên gia:
- Phổ cập ( Increased availability ): Là sản phẩm chuyên gia, được phát triển không ngừng với hiệu quả sử dụng không thể phủ nhận.
- Giảm giá thành ( Reduced cost ).
- Giảm rủi ro ( Reduced dangers ): Giúp con người tránh được trong các môi trường rủi ro, nguy hiểm.
- Tính thường trực ( Permanance ): Bất kể lúc nào cũng có thể khai thác sử dụng, trong khi con người có thể mệt mỏi, nghỉ ngơi hay vắng mặt.
- Đa lĩnh vực ( Multiple expertise ): Chuyên gia về nhiều lĩnh vực khác nhau và được khai thác đồng thời bất kể thời gian sử dụng.
- Độ tin cậy ( Increased relialility ): Luôn đảm bảo độ tin cậy khi khai thác.
- Khả năng giảng giải ( Explanation ): Câu trả lời với mức độ tinh thông được giảng giải rõ ràng chi tiết, dễ hiểu.
- Khả năng trả lời/phản hồi ( Fast reponse ): Trả lời theo thời gian thực, khách quan.
- Tính ổn định, suy luận có lý và đầy đủ mọi lúc mọi nơi ( Steady, une motional, and complete response at all times ).
- Trợ giúp thông minh như một người hướng dẫn ( Intelligent -tutor ).
- Có thể truy cập như là một cơ sở dữ liệu thông minh ( Intelligent database ).
Nhược điểm của hệ chuyên gia:
Hệ chuyên gia hoạt động hiệu quả trong các lĩnh vực hẹp và có độ phức tạp nhất định Tuy nhiên, việc mô hình hóa hệ chuyên gia cho nhiều lĩnh vực có thể dẫn đến kết quả không mong muốn.
- Hệ chuyên gia không hoàn toàn đảm bảo hay tính đúng đắn của các luật trong quá trình suy luận.
- Việc thêm các luật, các tri thức mới có thể sẽ xung đột với những luật hiện tại và có thể giảm độ tin cậy của hệ thống.
Ứng dụng thực tiễn
Đến nay, hàng trăm hệ chuyên gia đã được phát triển và thường xuyên được công bố trong các tạp chí, sách, báo và hội thảo khoa học Bên cạnh đó, còn nhiều hệ chuyên gia được áp dụng trong các công ty và tổ chức quân sự mà không được công khai do lý do bảo mật Dưới đây là danh sách một số lĩnh vực ứng dụng rộng rãi của các hệ chuyên gia.
Bảng 1 1: Ứng dụng hệ chuyên gia trong thực tiễn
Cấu hình - Tập hợp thích đáng những thành phần của một hệ thống theo cách riêng Chuẩn đoán - Lập luận dựa trên những chứng cứ quan sát được
Truyền đạt - Dạy học kiểu thông minh sao cho sinh viên có thể hỏi vì sao
(why?), như thế nào (how?) và cái gì nếu (what if?) giống như hỏi một người thầy giáo
Giải thích - Giải thích những dữ liệu thu nhận được
Kiểm tra và so sánh dữ liệu thu thập với dữ liệu chuyên môn là bước quan trọng để đánh giá kết quả Đồng thời, việc lập kế hoạch sản xuất cần được thực hiện theo yêu cầu cụ thể để đảm bảo hiệu quả.
Dự đoán - Dự đoán hậu quả từ một tình huống xảy ra
Chữa trị là quá trình chỉ định cách thụ lý một vấn đề, trong khi điều khiển liên quan đến việc quản lý một quá trình Điều này đòi hỏi các bước như diễn giải, chẩn đoán, kiểm tra, lập kế hoạch, dự đoán và cuối cùng là chữa trị.
PHÂN TÍCH BÀI TOÁN
Thuật toán suy diễn tiến
Suy diễn tiến (forward chaining) là một phương pháp suy luận quan trọng trong các hệ chuyên gia và trí tuệ nhân tạo Phương pháp này cho phép lập luận từ các sự kiện và dữ liệu có sẵn để rút ra những kết luận chính xác.
2.1.2 Các bước suy diễn tiến
Bước 1: Khởi tạo dữ liệu đầu vào:
Lấy dữ liệu vào ban đầu từ người dùng hoặc từ cơ sở dữ liệu
Xác định các sự kiện hoặc sự kiện cơ sở để bắt đầu quá trình suy diễn
Bước 2: So khớp quy tắc:
Duyệt qua các quy tắc trong cơ sở tri thức để xác định quy tắc áp dụng Mỗi quy tắc đều có cấu trúc "Nếu thì " (IF THEN ).
Kiểm tra phần điều kiện (IF) của từng quy tắc để xem nó có khớp với dữ liệu hiện tại không.
Bước 3: Kích hoạt quy tắc:
Nếu một quy tắc có điều kiện khớp với dữ liệu hiện có, quy tắc này sẽ được kích hoạt.
Thực hiện phần kết luận (THEN) của quy tắc, thêm kết quả này vào tập dữ liệu hiện có (tập sự kiện).
Bước 4: Cập nhật và lặp lại:
Cập nhật cơ sở dữ liệu sự kiện với dữ liệu mới vừa được suy ra.
Quay lại bước so khớp quy tắc để tiếp tục áp dụng các quy tắc mới với tập dữ kiện cập nhật.
Lặp lại quá trình này cho đến khi không còn quy tắc nào có thể được kích hoạt hoặc đạt được mục tiêu đã định sẵn.
Bước 5: Kết thúc suy diễn:
Khi không còn quy tắc nào có thể được áp dụng hoặc đã đạt được kết quả cuối cùng, quá trình suy diễn tiến kết thúc.
Trả về kết quả cuối cùng cho người dùng hoặc lưu vào cơ sở dữ liệu nếu cần. 2.1.3 Suy diễn tiến
-Giới thiệu suy diễn tiến:
Quá trình suy diễn các sự kiện mới từ những sự kiện đã có dựa trên luật dẫn là một phương pháp quan trọng Tập hợp sự kiện xuất phát từ các giả thuyết sẽ tạo nền tảng cho việc phát triển các kết luận mới.
Quá trình suy diễn hoàn tất khi đạt được các sự kiện mục tiêu hoặc khi không thể suy diễn thêm sự kiện mới dựa trên các luật dẫn.
- a,b,A -> B (luật a,b,A -> B dựa trên định lý hàm số Sin)
- A,B-> C (luật A,B->C dựa trên định lý tổng các góc trong tam giác )
- C,a,b->S (luật C,a,b->S dựa theo công thức S=1/2abSinC)
-Thuật toán suy diễn tiến:
Nội dung thực hiện
Nội dung thực hiện đề tài:
Để xây dựng cơ sở luật cho hệ tư vấn laptop, cần thu thập dữ liệu liên quan đến các đặc điểm phần cứng của máy tính, nhu cầu sử dụng của người dùng và các yếu tố ảnh hưởng đến việc lựa chọn hoặc nâng cấp laptop.
Sử dụng thuật toán ID3 để xây dựng cây quyết định dựa trên dữ liệu thu thập, giúp phân loại các yếu tố và tạo ra quy tắc hỗ trợ tư vấn.
Chuyển các quy tắc sinh ra từ cây quyết định thành mã C# để tích hợp vào hệ tư vấn.
Sử dụng phần mềm C# để xây dựng hệ chuyên gia
Khái niệm cây quyết định
Quá trình học trên cây quyết định sử dụng dữ liệu huấn luyện dạng bảng, với các cột đại diện cho thuộc tính điều kiện và thuộc tính mục tiêu (Quyết định), trong đó mỗi dòng thể hiện nhãn giá trị của thuộc tính mục tiêu Trong hệ thống tư vấn mua laptop, các thuộc tính điều kiện có thể bao gồm nhu cầu sử dụng, cấu hình máy, ngân sách và các yếu tố ưu tiên khác, trong khi thuộc tính mục tiêu là quyết định gợi ý mua laptop phù hợp Ví dụ, trong bảng dữ liệu, “Age” và “Salary” là thuộc tính điều kiện, còn “Class” là thuộc tính mục tiêu thể hiện khả năng phù hợp với sản phẩm.
Bảng 2 1: Ví dụ dữ liệu huấn luyện
Cây quyết định là công cụ phổ biến trong nhiều ứng dụng, giúp rút trích các quy tắc if - then từ dữ liệu mẫu Trong hệ thống tư vấn, cây quyết định hỗ trợ xây dựng quy tắc suy diễn để xác định dòng laptop phù hợp dựa trên thông tin khách hàng.
Cây quyết định là dạng đặc biệt của cấu trúc cây nhằm hỗ trợ cho tiến trình ra quyết định Cây gồm các thành phần :
- Nút trong: Biểu diễn thuộc tính.
- Nhánh: Biểu diễn giá trị cụ thể của thuộc tính đó.
- Nút lá: Đại diện cho giá trị dự đoán của thuộc tính mục tiêu.
Thuật toán tạo cây quyết định
+ Ý tưởng chính của thuật toán :
- Phương pháp “tham lam” ( Greedy ).
- Phân chia tập dữ liệu tư vấn dựa trên các thuộc tính cho kết quả tối ưu hóa tiêu chuẩn.
- Xác định cách phân chia tập dữ liệu tư vấn.
- Dựa trên độ đo sự đồng nhất của các thuộc tính.
- Tất cả các mẫu trong một nút thuộc cùng một lớp quyết định.
- Không còn thuộc tính nào có thể dùng để phân chia dữ liệu tư vấn.
- Không còn lại mẫu nào tại nút.
+ Cách phân chia dữ liệu tư vấn :
- Tiêu chuẩn phân chia: Tạo ra các nhóm sao cho một lớp chiếm ưu thế trong từng nhóm.
- Chọn thuộc tính có độ đo tốt nhất, có lợi cho việc tư vấn phân loại laptop.
+ Độ đo để đánh giá chất lượng phân chia là độ đo sự đồng nhất:
Các kiểu cây quyết định
Cây hồi quy là một phương pháp được sử dụng để ước lượng các giá trị mục tiêu dạng số thực, như giá cả của laptop dựa trên các thông số kỹ thuật như RAM, CPU và dung lượng ổ cứng Phương pháp này thích hợp cho các bài toán dự đoán giá trị số thay vì phân loại.
Cây phân loại là công cụ hữu ích khi biến mục tiêu là biến phân loại, như trong việc tư vấn laptop theo các tiêu chí như hệ điều hành (Windows, macOS, Linux) hoặc nhu cầu sử dụng (làm việc văn phòng, chơi game, đồ họa) Phương pháp này phân chia dữ liệu dựa trên các quyết định, giúp người dùng dễ dàng lựa chọn sản phẩm phù hợp với nhu cầu của mình.
“Có/Không” để xác định mục tiêu.
Xây dựng cây quyết định
Hệ chuyên gia tư vấn mua laptop sử dụng thuật toán cây quyết định ID3 kết hợp với phương pháp suy diễn tiến để cung cấp khuyến nghị phù hợp với nhu cầu người dùng Hệ thống thu thập thông tin từ người dùng về mục đích sử dụng như học tập, công việc hay chơi game, cùng với các thông số kỹ thuật như RAM, CPU, GPU và mức giá Dựa trên những dữ liệu này, hệ chuyên gia sẽ đưa ra danh sách laptop phù hợp, giúp người dùng dễ dàng hơn trong việc ra quyết định mua sắm.
Thuật toán ID3 là một phương pháp học máy được sử dụng để xây dựng cây quyết định, trong đó mỗi nút đại diện cho một thuộc tính như mục đích sử dụng, cấu hình, và giá cả Các nhánh của cây biểu thị các giá trị tương ứng của thuộc tính đó Mục tiêu chính của thuật toán này là xác định thuộc tính phân chia tốt nhất, tức là thuộc tính có độ lợi thông tin cao nhất, nhằm phân chia tập dữ liệu một cách hiệu quả, từ đó hỗ trợ hệ thống trong việc đưa ra quyết định chính xác.
Công thức tính độ lợi thông tin (Information Gain) của thuộc tính A đối với tập dữ liệu S được xác định như sau:
Entropy(S) là độ bất định của tập dữ liệu S
S v là tập con của S mà thuộc tính A có giá trị bằng v
Values(A) là tập các giá trị có thể có của thuộc tính A
| S | là số lượng phần tử trong S.
Thuật toán ID3 chọn thuộc tính có độ lợi thông tin cao nhất để làm nút phân chia Quá trình này tiếp tục với việc phân chia các nhánh con cho đến khi tất cả các phần tử trong tập dữ liệu thuộc về một lớp duy nhất hoặc không còn thuộc tính nào để phân chia.
2.6.3 Quy trình xây dựng cây quyết định với ID3
- Tạo nút gốc: Bắt đầu với cây và tạo nút gốc cho cây quyết định.
- Kiểm tra điều kiện dừng:
Nếu tất cả các mẫu trong tập dữ liệu D thuộc về một lớp (ví dụ, tất cả đều là
"laptop phù hợp"), gán nhãn cho nút gốc là lớp đó.
Nếu không còn thuộc tính nào để phân chia, gán nhãn cho nút gốc là nhãn phổ biến nhất trong tập dữ liệu D.
- Chọn thuộc tính phân chia tốt nhất: Sử dụng công thức độ lợi thông tin để chọn thuộc tính A ∗ có độ lợi thông tin lớn nhất.
- Tạo nhánh: Với mỗi giá trị a của thuộc tính A ∗ , thực hiện:
Tạo nhánh mới cho giá trị a.
Tạo tập con Da chứa các mẫu có giá trị A ∗ = a.
Nếu Da rỗng, gán nhãn phổ biến cho nhánh này.
Nếu Da không rỗng, tiếp tục xây dựng cây con cho nhánh này.
-Tiếp tục cho đến khi cây được xây dựng hoàn chỉnh.
2.6.4 Suy diễn tiến (Forward Chaining)
Hệ chuyên gia tư vấn mua laptop áp dụng phương pháp suy diễn tiến, bắt đầu từ các yêu cầu của người dùng và tiến tới các kết luận hợp lý Quá trình này bao gồm nhiều bước quan trọng để đảm bảo sự phù hợp và hiệu quả trong việc lựa chọn laptop.
Người dùng cần cung cấp thông tin đầu vào bao gồm mục đích sử dụng laptop, yêu cầu về cấu hình như RAM, CPU, GPU, ngân sách và các yếu tố khác như thương hiệu và thời gian sử dụng để nhận được sự tư vấn phù hợp.
Hệ thống sẽ sử dụng các giá trị thuộc tính mà người dùng cung cấp để duyệt qua các nút trong cây quyết định, nhằm xác định loại laptop phù hợp nhất với nhu cầu của người dùng.
Hệ thống sẽ đưa ra khuyến nghị cuối cùng về laptop tốt nhất sau khi xem xét tất cả các nhánh trong cây quyết định, dựa trên các yêu cầu và phân loại đã được xác định.
Nếu người dùng có ngân sách 20 triệu đồng và cần một laptop cho công việc đồ họa, cây quyết định sẽ hỏi về các yêu cầu như RAM, CPU, GPU và các thuộc tính khác để phân loại các laptop phù hợp.
Nếu ngân sách dưới 15 triệu đồng, hệ thống có thể gợi ý các laptop với cấu hình thấp hơn, không cần GPU rời.
Nếu người dùng yêu cầu GPU rời và RAM 16GB, cây quyết định sẽ phân loại các laptop cao cấp hơn trong phân khúc giá trên 15 triệu đồng Thuật giải ID3 được sử dụng để tạo ra cây quyết định, bắt đầu bằng việc tạo nút và xác định nhãn cho nút đó dựa trên các điều kiện của dữ liệu Nếu tất cả các yếu tố trong dữ liệu đều thuộc về một lớp, nhãn sẽ được gán là '+' Ngược lại, nếu tất cả đều thuộc lớp còn lại, nhãn sẽ là '-' Nếu không còn thuộc tính nào, cây sẽ trả về nhãn của lớp phổ biến nhất trong dữ liệu.
A_star = argmax(Attributes, lambda A: Gain(D, A)) for a in uniqueValues(D, A_star):
Da = {x for x in D if x[A_star] == a} if not Da: t_prime = createNode() label(t_prime) = mostCommonClass(D, Target) createEdge(t, a, t_prime) else: createEdge(t, a, ID3(Da, Attributes - {A_star}, Target)) return t
Áp dụng thuật toán vào chương trình
Để đơn giản hóa, chúng ta sẽ tập trung vào ba hệ điều hành phổ biến nhất hiện nay: Windows, Mac OS và Linux, được nhiều người sử dụng.
Sử dụng giải thuật ID3 để tạo cây quyết định
Tập hợp S là tập có 47 mẫu, trong đó có 27 mẫu thuộc lớp “Yes” và 20 mẫu thuộc lớp “ No”.
Vậy ta có : Entropy( S )= -(27/47)* log2(27/47) - (20/47)* log2(20/47 )
Tính độ lợi thông tin của các thuộc tính trong tập dữ liệu trong mẫu dựa vào thuật giải ID3 :
Entropy(Smiddle-aged) = - (7/15) log2(7/15) - (8/15) log2(8/15) = 0.997
→ Gain(S,Age) = Entropy(S) – (16/47)* Entropy(Syouth) – (15/47)* Entropy(Smiddle-aged) – (16/47)* Entropy(Ssenior)
→ Gain(S, Sex) = Entropy(S) – (26/47) * Entropy(Smale) – (21/47) * Entropy(Sfemale)
→ Gain(S, Income) = Entropy(S) – (15/47) * Entropy(Shigh) – (18/47)
→ Gain(S, Configuration) = Entropy(S) – (17/47) * Entropy(Shigh) – (17/47) * Entropy(Smedium) – (13/47) * Entropy(Slow)
→ Gain(S, Manufacturers) = Entropy(S) – (5/47) * Entropy(SSONY) – (13/47)
* Entropy(SAPPLE) – (9/47) * Entropy(SDELL) – (8/47) * Entropy(SASUS) – (3/47) *Entropy(SSAMSUNG) – (9/47) * Entropy(SHP)
Entropy(SMac OS) = - (7/14)* log2(7/14) – (7/14)* log2(7/14) = 1
→ Gain(S, OS) = Entropy(S) – (22/47) * Entropy(SWindows)
– (14/47) * Entropy(SMac OS) – (11/47) * Entropy(SLinux)
Trong các thuộc tính điều kiện trên ta thấy “OS” có độ lợi thông tin lớn nhất nên thuộc tính này sẽ được chọn làm gốc của cây.
Phân hoạch lần 2 : Nhánh OS = Windows
Trong nhánhOS= Windows, ta có:
Entropy(Smiddle-aged) = - (4/5)*log2(4/5) – (1/5)* log2(1/5) = 0.722
→ Gain(SWindows, Age) = Entropy(SWindows) – (8/22) * Entropy(Syouth) – (5/22) * Entropy(Smiddle-aged) – (9/22) * Entropy(Ssenior)
→ Gain(SWindows, Sex) = Entropy(SWindows) – (10/22) * Entropy(Smale) - (12/22) * Entropy(Sfemale)
→ Gain(SWindows, Income) = Entropy(SWindows) – (10/22) * Entropy(Shigh) – (7/22) * Entropy(Smedium) – (5/22) * Entropy(Slow)
→ Gain(SWindows, Configuration) = Entropy(SWindows) – (8/22) * Entropy(Shigh) – (8/22) * Entropy(Smedium) – (6/22) * Entropy(Slow)
→ Gain(SWindows, Manufacturers) = Entropy(SWindows) – (4/22) * Entropy(SSONY) – (4/22) * Entropy(SHP) – (8/22) * Entropy(SDELL) – (5/22) * Entropy(SASUS) – (1/22) * Entropy(SSAMSUNG)
Trong các thuộc tính điều kiện trên ta thấy “Configuration” có độ lợi thông tin lớn nhất nên thuộc tính này sẽ được chọn làm gốc.
Bây giờ ta tiếp tục xét lần lượt từng nhánh trong Configuration.
Phân hoạch lần 2: Nhánh Configuration = high
Trong nhánh Configuration = high, ta có:
Entropy(Smiddle-aged) = - (1/2)* log2(1/2) – (1/2)* log2(1/2) = 1
→ Gain(Shigh, Age) = Entropy(Shigh) – (4/8) * Entropy(Syouth) – (2/8) * Entropy(Smiddle-aged) – (2/8) * Entropy(Ssenior)
→ Gain(Shigh, Sex) = Entropy(Shigh) – (3/8) * Entropy(Smale) –
→ Gain(Shigh, Income) = Entropy(Shigh) – (4/8) * Entropy(Shigh) – (2/8) * Entropy(Smedium) – (2/8) * Entropy(Slow)
→ Gain(Shigh, Manufacturers) = Entropy(Shigh) –
(1/8) * Entropy(SSONY) – (3/8) * Entropy(SDELL) – (3/8) * Entropy(SASUS) – (1/8) * Entropy(SSAMSUNG)
Trong các thuộc tính điều kiện trên ta thấy Income có độ lợi thông tin lớn nhất nên thuộc tính này được chọn làm gốc.
Bây giờ ta tiếp tục xét từng nhánh trong Income.
Phân hoạch lần 3: Nhánh Income = high
Trong nhánh Incom= High, Shigh = {1, 6, 33, 43}.
Entropy(Smiddle-aged) = - (1/1)* log2(1/1) = 0(YES)
→ Gain(Shigh, Age) = Entropy(Shigh) – (2/4) * Entropy(Syouth) – (1/4) * Entropy(Smiddle-aged) – (1/4) * Entropy(Ssenior) = 0.811 – (2/4) * 1 – (1/4) * 0 – (1/4) * 0= 0.311
→ Gain(Shigh, Sex) = Entropy(Shigh) – (2/4) * Entropy(Smale) - (2/4) * Entropy(Sfemale) = 0.811 – (2/4) * 0 – (2/4) * 1= 0.311
→ Gain(Shigh, Manufacturers) = Entropy(Shigh) – (1/4) * Entropy(SSONY) – (2/4) * Entropy(SDELL) – (1/4) * Entropy(SASUS)
Cả 3 thuộc tính trên đều có độ lợi thông tin bằng nhau nên ta chọn 1 trong 3 thuộc tính để làm gốc Chọn thuộc tính “Age”làm gốc.
Bây giờ ta tiếp tục xét từng nhánh trong Age:
Phân hoạch lần 4: Nhánh Age = middle- age
Do Entropy(Smiddle-age) = 0 nên nhánh dừng.
Do Entropy(Ssenior) = 0 nên nhánh dừng.
→Gain(Syouth, Sex) = Entropy(Syouth) – (1/2)*Entropy(Sfemale)
→Gain(Syouth, Manufacturers) = Entropy(Syouth) – (1/2)* Entropy(SSONY) – (1/2)*Entropy(SDELL) = 1 – (1/2) * 0– (1/2) * 0= 1
Do thuộc tính“Sex” và“Manufacturers”có độ lợi thông tin bằng nhau nên chọn Sex làm gốc.
Ta tiếp tục xét từng nhánh trong Sex:
Do Entropy(Smale) = 0 nên nhánh dừng.
Do Entropy(Sfemale) = 0 nên nhánh dừng.
Do Entropy(Smedium) = 0 nên nhánh dừng
Do Entropy(Slow) = 0 nên nhánh dừng
→ Gain(Smedium, Age) = Entropy(Smedium) – (3/8) * Entropy(Syouth) – (1/8) * Entropy(Smiddle-aged) – (4/8) * Entropy(Ssenior)
→ Gain(Smedium, Sex) = Entropy(Smedium) – (3/8) * Entropy(Smale) – (5/8) * Entropy(Sfemale)
→Gain(Smedium, Income)=Entropy(Smedium)– (4/8) * Entropy(Shigh) – (2/8) * Entropy(Smedium) – (2/8) * Entropy(Slow)
→ Gain(Smedium, Manufacturers) = Entropy(Smedium) –
(2/8) * Entropy(SSONY) – (2/8) * Entropy(SDELL) – (1/8) * Entropy(SASUS) – (3/8) * Entropy(SHP)
Trong các thuộc tính điều kiện trên ta thấy “Age” có độ lợi thông tin lớn nhất nên thuộc tính này được chọn làm gốc.
Bây giờ ta tiếp tục xét từng nhánh trong Age.
Do Entropy(Syouth) = 0 nên nhánh dừng
Do Entropy(Smiddle-aged) = 0 nên nhánh dừng
→ Gain(Ssenior, Sex) = Entropy(Ssenior) – (2/4) * Entropy(Smale) – (2/4) * Entropy(Sfemale)
→ Gain(Ssenior, Income) = Entropy(Ssenior) – (2/4) * Entropy(Shigh) – (1/4) * Entropy(Smedium) – (1/4) * Entropy(Slow)
→ Gain(Ssenior, Manufacturers) = Entropy(Ssenior) – (2/4) * Entropy(SSONY) – (2/4) * Entropy(SHP)
Trong các thuộc tính điều kiện trên ta thấy “Sex” có độ lợi thông tin lớn nhất nên thuộc tính này được chọn làm gốc.
Do Entropy(Smale) = 0 nên nhánh dừng
Do Entropy(Sfemale) = 0 nên nhánh dừng
Do Entropy(Slow) = 0 nên nhánh dừng.
Nhánh Windows đã hoàn thành và sinh ra cây quyết định:
Tập luật sinh cho nhánh Windows:
Rule 1: IF OS = Windows AND Configuration = high AND Income = low THEN Buy = No
Rule 2: IF OS = Windows AND Configuration = high AND Income medium THEN Buy = No
Rule 3: IF OS = Windows AND Configuration = high AND Income = high AND Age = middle-age THEN Buy = Yes
Rule 4: IF OS = Windows AND Configuration = high AND Income = high AND Age = senior THEN Buy = Yes
Rule 5: IF OS = Windows AND Configuration = high AND Income = high AND Age = youth AND Sex = male THEN Buy = Yes
Rule 6: IF OS = Windows AND Configuration = high AND Income = high AND Age = youth AND Sex = female THEN Buy = No
Rule 7: IF OS = Windows AND Configuration = low THEN Buy = Yes
Rule 8: IF OS = Windows AND Configuration = medium AND Age = youth THEN Buy = Yes
Rule 9: IF OS = Windows AND Configuration = medium AND Age middle –age THEN Buy = Yes
Rule 10: IF OS = Windows AND Configuration = medium AND Age senior AND Sex = male THEN Buy = Yes
Rule 11: IF OS = Windows AND Configuration = medium AND Age senior AND Sex = female THEN Buy = No
CÀI ĐẶT
Công nghệ sử dụng
Chương trình TuVanMuaLapTop được phát triển bằng ngôn ngữ C# và sử dụng SQL Server để lưu trữ dữ liệu, bao gồm tập dữ liệu huấn luyện và các tập luật sinh ra Ưu điểm của chương trình này là khả năng quản lý dữ liệu hiệu quả và hỗ trợ người dùng trong việc lựa chọn laptop phù hợp.
- Có khả năng tự động tính toán và sinh ra cây quyết định, từ đó tự động sinh ra tập luật để tự đưa ra câu trả lời.
- Linh hoạt khi thay đổi tập dữ liệu huấn luyện.
- Gọn nhẹ, dễ dàng sử dụng.
- Dễ hiểu, cây quyết định sẽ tự mở nhánh theo câu trả lời của người dùng. Nhược điểm:
Máy tính cần cài đặt Net Framework và SQL server để có thể chạy chương trình.
Cơ sở dữ liệu
Dữ liệu gồm 2 bảng chính:
+ Stt: Số thứ tự + Configuration: Cấu hình
+ Age: Tuổi + Manufacturers: Nhà sản xuất
+ Sex: Giới tính + Os: Hệ điều hành
+Income: Thu nhập + Buy: Mua
+ Stt: Số thứ tự + Configuration: Cấu hình
+ Age: Tuổi + Manufacturers: Nhà sản xuất
+ Sex: Giới tính + Os: Hệ điều hành
+Income: Thu nhập + Buy: Mua