Chương 1: Giới thiệu về Weka. Khai phá dữ liệu là một ngành khoa học thực nghiệm.Weka workbench là tập hợp về trạng thái của các máy học và công cụ tiền xử lý dữ liệu. Nó bao gồm hầu như tất cả giải thuật trong quyển sách này. Nó được thiết kế sao cho bạn có thể nhanh chống thử nghiệm những cách thức hiện tại trên cơ sở dữ liệu mới một cách linh hoạt. Nó cung cấp nhiều sự hỗ trợ cho toàn bộ quá trình xử lý số liệu thực nghiệm, bao gồm chuẩn bị dữ liệu đầu vào, việc ước lượng học những sơ đồ thống kê, và hình dung dữ liệu ra và kết quả của việc học. cũng giống như sự rộng lớn của giải thuật học, nó bao gồm một lĩnh vực rộng lớn của công cụ tiền xử lý. Tính đa dạng và toàn diện của công cụ là cho phép người sử dụng được truy cập thông qua giao diện chung vì vậy người sử dụng có thể so sánh sự khác nhau giữa các phương thức và nhận ra được cái gì là thích hợp nhất cho vấn đề hiện tại. Weka được phát triển bởi đại học Waikato bang New Zealand, và có tên là Waikato Environment for Knowledge Analysis . Hệ thống được viết bởi java và phân phối dưới thuật ngữ GNU. Nó thực hiện được gần như dưới mọi nền tảng và được kiểm tra bởi Linux, Windows, và được vận dụng vào hệ thống Macintosh, thậm chí hỗ trợ cho một máy tính cá nhân. Nó cung cấp một giao diện tương tự cho nhiều giải thuật học khác nhau với nhiều phương thức cho quá trình xử lý để ước lượng kết quả bằng sơ đồ cho bất kì một dữ liệu nào. 1.Có gì trong weka? Weka cung cấp bổ sung những giải thuật mà bạn có thể dễ dàng ứng dụng và bảng dữ liệu của bạn. Nó bao gồm nhiều công cụ đa dạng để thay đổi tập dữ liệu. Bạn có thể xử lý trước tập dữ liệu, cho vào trong một sơ đồ, và phân chia các lớp kết quả và thực hiện nó mà không cần viết bất cứ một chương trình nào. Workbench bao gồm những phương thức chuẩn cho các vấn đề của khai phá dữ liệu như: hồi quy, phân nhóm, phân cụm, luật kết hợp, và các thuộc tính kết hợp. Tất cả các dữ liệu đầu vào chỉ được lấy từ bảng mối quan hệ có định dạng ARFF, nó được phát sinh từ một file hoặc truy xuất từ một bảng dữ liệu cơ sở. Một cách để sử dụng weka là áp dụng những cách thức học cho bảng dữ liệu và phân tích kết quả để được một dữ liệu tốt hơn. Một cách khác là sử dụng mô hình đã học để dự đoán tất cả các trường hợp. Cách thứ 3 là ứng dụng , một vài cách học khác nhau và so sánh cách thực hiện khác nhau để chọn ra một cách. Cách học như vậy được gọi là sự phân lớp và trong giao diện của weka bạn có thể chọn một cách mà bạn muốn từ thực đơn của weka. Nhiều cách phân lớp có thể điều khiển được tham số, Bạn có thể truy cập thông qua một trang thuộc tính hoặc biên tập đôis tượng. Một sự định giá phổ biến là sử dụng tiêu chuẩn để đánh giá sự thực hiện của tất cả sự phân lớp. 2.Bạn sử dụng nó như thế nào? Cách dễ dàng nhất để sử dụng weka là thông qua giao diện đồ họa gọi là Explorer. Nó cho phép truy cập đến tất cả các khả năng của nó bằng cách sử dụng thực đơn để lựa chọn dạng điền vào. Ví dụ, bạn có thể nhanh chống đọc trong một bảng dữ liệu dạng file ARFF hoặc bảng tính và xây dựng một cách giải quyết từ nó. Nhưng cây quyết định chỉ là sự bắt đầu, còn có nhiều giải thuật khác để nghiên cứu. Giao diện của Explorer giúp bạn làm điều đó. Nó hướng dẫn bạn bằng cách hiện thị cách chọn bằng thực đơn, điều đó bắt buộc bạn làm việc trong sự lựa chọn thích hợp cho đến khi có thể áp dụng được…Nhận biết những giá trị ngầm định bảo đạm rằng bạn có thể đạt được những kết quả mà bạn không cần nỗ lực nhiều nhưng bạn có suy nghĩ về những gì bạn đang làm thực sự có ý nghĩa. Có 2 cách khác nhau để sử dụng giao diện đồ họa của weka. Knowledge Flow cho phép bạn thiết lập cấu hình cho quá trình xử lý dữ liệu. Một điểm bất lợi của Exporler là nó giữ tất cả mọi thứ trong bộ nhớ chính, khi bạn mở một bảng dữ liệu ngay lập tức nó đưa vào tất cả. Điều đó có nghĩa là nó chỉ có thể áp dụng cho những vấn đề nhỏ và vừa. Tuy nhiên weka có những giải thuật gia tăng cho phép sử dụng những bảng dữ liệu rất lớn. Giao diện của Knowledge Flow cho phép bạn kéo những chiếp hộp (biểu trưng) giải thuật học và nguồn dữ liệu trên màn hình, kết nối với chúng để đưa ra cấu trúc bạn muốn. Nó cho phép bạn chỉ rõ dòng dữ liệu bằng cách kết nối các thành phần trong nguồn dữ liệu, công cụ tiền xử lý, giải thuật học, phương thức đánh giá, và các modul. Nếu như việc lọc và giải thuật học có khả năng làm gia tăng việc học, dữ liệu sẽ được tải và xử lý nhiều hơn. Khi bạn sử dụng weka bạn có thể một trong 4 giao diện của nó để sử dụng: Exporler, knowledge Flow, Experimenter, và giao diện các dòng lệnh. Nhiều người chọn Explorer khi bắt đầu. Và đối với bài tập này tôi sẽ làm việc trên giao diện Exporler.
HỌC VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN ------------ BÀI TẬP LỚN MÔN KHAI PHÁ DỮ LIỆU Đề tài: Sử dụng thuật toán phân lớp với bộ dataset Housing Giáo viên hướng dẫn : Hồ Nhật Quang Sinh viên thực hiện : Nguyễn Mạnh Hoàng Lớp : Công nghệ Phần mềm 6 Hà Nội, 11 - 2011 Chương 1: Giới thiệu về Weka. Khai phá dữ liệu là một ngành khoa học thực nghiệm.Weka workbench là tập hợp về trạng thái của các máy học và công cụ tiền xử lý dữ liệu. Nó bao gồm hầu như tất cả giải thuật trong quyển sách này. Nó được thiết kế sao cho bạn có thể nhanh chống thử nghiệm những cách thức hiện tại trên cơ sở dữ liệu mới một cách linh hoạt. Nó cung cấp nhiều sự hỗ trợ cho toàn bộ quá trình xử lý số liệu thực nghiệm, bao gồm chuẩn bị dữ liệu đầu vào, việc ước lượng học những sơ đồ thống kê, và hình dung dữ liệu ra và kết quả của việc học. cũng giống như sự rộng lớn của giải thuật học, nó bao gồm một lĩnh vực rộng lớn của công cụ tiền xử lý. Tính đa dạng và toàn diện của công cụ là cho phép người sử dụng được truy cập thông qua giao diện chung vì vậy người sử dụng có thể so sánh sự khác nhau giữa các phương thức và nhận ra được cái gì là thích hợp nhất cho vấn đề hiện tại. Weka được phát triển bởi đại học Waikato bang New Zealand, và có tên là Waikato Environment for Knowledge Analysis . Hệ thống được viết bởi java và phân phối dưới thuật ngữ GNU. Nó thực hiện được gần như dưới mọi nền tảng và được kiểm tra bởi Linux, Windows, và được vận dụng vào hệ thống Macintosh, thậm chí hỗ trợ cho một máy tính cá nhân. Nó cung cấp một giao diện tương tự cho nhiều giải thuật học khác nhau với nhiều phương thức cho quá trình xử lý để ước lượng kết quả bằng sơ đồ cho bất kì một dữ liệu nào. 1.Có gì trong weka? Weka cung cấp bổ sung những giải thuật mà bạn có thể dễ dàng ứng dụng và bảng dữ liệu của bạn. Nó bao gồm nhiều công cụ đa dạng để thay đổi tập dữ liệu. Bạn có thể xử lý trước tập dữ liệu, cho vào trong một sơ đồ, và phân chia các lớp kết quả và thực hiện nó mà không cần viết bất cứ một chương trình nào. Workbench bao gồm những phương thức chuẩn cho các vấn đề của khai phá dữ liệu như: hồi quy, phân nhóm, phân cụm, luật kết hợp, và các thuộc tính kết hợp. Tất cả các dữ liệu đầu vào chỉ được lấy từ bảng mối quan hệ có định dạng ARFF, nó được phát sinh từ một file hoặc truy xuất từ một bảng dữ liệu cơ sở. Một cách để sử dụng weka là áp dụng những cách thức học cho bảng dữ liệu và phân tích kết quả để được một dữ liệu tốt hơn. Một cách khác là sử dụng mô hình đã học để dự đoán tất cả các trường hợp. Cách thứ 3 là ứng dụng , một vài cách học khác nhau và so sánh cách thực hiện khác nhau để chọn ra một cách. Cách học như vậy được gọi là sự phân lớp và trong giao diện của weka bạn có thể chọn một cách mà bạn muốn từ thực đơn của weka. Nhiều cách phân lớp có thể điều khiển được tham số, Bạn có thể truy cập thông qua một trang thuộc tính hoặc biên tập đôis tượng. Một sự định giá phổ biến là sử dụng tiêu chuẩn để đánh giá sự thực hiện của tất cả sự phân lớp. 2.Bạn sử dụng nó như thế nào? Cách dễ dàng nhất để sử dụng weka là thông qua giao diện đồ họa gọi là Explorer. Nó cho phép truy cập đến tất cả các khả năng của nó bằng cách sử dụng thực đơn để lựa chọn dạng điền vào. Ví dụ, bạn có thể nhanh chống đọc trong một bảng dữ liệu dạng file ARFF hoặc bảng tính và xây dựng một cách giải quyết từ nó. Nhưng cây quyết định chỉ là sự bắt đầu, còn có nhiều giải thuật khác để nghiên cứu. Giao diện của Explorer giúp bạn làm điều đó. Nó hướng dẫn bạn bằng cách hiện thị cách chọn bằng thực đơn, điều đó bắt buộc bạn làm việc trong sự lựa chọn thích hợp cho đến khi có thể áp dụng được…Nhận biết những giá trị ngầm định bảo đạm rằng bạn có thể đạt được những kết quả mà bạn không cần nỗ lực nhiều nhưng bạn có suy nghĩ về những gì bạn đang làm thực sự có ý nghĩa. Có 2 cách khác nhau để sử dụng giao diện đồ họa của weka. Knowledge Flow cho phép bạn thiết lập cấu hình cho quá trình xử lý dữ liệu. Một điểm bất lợi của Exporler là nó giữ tất cả mọi thứ trong bộ nhớ chính, khi bạn mở một bảng dữ liệu ngay lập tức nó đưa vào tất cả. Điều đó có nghĩa là nó chỉ có thể áp dụng cho những vấn đề nhỏ và vừa. Tuy nhiên weka có những giải thuật gia tăng cho phép sử dụng những bảng dữ liệu rất lớn. Giao diện của Knowledge Flow cho phép bạn kéo những chiếp hộp (biểu trưng) giải thuật học và nguồn dữ liệu trên màn hình, kết nối với chúng để đưa ra cấu trúc bạn muốn. Nó cho phép bạn chỉ rõ dòng dữ liệu bằng cách kết nối các thành phần trong nguồn dữ liệu, công cụ tiền xử lý, giải thuật học, phương thức đánh giá, và các modul. Nếu như việc lọc và giải thuật học có khả năng làm gia tăng việc học, dữ liệu sẽ được tải và xử lý nhiều hơn. Khi bạn sử dụng weka bạn có thể một trong 4 giao diện của nó để sử dụng: Exporler, knowledge Flow, Experimenter, và giao diện các dòng lệnh. Nhiều người chọn Explorer khi bắt đầu. Và đối với bài tập này tôi sẽ làm việc trên giao diện Exporler. Chương 2: Tóm tắt lý thuyết phân lớp. 1.Lý thuyết. Trong lĩnh vực máy học (machine Learning) và nhận dạng (pattern recognition), bài toán phân lớp (classification) đề cập đến các thuật toán (algorithms) nhằm xác định lớp (class) của đối tượng đã cho sẽ thuộc về lớp nào trong các lớp đã cho trước (Given Categories). Một điều cần chú ý là khác với bài toán phân cụm (clustering), dữ liệu dùng để xây dựng mô hình (Training Data) trong bài toán phân lớp phải được xác định lớp trước (pre-Labeled). 2. Qui trình Train và Test một classifier. 1. Dữ liệu để xây dựng mô hình: dữ liệu gốc (original dataset), dữ liệu này phải có thuộc tính phân lớp gọi là categorical attribute 2. Dữ liệu gốc sẽ được chia thành 2 phần là Training Set (để xây dựng model) và Testing Set (để kiểm định Model) 3. Cuối cùng là tính toán lỗi để đánh giá Model 3.Cross Validation (CV) trong Training and Testing Phase Đây là kỹ thuật chủ yếu được sử dụng trong xây dựng predictive Model. Trong đó dữ liệu gốc sẽ được chia thành n phần bằng nhau (n-fold), và quá trình Train/Test Model thực hiện lặp lại n lần. Tại mỗi lần Train/Test Model, 1 phần dữ liệu dùng để Test và (n-1) phần còn lại dùng để Train. Người ta chứng minh được rằng mô hình 10 Fold là tốt nhất Mô hình sau sẽ mô tả mô hình với 3 fold Chương 3: Giới thiệu dataset. 1. Tên: Dữ liệu nhà ở Boston. 2. Nguồn: a. Xuất xứ: Số liệu này được lấy từ thư viện Statlid được lưu giữ tại đại học Carnegie Mellon b. Tác giả: Harrison, D. and Rubinfeld, D.L. “Hưởng thụ giá cả và nhu cầu về không khí sạch” , J. Environ. Kinh tế & Quản lý, vol.5, 81-102, 1978. c. Ngày: 07 tháng 7 năm 1993 3. Qua sử dụng: a. Sử dụng trong Belsley, Kuh & Welsch, “Chuẩn đoán hồi quy…” , Wiley, 1980. N.B. Biến đổi khác nhau được sử dụng trong bảng ở trang 244-261. b. Quinlan,R. (1993). Nghiên cứu kết hợp thực thể cơ bản và mô hình cơ bản. Trong Kỷ yếu Hội nghị quốc tế lần thứ 10 của Machine Learning, 236-243, đại học Massachusetts , Amherst. Morgan Kaufmann 4. Thông tin liên quan: Mối quan tâm về giá trị nhà ở tại ngoại ô Boston. 5. Số trường hợp : 506 6. Số thuộc tính : 13 thuộc tính liên tục( bao gồm “lớp” thuộc tính “MEDV”), 1 thuộc tính có giá trị nhị phân. 7. Thông tin về các thuộc tính: 1. CRIM : bình quân đầu người tỉ lệ tội phạm trong thị trấn. 2. ZN : tỉ lệ đất quy hoạch nhiều hơn 25000 sq.ft. 3. INDUS : tỉ lệ mẫu kinh doang không bán lẻ cho mỗi thị trấn. 4. CHAS : Charles River biến thử nghiệm ( = 1 nếu đường giới hạn sông, =0 nếu ngược lại) 5. NOX : nitric oxit tập trung( phần trên 10 triệu) 6. RM : số phòng trung bình trong mỗi căn hộ. 7. AGE : tỉ lệ của các đơn vị chủ sở hữu chiến được xây dựng trước năm 1940 8. DIS : trọng số khoảng các đến 5 trung tâm việc làm ở Boston. 9. RAD : chỉ số khả năng tiếp cận các đường cao tốc trung tâm. 10. TAX : Thuế giá trị tài sản cho mỗi 10.000$ 11. PTRATIO : tỉ lệ học sinh – giáo viên trong thị trấn. 12. B : 1000(BK-0,63)^2 trong đó BK là tỉ lệ người da đen trong thị trấn. 13. LSTAT : % thấp hơn tình trạng dân số. 14. MEDV : giá trị trung bình của chủ sở hữu ngôi nhà bị chiếm đóng trong 1000$ Chương 4: Sử dụng giao diện Exporler thực hành phân lớp dataset Housing trên Weka. 1.Tiền xử lí: Weka lưu trữ dữ liệu bằng định dạng ARFF. Bạn có thể dễ dàng chuyển đổi từ một bảng tính sang ARFF. File ARFF bao gồm danh sách các trường, và các giá trị thuộc tính cho mỗi trường được phân cách bằng dấu phẩy . Hầu hết các bảng tính và các chương trình cơ sở dữ liệu cho phép bạn chuyển dữ liệu thành một tập tin mà các giá trị của thuộc tính đều được tách nhau bằng dấu phẩy như trong định dạng của file CSV. Đê làm được như vậy, bạn chỉ cần đưa file vào một trình soạn thảo văn bản hoặc từ bộ vi xử lý; thêm tên của tập dữ liệu bằng cách sử dụng các từ @relation, Khai báo tên các thuộc tính bằng từ khóa @attribute, và từ khóa @data để bắt đầu đưa dữ liệu vào . Ví dụ, dữ liệu ở dạng CSV và định dạng ARFF: . 2. Đưa dữ liệu vào Explorer. Để vào được giao diện Exporler đầu tiên bạn mở Weka lên, sau đó click vào nút Exporler: Những gì bạn thấy tiếp theo là màn hình chính của Explorer. Trên thực tế, những con số hiển thị sau khi tải sẽ giống như trong bảng dữ liệu thời tiết. Sáu tab dọc theo phía trên là các hoạt động cơ bản mà Explorer hỗ trợ: Hiện tại trên hình tag Preprocess. Nhấp vào sẽ xuất hiện một hộp thoại để bạn chọn một file dữ liệu. Chọn file housing.arff, nếu nó ở dạng CSV thì bạn đổi thành ARFF.Khi bạn chỉ định một file csv ngay lập tức nó được tự động chuyển đổi thành file ARFF. Khi file đã được mở, màn hình sẽ được thể hiện như hình trên. Cái này cho bạn biết về bảng dữ liệu: nó có 506 bản ghi và 14 thuộc tính.Tên các thuộc tính là CRIM, ZN, INDUS, CHAS, NOX, RM, AGE, DIS, RAD, TAX, PTRATIO, B, LSTAT, class . Đầu tiên, theo mặc định là trường CRIM và bạn có thể chọn những người khác bằng cách click chuột vào chúng. Nó có 3 vùng riêng biệt nhưng có liên quan đến nhau.Ở vùng Selected attribute cho ta biết trường CRIM có 4 giá trị Minimum, Maximum, Mean và StdDev, chúng có giá trị lần lượt là 0.006 , 88.976 , 3.614 và 8.602 . Có 1 biểu đồ của thuộc tính CRIM ở bên dưới, bạn có thể xem đc biểu đồ của tất cả các thuộc tính khác bằng cách chọn từng thuộc tính hoặc ấn vào nút “Visualize All” 3.Xây dựng cây quyết định Click vào tab Classify để xuất hiện màn hình giống như trong hình dưới: Trước tiên hãy chọn phân loại bằng cách nhấn vào nút nó sẽ mở ra cây thư mục như trong hình: Đối với dataset Housing chỉ có 3 thuật toán được sử dụng đó là DecisionStump, M5P và REPTree. Ta có thể chọn 1 trong 3 thuật toán trên. Ví dụ ta chọn thuật toán REPTree ta chỉ việc click vào dòng REPTree màn hình sẽ hiện ra như sau: . VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN ------------ BÀI TẬP LỚN MÔN KHAI PHÁ DỮ LIỆU Đề tài: Sử dụng thuật toán phân lớp với bộ dataset Housing. classifier. 1. Dữ liệu để xây dựng mô hình: dữ liệu gốc (original dataset), dữ liệu này phải có thuộc tính phân lớp gọi là categorical attribute 2. Dữ liệu gốc