5 Kết luận
3.7 Ví dụ về cây quyết định
Để phân lớp mẫu dữ liệu chưa biết, giá trị các thuộc tính của mẫu được đưa vào kiểm tra trên cây quyết định. Mỗi mẫu tương ứng có một đường đi từ gốc đến lá và lá biểu diễn dự đoán giá trị phân lớp mẫu đó.
Tóm lại, 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ây quyế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 (unseen data).
Quá trình xây dựng cây quyết định gồm hai giai đoạn:
• Giai đoạn thứ nhất phát triển cây quyết định: Giai đoạn này phát triển bắt đầu từ gốc, đến từng nhánh và phát triển quy nạp theo cách thức chia để trị cho tới khi đạt được cây quyết định với tất cả các lá được gán nhãn lớp.
• Giai đoạn thứ hai cắt, tỉa bớt các cành nhánh trên cây quyết định. Giai đoạn này nhằm mục đích đơn giản hóa và khái quát hóa từ đó làm tăng
độ chính xác của cây quyết định bằng cách loại bỏ sự phụ thuộc vào mức độ lỗi (noise) của dữ liệu đào tạo mang tính chất thống kê, hay những sự biến đổi mà có thể là đặc tính riêng biệt của dữ liệu đào tạo. Giai đoạn này chỉ truy cập dữ liệu trên cây quyết định đã được phát triển trong giai đoạn trước.
Thuộc tính được lựa chọn cho cây quyết định là thuộc tính có lợi nhất cho quá trình phân lớp (tạo ra cây nhỏ nhất). Người ta thường sử dụng 2 độ đo để lựa chọn thuộc tính: độ lợi thông tin (Information gain) và chỉ số Gini (Gini index).
Độ lợi thông tin
Cho tập dữ liệuS gồm có s mẫu dữ liệu, gọi si (i= 1, ..., m) là số các mẫu của S nằm trong lớp Ci. Để quyết định một mẫu thuộc về lớp nào, ở đây ta sử dụng khái niệm entropy thông tin hay Shannon entropy[13]. Khối lượng thông tin cần thiết để quyết định một mẫu thuộc về lớp nào trong lớp Ci:
Information(s1, s2, ..., sm) =Entropy(S) = − m X i=1 si s log2 si s (3.20)
Thuộc tính A có các giá trịa1, a2, ..., an, ta sử dụng thuộc tính A để phân chia tập huấn luyện thành ntập con (phân lớp) S1, S2, ..., Sj, ..., Sn, gọisij (i= 1, ..., m, j = 1, ..., n) là số mẫu của lớp Ci thuộc tập con Sj(A =aj). Entropy của thuộc tính A: Information(A) = − n X j=1 s1j+...+smj s Information(s1j, ..., smj) (3.21)
Độ lợi thông tin dựa trên phân nhánh bằng thuộc tính A là:
Gain(A) =Information(s1, s2, ..., sm)−Information(A) (3.22) Tại mỗi cấp, ta chọn thuộc tính có độ lợi Gain lớn nhất để phân nhánh cây hiện tại.
Chỉ số Gini
Chỉ số Gini dựa vào việc bình phương các xác suất thành viên cho mỗi lớp Ci trong nút. Giá trị của nó tiến đến cực tiểu (bằng 0) khi mọi trường hợp trong nút rơi vào một thể loại đích duy nhất. Chỉ số Gini của nútt được tính như sau:
Gini(t) = 1−X
j
p2jt (3.23)
trong đó, pjt là tần xuất của lớp j trong nút t.
Khi phân chia nút p thành k nhánh, chất lượng của phép chia được tính bằng:
Ginichia = 1− k X i=1 ni n Gini(i) (3.24)
trong đó, ni là số mẫu trong nút i, n là số mẫu trong nút p.
Tại mỗi cấp, chúng ta chọn thuộc tính có chỉ số Gini nhỏ nhất để phân nhánh cây hiện tại.
3.3 Một số công cụ trí tuệ nhân tạo khác
Hiện nay, các công cụ trí tuệ nhân tạo đang có bước phát triển rất mạnh mẽ. Những năm gần đây chứng kiến sự phát triển vượt bậc về tính chính xác của các giải thuật máy học. Một số ví dụ điển hình có thể kể đến như các tiến bộ về nhận dạng giọng nói, tự động nhận dạng mặt người. Song song với sự phát triển mạnh mẽ của công nghệ phần cứng và nền tảng điện toán đám mây, các bước tiến mới trong những lĩnh vực này đã và đang tạo nên những phát triển rất nhanh về ứng dụng công nghệ trí tuệ nhân tạo trong khoa học, kỹ thuật và đời sống.
Các hãng công nghệ lớn trên thế giới hiện nay như Google, Amazon, Microsoft đều đang cạnh tranh trong lĩnh vực tạo ra các dịch vụ dựa trên tính toán lưới, điện toán đám mây và trí tuệ nhân tạo. Trong khuôn khổ luận văn này, tác giả cũng trình bày một số thử nghiệm tính toán với các công cụ trí tuệ nhân tạo của hãng Microsoft, với tên gọi Azure Machine Learning 1.
Hãng Microsoft cho phép người sử dụng thử nghiệm các công cụ trí tuệ nhân tạo mới nhất của hãng thông qua giao diện WEB MS AzurePortal. Khâu tính toán của các công cụ trí tuệ nhân tạo được dựa trên nền tảng điện toán đám mây. Giao diện chính của MS Azure Portal được minh họa trên hình 3.8 dưới đây. Các thành phần chính của sơ đồ tính toán bao gồm:
• Khối dữ liệu đầu vào: Đây có thể là dữ liệu do người dùng tự tải (upload) lên, phục vụ quá trình huấn luyện. Mặt khác Microsoft cũng hỗ trợ việc kết nối các cơ sở dữ liệu online nếu có qua các mô đun đầu vào phù hợp.
• Khối tiền xử lý số liệu: Trên hình 3.8, khối này được biểu diễn bằng khối "Excecute Python Script". Đây là khối cho phép người sử dụng tự viết chương trình con xử lý số liệu, nhằm loại bỏ các cột không cần thiết, hoặc tiến hành các chỉnh sửa theo ý muốn. Microsoft hỗ trợ hai ngôn ngữ cho việc tiền xử lý số liệu là Python và R.
• Khối Split: Là khối chức năng cho phép chia bộ số liệu một cách ngẫu nhiên thành hai phần. Một phần sẽ được dùng để phục vụ huấn luyện các công cụ trí tuệ nhân tạo, phần còn lại sẽ được sử dụng để kiểm tra sự làm việc của mạng sau khi huấn luyện.
• Khối Train Model: Là khối thực hiện quá trình huấn luyện công cụ trí tuệ nhân tạo được lựa chọn, theo thuật toán phù hợp. Khối này cần nhận thông tin là cấu trúc của công cụ trí tuệ nhân tạo. Hiện nay hãng Microsoft hỗ trợ rất nhiều công cụ trí tuệ nhân tạo như: Mạng nơ ron, mạng SVM, cây quyết định, v.v.
• Khối Score Model: Là khối đánh giá đầu ra của số liệu kiểm tra và kiểm tra độ chính xác của chúng.
• Khối Evaluate Model. Dựa trên thông tin của khối Score Model, khối này cho phép người dùng có những đánh giá định lượng về mức độ chính xác của công cụ được sử dụng như: Phần trăm dự báo chính xác, phần trăm cảnh báo sai (False Alarm), và phần trăm bỏ qua sự cố nguy hiểm (False Dismissal).