Tài liệu Bài tiểu luận- khai phá dữ liệu- bài toán phân lớp

  • Số trang: 23 |
  • Loại file: PDF |
  • Lượt xem: 2743 |
  • Lượt tải: 0
quangtran

Đã đăng 3721 tài liệu

Mô tả:

HỌC VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN ------***----- TIỂU LUẬN MÔN HỌC KHAI PHÁ DỮ LIỆU Đề bài : Bài toán phân lớp Giáo viên hướng dẫn: Sinh viên thực hiện : Lớp : Hồ Nhật Quang Nguyễn Thị Ngân HTTT9 Hà Nội Năm 2014 MỤC LỤC LỜI MỞ ĐẦU ............................................................................................................3 I. Tóm lược lý thuyết về phân lớp (Classification)..............................................4 II. Bài toán: ............................................................................................................4 1. Mô tả bài toán ................................................................................................5 2. Xử lý dữ liệu ..................................................................................................6 3. Quy trình huấn luyện và kiểm thử .................................................................6 4. thực hiện bài toán phân lớp với weka: ..........................................................9 5. Kết quả thực nghiệm ...................................................................................22 KẾT LUẬN ..............................................................................................................23 LỜI MỞ ĐẦU Sự phát triển của công nghệ thông tin và việc ứng dụng công nghệ thông tin trong nhiều lĩnh vực của đời sống, kinh tế xã hội trong nhiều năm qua cũng đồng nghĩa với lượng dữ liệu đã được các cơ quan thu thập và lưu trữ ngày một tích luỹ nhiều lên. Họ lưu trữ các dữ liệu này vì cho rằng trong nó ẩn chứa những giá trị nhất định nào đó. Tuy nhiên, theo thống kê thì chỉ có một lượng nhỏ của những dữ liệu này (khoảng từ 5% đến 10%) là luôn được phân tích, số còn lại họ không biết sẽ phải làm gì hoặc có thể làm gì với chúng nhưng họ vẫn tiếp tục thu thập rất tốn kém với ý nghĩ lo sợ rằng sẽ có cái gì đó quan trọng đã bị bỏ qua sau này có lúc cần đến nó. Mặt khác, trong môi trường cạnh tranh, người ta ngày càng cần có nhiều thông tin với tốc độ nhanh để trợ giúp việc ra quyết định và ngày càng có nhiều câu hỏi mang tính chất định tính cần phải trả lời dựa trên một khối lượng dữ liệu khổng lồ đã có. Với những lý do như vậy, các phương pháp quản trị và khai thác cơ sở dữ liệu truyền thống ngày càng không đáp ứng được thực tế đã làm phát triển một khuynh hướng kỹ thuật mới đó là Kỹ thuật phát hiện tri thức và khai phá dữ liệu (KDD - Knowledge Discovery and Data Mining). Kỹ thuật phát hiện tri thức và khai phá dữ liệu đã và đang được nghiên cứu, ứng dụng trong nhiều lĩnh vực khác nhau ở các nước trên thế giới, tại Việt Nam kỹ thuật này tương đối còn mới mẻ tuy nhiên cũng đang được nghiên cứu và dần đưa vào ứng dụng.Phát hiện tri thức trong các cơ sở dữ liệu là một qui trình nhận biết các mẫu hoặc các mô hình trong dữ liệu với các tính năng: hợp thức, mới, khả ích, và có thể hiểu được. Còn khai thác dữ liệu là một bước trong qui trình phát hiện tri thức gồm có các thuật toán khai thác dữ liệu chuyên dùng dưới một số qui định về hiệu quả tính toán chấp nhận được để tìm ra các mẫu hoặc các mô hình trong dữ liệu. Nói một cách khác, mục đích của phát hiện tri thức và khai phá dữ liệu chính là tìm ra các mẫu và/hoặc các mô hình đang tồn tại trong các cơ sở dữ liệu nhưng vẫn còn bị che khuất bởi hàng núi dữ liệu. Môn học “Khai phá dữ liệu” cung cấp cho sinh viên công nghệ thong tin cái nhìn tổng quan về phát hiện tri thức và khai phá dữ liệu. Với những kiến thức đã học, trong bài tiểu luận môn học em tập trung vào các thuật toán phân lớp với bài toán cụ thể là “Nhận dạng ký tự”. Bài toán được thực hiện bằng công cụ weka, bộ mã nguồn mở khá hiệu quả hiện nay. I. Tóm lược lý thuyết về phân lớp (Classification) 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). Qui trình Train và Test một classifier - 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 - 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) - Cuối cùng là tính toán lỗi để đánh giá Model II. Bài toán: 1. Mô tả bài toán Bài toán “Nhận dạng ký tự” là một bài toán phân lớp khá phức tạp, đã được sử dụng trong mô hình phân lớp thích nghi ở Hà Lan. Trong mô hình này ta sử dụng tập dữ liệu “letter-recognition” gồm 20.000 hình ảnh ký tự có tính đơn nhất được tạo ra một cách ngẫu nhiên từ các hình ảnh dạng pixel trong tổng số 26 chữ cái viết hoa từ 20 phông chữ khác nhau.Các phông đại diện đầy đủ các loại bao gồm cả script, in nghiêng, serif, và Gothic. Các đặc trưng của mỗi ký tự trong số 20.000 ký tự đã được tóm lược thành 16 thuộc tính số nguyên. Mỗi hình ảnh ký tự trong số 26 ký tự trọng tâm của bảng chữ cái tiếng Anh được biểu diễn dạng khối hình chữ nhật dạng pixel đen và trắng. Hình ảnh các ký tự dựa trên 20 kiểu chữ khác nhau và mỗi ký tự nằm trong 20 kiểu này. Các thuộc tính là: 1. 2. 3. 4. 5. 6. 7. lettr x-box y-box width high onpix x-bar các ký tự (26 giá trị từ A đến Z) vị trí nằm ngang của hình hộp chữ nhật vị trí thẳng đưng của hình hộp chữ nhật chiều rộng của hình hộp chữ nhật chiều cao của hình hộp chữ nhật tổng số pixel hiển thị trong ảnh ký tự giá trị trung bình x của các pixel hiển 8. y-bar giá trị trung bình y của các pixel hiển thị trong hình 9. 10. 11. 12. 13. 14. 15. 16. 17. x2bar y2bar xybar x2ybr xy2br x-ege xegvy y-ege yegvx trung bình biến x (integer) trung bình biến y (integer) trung bình tương quan xy (integer) trung bình của x * x * y (integer) trung bình của x * y * y (integer) số cạnh trung bình từ trái sang phải (integer) tương quan của cạnh x với y (integer) số cạnh trung bình từ trên xuống dưới (integer) tương quan của cạnh y với x (integer) (integer) (integer) (integer) (integer) (integer) thị trong hình hộp (integer) (integer) Ví dụ về các hình ảnh ký tự: Yêu cầu bài toán: từ bộ dữ liệu như trên tiến hành nhận dạng ký tự viết hoa bằng phương pháp phân lớp. 2. Xử lý dữ liệu - Bộ dữ liệu được sử dụng: letter-recognition. - Bộ dữ liệu được lấy từ nguồn: http://archive.ics.uci.edu/ml/datasets/Letter+Recognition - Xử lý: dữ liệu ban đầu có dạng file letter-recognition.data, không sử dụng được trong bộ mã nguồn mở weka nên chuyển đổi file về dạng .csv - Bộ dữ liệu gồm 20000 bảng ghi với 17 thuộc tính. - Chuẩn hóa dữ liệu bằng cách rời rạc hóa các thuộc tính của dữ liệu. 3. Quy trình huấn luyện và kiểm thử a. Kỹ thuật 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 10-fold Cross –Validation là tối ưu) Ví dụ: Hình dưới đây mô tả CV với 3-fold sử dụng bộ dữ liệu Iris Bài toán được giải quyết bằng kỹ thuật phân lớp với hai quá trình: huấn luyện dữ liệu và kiểm thử. a. Huấn luyện dữ liệu: Bộ dữ liệu trên được chia thành 2 file là file huấn luyện (train) và file kiểm thử (test) theo từng kỹ thuật cụ thể. Ví dụ: sử dụng kỹ thuật Cross Validation hoặc chia bộ dữ liệu theo tỷ lệ 70%(14000) train và 30%(6000) test. Chương trình lần lượt duyệt qua 16000 thành phần huấn luyện với 5 lần rời nhau, tạo ra luật mới, điều chỉnh những thành phần không phù hợp và chỉnh sửa luật cho phù hợp. b. Kiểm thử Quá trình kiểm thử được thực hiện qua các bước sau: - So sánh vector đặc trưng của thành phần kiểm thử với những đặc trưng đặc biệt của mỗi bộ phân lớp tạo được ở trên - Lựa chọn một cách thiết lập đối sánh bao gồm tất cả các bộ phân lớp thỏa điều kiện với vector đặc trưng cần kiểm tra. - Tính giá trị cho mỗi bộ phân lớp. - Nếu trong trường hợp học, chỉnh sửa kết quả thống kê của một hoặc nhiều bộ phân lớp. - Nếu trong trường hợp kiểm tra, loại bỏ những luật không tốt và tạo ra những luật mới tùy theo thuật toán tạo luật - Lựa chọn bảng ghi tiếp theo cần kiểm tra và lặp lại bước 1. 4. thực hiện bài toán phân lớp với weka: Phần này trình bày xây dựng mô hình phân lớp với phần mềm Weka, trên bộ dữ liệu letter-recognition.csv đã giới thiệu ở trên. Chọn Explorer Việc lựa chọn thuật toán nào để có một model tốt phụ thuộc rất nhiều yếu tố, trong đó cấu trúc của dataset có ý nghĩa quan trọng đến việc lựa chọn thuật toán. Ví dụ thuật toán cây hồi qui phân loại (CART – Classification And Regression Tree) và J48 cho kết quả tốt trên các dữ liệu kiểu số (Numerical Data), trong khi đó thuật toán ID3 cho kết quả tốt đối với dữ liệu định danh (nominal Data). Các nhà nghiên cứu về khai phá dữ liệu đã phát triển một số các thuật toán cho việc tạo ra cây quyết định sử dụng trong bài toán phân lớp. Trong bài toán này thuật toán c4.5 được sử dụng khá tốt, trong weka là J48. - Giao diện chính của chương trình: nạp dữ liệu dang file . Nạp file dữ liệu letterrecognition.csv Mô tả thuộc tính Các biểu đồ tương ứng với các thuộc tính Mô tả dữ liệu Sau khi nạp dữ liệu, chọn Tab classify để chọn các mô hình phân loại. Ở đây ta sẽ sử dụng và so sánh hiệu quả của 2 mô hình phân lớp của cây quyết định (Decision tree) là J48 và mô hình MultilayerPerceptron của mạng Neuron (Neural network) - Mô hình phân lớp của cây quyết định (Decision tree) là J48 Chọn J48 + sử dụng kỹ thuật Cross-validation để chia dữ liệu train và test Chọn Folds là 10 Hiển thị kết quả Bắt đầu xây dựng mô hình  Kết quả kiểm thử Liệt kê thông tin tổng quát về mức độ chính xác của bộ phân loại trong thử nghiệm vừa thực thi. Chi tiết kết quả độ chính xác của bộ phân loại trên từng phân lớp. + Sử dụng kỹ thuật percentage split để phân chia dữ liệu train/test Chọn dữ liệu train là 70% Kết quả kiểm thử: - Mô hình MultilayerPerceptron của mạng Neuron (Neural network) Chọn MultilayerPerceptron Quá trình xây dựng mô hình huấn luyện MultilayerPerceptron sử dụng kỹ thuật Cross-validation Kết quả kiểm thử dữ liệu
- Xem thêm -