3.3.1 Khái niệm
Weka là một bộ phần mềm mã nguồn mở miễn phí khai thác dữ liệu, được xây dựng bằng ngơn ngữ lập trình Java, theo kiến trúc hướng đối tượng, được tổ chức thành thư viện phục vụ cho lĩnh vực học máy và khai phá dữ liệu.
Weka là phần mềm thuộc dự án phát triển của Đại học Waikato, New Zealand, nĩ là tên viết tắt của Waikato Environment for Knowledge Analysis. Ngồi khuơn khổ trường đại học, Weka được phát âm vần điệu với Mecca, đây là một lồi chim khơng bay với bản chất tị mị chỉ tìm thấy trên các đảo ở New Zealand, đồng thời, lồi chim này cũng chính là biểu tượng cho phần mềm Weka.
Weka cung cấp các thuật tốn học tập mà bạn cĩ thể dễ dàng áp dụng cho các bộ dữ liệu (dataset). Nĩ cũng bao gồm một loạt các cơng cụ để chuyển đổi các bộ dữ liệu như các thuật tốn để phân loại và lấy mẫu mà khơng cần phải viết bất kỳ mã chương trình nào.
Theo KDNuggets (2005) đánh giá, Weka là sản phẩm khai thác dữ liệu được sử dụng nhiều nhất, nổi bật và hiệu quả nhất năm 2005.
Weka chứa một bộ sưu tập các cơng cụ trực quan và các thuật tốn để phân tích dữ liệu cũng như lập các mơ hình dự đốn, cùng với các giao diện người dung đồ họa để dễ dàng truy cập các chức năng này.
3.3.2 Ưu điểm của Weka
Phần mềm mã nguồn mở Weka bắt đầu phát triển mạnh mẽ vào năm 1997 và được sử dụng trong nhiều lĩnh vực ứng dụng khác nhau, đặc biệt cho mục đích giáo dục và nghiên cứu bởi những ưu điểm sau:
Tính khả dụng miễn phí theo Giấy phép Cơng cộng GNU (giấy phép cung cấp bản quyền phần mềm miễn phí, đảm bảo cho người dùng được tự do chạy, nghiên cứu, chia sẻ và thay đổi phần mềm).
Được thực hiện bởi ngơn ngữ lập trình Java nên Weka cĩ tính di động khi nĩ chạy được trên hầu hết bất kỳ nền tảng điện tốn hiện đại nào đã được thử nghiệm như Linux, Windows hay hệ điều hành Macintosh.
Tổng hợp tồn diện các kỹ thuật tiền xử lý và mơ hình hĩa dữ liệu.
Giao diện đồ họa giúp người dùng dễ sử dụng.
Weka hỗ trợ một số nhiệm vụ khai thác dữ liệu tiêu chuẩn, cụ thể hơn là xử lý trước dữ liệu, phân cụm, phân loại, hồi quy, trực quan hĩa và lựa chọn tính năng. Tất cả các kỹ thuật của Weka được dựa trên giả định rằng dữ liệu cĩ sẵn dưới dạng một tệp phẳng hoặc quan hệ, trong đĩ mỗi điểm dữ liệu được mơ tả bằng một số thuộc tính cố định (thơng thường là thuộc tính số hoặc danh nghĩa, nhưng một số loại thuộc tính khác cũng được hỗ trợ). Weka cung cấp quyền truy cập vào cơ sở dữ liệu SQL bằng cách sử dụng Java Database Connectivity và cĩ thể xử lý kết quả được trả về bởi truy vấn cơ sở dữ liệu.
3.3.3 Những tính năng vượt trội của Weka
Như đã nĩi ở trên, Weka được đánh giá là sản phẩm khai thác dữ liệu nổi bật là bởi những tính năng đặc biệt sau:
- Hỗ trợ nhiều thuật tốn máy học và khai phá dữ liệu
- Được tổ chức theo dạng mã nguồn mở để người dùng dễ dàng download và sử dụng
- Độc lập với mơi trường do sử dụng các máy ảo Java (JVM –Java virtual machine)
- Dễ sử dụng, kiến trúc dạng thư viện dễ dàng cho việc xây dựng các ứng dụng thực nghiệm
-Giao diện đồ họa (gồm cả tính năng hiển thị hĩa dữ liệu)
- Mơi trường cho phép so sánh các giải thuật học máy và khai phá dữ liệu.
3.3.4 Kiến trúc thư viện Weka
Để thuận tiện cho việc sử dụng của người dùng, kiến trúc thư viện của Weka được xây dựng với hơn 600 lớp và được tổ chức thành 10 gĩi (package), trong đĩ, mỗi package sẽ thực hiện một nhiệm vụ chức năng riêng biệt trong quá trình khai thác dữ liệu. Để người dùng cĩ thể tự xây dựng ứng dụng của bản thân mình thì người dùng cĩ thể trực tiếp sử dụng những package này để xây dựng các chương trình.
Weka cĩ một số lượng lớn các cơng cụ hồi quy và phân loại. Các gĩi bản địa là các gĩi được bao gồm trong phần mềm Weka thực thi, trong khi các gĩi khơng phải gốc khác cĩ thể được tải xuống và sử dụng trong mơi trường R. Weka. Trong số các gĩi bản địa, cơng cụ nổi tiếng nhất là gĩi cây mơ hình M5p. Một số cơng cụ hồi quy phổ biến là:
M5Rules (thuật tốn M5' được trình bày dưới dạng hàm tốn học khơng cĩ cây)
DecisionStump (giống như M5' nhưng với một đầu ra số duy nhất trong mỗi nút)
M5P (tách miền thành các vùng nhị phân kế tiếp và sau đĩ phù hợp với các mơ hình tuyến tính cho mỗi nút cây)
RandomForest (một số cây mơ hình kết hợp)
RepTree (một số cây mơ hình kết hợp)
ZeroR (giá trị trung bình của kết quả đầu ra)
DecisionRules (chia tách dữ liệu thành nhiều vùng dựa trên một biến độc lập và cung cấp một giá trị đầu ra cho mỗi phạm vi)
LinearRegression
Sự hồi quy vector hỗ trợ
SimpleLinearRegression (sử dụng một biến chặn và chỉ 1 biến đầu vào cho dữ liệu đa biến)
MultiLayerPerceptron (mạng nơron)
3.3.5 Các mơi trường chức năng chính của Weka
Hình 3. 3: mơi trường chính của Weka
Bảng 5: ý nghĩa các mơi trường chính trên Weka 3.8.4
Mơi trường Mơ tả
Explorer là ứng dụng con cho phép thực nghiệm các nhiệm vụ khai thác dữ liệu thường gặp như: Tiền xử lý dữ liệu, Khai thác luật kết hợp, Phân lớp và Gom nhĩm
Experimenter Mơi trường cho phép tiến hành các thí nghiệm và thực hiện các kiểm tra thống kê (statistical tests) giữa các mơ hình học máy
KnowledgeFlow Mơi trường cho phép bạn tương tác đồ họa kiểu kéo/thả để thiết kế các bước (các thành phần) của một thí nghiệm
Workbench được coi là ứng dụng tất cả trong một, Workbench là ứng dụng kết hợp tất cả các ứng dụng ở bên trong nĩ.
Simple CLI cung cấp giao diện dịng lệnh để thực thi Weka, tính năng này tương tự như cửa sổ Command Prompt của Windows, nĩ hỗ trợ cho các hệ điều hành khơng cĩ chức năng của các cửa sổ dịng lệnh, SimpleCLI sẽ thực thi trực tiếp các lệnh của Weka mà khơng cần thơng qua giao diện.
Mơi trường trên thì mơi trường Explorer là mơi trường được sử dụng nhiều nhất. Trong Explorer cĩ các chức năng chính là:
Bảng 6: ý nghĩa các mơi trường Explorer trên Weka 3.8.4
Mơi trường Mơ tả
Preprocess Để chọn và thay đổi (xử lý) dữ liệu làm việc
Classify Để huấn luyện và kiểm tra các mơ hình học máy (phân lớp, hoặc hồi quy/dự đốn)
Cluster Để học các nhĩm từ dữ liệu (phân cụm) Associate: Để khám phá các luật kết hợp từ dữ liệu
Select attributes Để xác định và lựa chọn các thuộc tính liên quan (quan trọng) nhất của dữ liệu
Visualize Để xem (hiển thị) biểu đồ tương tác 2 chiều đối với dữ liệu
3.3.6 Định dạng dữ liệu của weka
Weka hỗ trợ khá nhiều định dạng như:
ARFF: *.arff
CVS files: *.cvs
C4.5 files: *.name, *.data
XRFF files: *.xrff
Trong đĩ, ARFF là định dạng chính được sử dụng phổ biến nhất trong Weka. ARFF là định dạng được sử dụng chính trong Weka, được biểu diễn dưới một dạng file text cĩ thể đọc được một cách đơn giản bằng các chương trình như notepad… mà khơng cần phải cĩ chương trình chuyên dụng. Các dữ liệu trong file là giá trị thuộc tính của các thể hiện (instance) cĩ chung tập hợp các thuộc tính. ARFF dễ thao tác và dễ hiểu, người dùng cĩ thể tự tạo cho mình một file ARFF khi hiểu về những quy định chuẩn của nĩ. Tuy nhiên, vì là định dạng chuyên dụng cho mỗi chương trình Weka nên những ứng dụng khác khơng thể đọc được nĩ. Do đĩ, khi sử dụng kết hợp Weka với các chương trình khác thì người dung buộc phải xây dựng các module để chuyển kiểu dữ liệu từ ARFF sang kiểu dữ liệu tương ứng với chương trình đĩ. Cấu trúc tập tin *.ARFF bao gồm các thành phần:
Data: gồm nhiều dịng, mỗi dịng thể hiện giá trị của các thuộc tính cho một mẫu.
% Title: Iris Plants Database @RELATION iris
@ATTRIBUTE sepallength REAL @ATTRIBUTE sepalwidth REAL @ATTRIBUTE petallength REAL @ATTRIBUTE petalwidth REAL
@ATTRIBUTE class {Iris-setosa,Iris-versicolor,Iris virginica}
@DATA 5.1,3.5,1.4,0.2,Iris-setosa 4.9,3.0,1.4,0.2,Iris-setosa 4.7,3.2,1.3,0.2,Iris-setosa 4.6,3.1,1.5,0.2,Iris-setosa 5.0,3.6,1.4,0.2,Iris-setosa
Các kiểu dữ liệu được hỗ trợ trong ARFF bao gồm: - numeric: là kiểu dữ liệu số, gồm real và integer - nominal: là kiểu dữ liệu danh sách.
- string: là kiểu dữ liệu dạng chuỗi
- date: kiểu dữ liệu thời gian (ngày tháng năm, giờ phút giây…)
3.4. Áp dụng các thuật tốn Naive Bayes, RandomForest và KNN trong phân lớp dự đốn hoa Iris lớp dự đốn hoa Iris
Trong luân văn này, ta sẽ áp dụng các phương pháp phân lớp (classification) lên tập dữ liệu hoa Iris. Các thuật tốn được sử dụng gồm: Naive Bayes, RandomForest, và K-Nearest neighbor.
Mơ hình phân lớp dự đốn đề xuất trong đề tài này được hiển thị chi tiết qua hình dưới đây:
Chú thích Tên của tập dữ liệu
instances
Tên thuộc tính
Hình 3. 4 : Sơ đồ tổng thể Mơ hình phân lớp dự đốn hoa Iris trong luận văn
3.4.1 Áp dụng thuật tốn Naive Bayes trong phân lớp dự đốn hoa Iris
Kịch bản 1: thực nghiệm huấn luyện trong chế độ phân lớp Percentage split
để xác định tỉ lệ phân chia, Trong tập dữ liệu trên ta chia tập train (luyện tập) và tập test (kiểm chứng) theo nguyên tắc như sau:
- Tập luyện tập: Là tập chứa 66% số liệu của bộ dữ liệu đầu vào.
- Tập kiểm chứng: Là tập chứa 34% số liệu của bộ dữ liệu đầu vào cịn lại. 1) Nhấp vào nút “Choose” Lựa chọn và chọn Tập tin “Nạve Bayes” trực tuyến
trong nhĩm “Bay Bayes”.
Hình 3. 5:Cấu hình tham số cho thuật tốn Naive Bayes
Theo mặc định, một phân phối Gaussian được giả sử cho từng thuộc tính số. Các phân phối này cĩ thể thay đổi thuật tốn để sử dụng cơng cụ ước tính Kernel với đối số sử dụng Kernel Estimator cĩ thể phù hợp hơn với phân phối thực tế của các thuộc tính trong tập dữ liệu của bạn. Tuy nhiên, các thơng số này cĩ thể tự động chuyển đổi các thuộc tính số thành thuộc tính danh nghĩa với tham số sử dụng Supervised Discretization.
3) Nhấn vào “Ok” đây để đĩng cấu hình thuật tốn.
4) Ta chọn thuộc tính phân lớp là “class”, chọn các Classifer tương ứng, sau đĩ bấm Start để tiến hành xây dựng mơ hình và đánh giá độ chính xác. Sau chạy thuật tốn trên bộ dữ liệu Iris. Cĩ thể thấy rằng với cấu hình mặc định, thuật tốn Nạve Bayes đạt được độ chính xác 94.1176%.
Hình 3. 6: Kết quả phân lớp dữ liệu cho thuật tốn Naive Bayes Tập luyện tập 66% (Tập kiểm chứng 34%)
Kết quả:
- Tỷ lệ phân lớp đúng là 94.1176% (48 mẫu)
- Tỷ lệ phân lớp sai là 5.8824% (3 mẫu)
- Mức độ chính của bộ phân lớp đối với mỗi lớp a (Iris-setosa), lớp b (Iris- versicolor) và lớp c (Iris-virginica) là:
- Ma trận Confusion thể hiện các mẫu Iris-setosa (a) phân đúng là 15, phân sai là 0. mẫu Iris-versicolor (b) phân đúng là 18, phân sai là 1 và Iris-virginica phân đúng là 15, phân sai là 2.
- Kịch bản 2: thực nghiệm huấn luyện trong chế độ phân Cross-validation. Tập dữ
liệu sẽ được chia đều k tập (folds) cĩ kích thước xấp xỉ nhau, và bộ phân loại học được sẽ được dánh giá bởi phướng pháp cross-validation. Trong thực nghiệm này tơi xác định chọn fold=10, để đạt hiệu quả phân lớp như sau:
Sau chạy thuật tốn trên bộ dữ liệu Iris. Cĩ thể thấy rằng với cấu hình mặc định, thuật tốn cây quyết định đạt được độ chính xác 96%.
Hình 3. 7:Kết quả phân lớp dữ liệu cho thuật tốn Naive Bayes chia tập dữ liệu thành 10 phần (chọn fold=10)
Kết quả:
- Tỷ lệ phân lớp đúng là 96% (144 mẫu)
- Tỷ lệ phân lớp sai là 4% (6 mẫu)
- Ma trận Confusion thể hiện các mẫu Iris-setosa (a) phân đúng là 50, phân sai là 0. mẫu Iris-versicolor (b) phân đúng là 48, phân sai là 2 và Iris-virginica phân đúng là 46, phân sai là 4.
3.4.2 Áp dụng thuật tốn RandomForest trong phân lớp dự đốn hoa Iris
Random Forest (rừng ngẫu nhiên). Là một phương pháp phân lớp và hồi quy dựa trên việc kết hợp kết quả dự đốn của một số lượng lớn các cây quyết định. chúng ta cĩ thể liên tưởng tới việc bầu cử theo nguyên tắc phổ thơng đầu phiếu. Nếu sử dụng một cây quyết định chẳng khác nào việc bầu cử mà chỉ cĩ 1 người bỏ phiếu. Việc sinh các cây quyết định từ một mẫu dữ liệu nhằm đa dạng hố các “phiếu bầu” (giống như việc mọi thành phần, tầng lớp, giai cấp đều được đi bỏ phiếu) cho kết luận. Việc
áp dụng các kỹ thuật sinh ra các mẫu dữ liệu hay việc lựa chọn rẽ nhánh ngẫu nhiên sẽ tạo ra các cây “dị tật” trong rừng (giống việc cho phép cơng dân khơng cần phân biệt trình độ học vấn, sức khỏe... đi bầu cử). Càng nhiều loại hình, càng nhiều phiếu bầu sẽ cung cấp cho chúng ta cái nhìn đa chiều, chi tiết hơn và do đĩ kết luận sẽ cĩ tính chính xác, gần với thực tế hơn. Trong thực tế RF đã trở thành một cơng cụ tin cậy cho phân tích dữ liệu đặc biệt là dữ liệu tin sinh học.
Chọn thuật tốn Ramdomforest:
1) Nhấp vào nút “Choose” và chọn “Ramdomforest” trong nhĩm “Trees”. 2) Nhấp vào tên của thuật tốn để xem lại cấu hình thuật tốn.
3) Sau đĩ nhấn vào “Ok” đây để đĩng cấu hình thuật tốn.
4) Ta chọn thuộc tính phân lớp là “class”, chọn các Classifer tương ứng, sau đĩ bấm Start để tiến hành xây dựng mơ hình và đánh giá độ chính xác. Sau chạy thuật tốn trên bộ dữ liệu Iris. Cĩ thể thấy rằng với cấu hình mặc định, thuật tốn Ramdomforest đạt được độ chính xác 96%
Hình 3. 9: Kết quả phân lớp dữ liệu cho thuật tốn Ramdomforest Tập luyện tập 66% (Tập kiểm chứng 34%)
Kết quả:
- Tỷ lệ phân lớp đúng là 96.0784% (49 mẫu)
Hình 3. 10:Kết quả phân lớp dữ liệu cho thuật tốn Ramdomforest chia tập dữ liệu thành 10 phần (chọn fold=10)
Kết quả:
- Tỷ lệ phân lớp đúng là 95.3333% (143 mẫu)
- Tỷ lệ phân lớp sai là 4.6667% (7 mẫu)
3.4.3 Áp dụng thuật tốn KNN trong phân lớp dự đốn hoa Iris
Thuật tốn hỗ trợ cả phân lớp và hồi quy. Nĩ cũng được gọi là KNN cho ngắn gọn. Nĩ hoạt động bằng cách lưu trữ tồn bộ tập dữ liệu huấn luyện và truy vấn nĩ để xác định vị trí của các mẫu đào tạo tương tự nhất khi đưa ra dự đốn. Như vậy, khơng cĩ mơ hình nào ngồi tập dữ liệu huấn luyện thơ và phép tính duy nhất được thực hiện là truy vấn bộ dữ liệu huấn luyện khi yêu cầu dự đốn.
Chọn thuật tốn k-Nearest Neighbors:
1) Nhấp vào nút “Choose” và chọn “IBk” trong nhĩm “Lazy”. 2) Nhấp vào tên của thuật tốn để xem lại cấu hình thuật tốn.
Hình 3. 11:Cấu hình tham số cho thuật tốn k-Nearest Neighbors
Theo hình 3.11 cấu hình Weka cho thuật tốn k-Neares Neighbors chúng ta được xác định giá trị tham số K (số láng giềng gần nhất) K=3 và dùng khoảng cách Euclidean để tính khoảng cách giữa các trường hợp, điều này tốt cho dữ liệu số cĩ cùng tỷ lệ. Khoảng cách Manhattan là tốt để sử dụng nếu thuộc tính của bạn khác nhau về các biện pháp hoặc loại.
3)Sau đĩ nhấn vào “Ok” đây để đĩng cấu hình thuật tốn.
4)Ta chọn thuộc tính phân lớp là “class”, chọn các Classifer tương ứng, sau đĩ bấm Start để tiến hành xây dựng mơ hình và đánh giá độ chính xác. Sau chạy thuật tốn trên bộ dữ liệu Iris. Cĩ thể thấy rằng với cấu hình mặc định, thuật tốn KNN đạt được độ chính xác 96%.
Hình 3. 12: Kết quả phân lớp dữ liệu cho thuật tốn K-NN Tập luyện tập 66% (Tập