1. Mô tả Dataset Someion Handwritten Digit Data set là cơ sở dữ liệu về chữ số viết tay gồm 1593 bản ghi (1593 mẫu) được thu thập từ 80 người. Dữ liệu sau khi quét được đưa về định dạng ảnh xám 256 mức và kéo về kích thước 16*16. Ảnh này được chuyển đổi thành ảnh nhị phân với ngưỡng 127. Các pixel có giá trị mức xám nhỏ hơn và bằng 127 được đưa về 0, các pixel trên 127 được đưa về 1. Như vậy mỗi bức ảnh nhị phân được biểu diễn là 1 bản ghi trong dataset với 256 thuộc tính (256 cột) tương ứng với 256 (=16*16) pixel. Dataset này được sử dụng cho bài toán phân lớp (classification), dữ liệu sẽ được phân thành 10 lớp tương ứng với 10 chữ số. 2. Tiền xử lý dữ liệu Để Weka đọc được thì dữ liệu phải được đưa về dạng csv hoặc arff. Trước hết, ta sử dụng MS Excel để đưa dữ liệu này về địng dạng csv và loại bỏ những thuộc tính thừa. Trong cửa sổ Open File của Excel ta nhập *.* vào ô File name để hiển thị tất cả các file trong thư mục: Chọn file semeion.data. Ở hộp thoại Text Import Wizard hiện ra, chọn Delimited Bước 2, chọn Tab và Space Kết thúc, ta thu được kết quả như sau: Dữ liệu lưu trữ trong file này chưa được đặt tên các thuộc tính. Trong đó 256 cột đầu tiên là dữ liệu ảnh, 10 cột sau cùng để xác định bản ghi là dữ liệu của chữ số nào, thứ tự của bit 1 trong 10 cột này chính là chữ số tương ứng. Ta thêm 1 dòng lên trên cùng và tiến hành đặt tên các thuộc tính như sau: - 256 cột đầu tiên gọi là Pixel 0 đến Pixel 255 (từ cột A đến cột IV)
Trang 1Học viện kỹ thuật quân sự
Khoa công nghệ thông tin
~ * ~
TIỂU LUẬN
KHO DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU
Dataset: Semeion Handwritten Digit Data Set
Giáo viên hướng dẫn: Hồ Nhật Quang Sinh viên thực hiện : Hoàng Văn Tiến Lớp : Công nghệ phần mềm 6
Trang 21 Mô tả Dataset
Someion Handwritten Digit Data set là cơ sở dữ liệu về chữ số viết tay gồm 1593 bản ghi (1593 mẫu) được thu thập từ 80 người Dữ liệu sau khi quét được đưa về định dạng ảnh xám 256 mức và kéo về kích thước 16*16 Ảnh này được chuyển đổi thành ảnh nhị phân với ngưỡng 127 Các pixel có giá trị mức xám nhỏ hơn và bằng 127 được đưa về 0, các pixel trên 127 được đưa về 1 Như vậy mỗi bức ảnh nhị phân được biểu diễn là 1 bản ghi trong dataset với 256 thuộc tính (256 cột) tương ứng với 256 (=16*16) pixel
Dataset này được sử dụng cho bài toán phân lớp (classification), dữ liệu sẽ được phân thành 10 lớp tương ứng với 10 chữ số
2 Tiền xử lý dữ liệu
Để Weka đọc được thì dữ liệu phải được đưa về dạng csv hoặc arff Trước hết, ta sử dụng MS Excel để đưa dữ liệu này về địng dạng csv và loại
bỏ những thuộc tính thừa Trong cửa sổ Open File của Excel ta nhập *.* vào
ô File name để hiển thị tất cả các file trong thư mục:
Trang 3Chọn file semeion.data Ở hộp thoại Text Import Wizard hiện ra, chọn
Delimited
Bước 2, chọn Tab và Space
Trang 4Kết thúc, ta thu được kết quả như sau:
Dữ liệu lưu trữ trong file này chưa được đặt tên các thuộc tính Trong
đó 256 cột đầu tiên là dữ liệu ảnh, 10 cột sau cùng để xác định bản ghi là dữ liệu của chữ số nào, thứ tự của bit 1 trong 10 cột này chính là chữ số tương ứng Ta thêm 1 dòng lên trên cùng và tiến hành đặt tên các thuộc tính như sau:
- 256 cột đầu tiên gọi là Pixel 0 đến Pixel 255 (từ cột A đến cột IV)
Trang 5- Thêm cột Digit và viết hàm cho các ô thuộc cột này như sau:
=MATCH(1,IX2:JG2,0)-1 Hàm này dò tìm index của giá trị 1 trong các ô thuộc cột từ IX đến JG, index này chính là chữ số tương ứng do 256 thuộc tính trước mô tả Ta có dữ liệu như trên hình
- Bây giờ có thể bỏ 10 cột phía sau đi, nó không còn cần thiết nữa (trước khi bỏ, phải sao chép lại cột Digit để không bị mất những tính toán ở trên)
- Lưu lại file dưới định dạng CSV
Trang 6- Khởi động Weka, mở Weka Explorer và mở file csv vừa lưu
- Chọn Save để lưu dưới dạng arff là định dạng chuẩn của weka
- Mở file arff vừa lưu bằng Notepad và chỉnh sửa như sau:
• Các Attribute từ Pixel 0 đến Pixel 255, thay đổi kiểu dữ liệu
numeric bằng {0,1} do đây là dữ liệu ảnh nhị phân
• Ở thuộc tính Digit ta thay bằng {0,1,2,3,4,5,6,7,8,9} để đại diện
cho 10 chữ số
• Lưu lại
Trang 7- Mở lại file arrf vừa chỉnh sửa bằng Weka Explorer
Trang 83 Phân lớp dữ liệu
Dữ liệu được phân thành 10 lớp ứng với 10 chữ số
- Chọn tab Classify, nhấn Choose để chọn 1 thuật toán (ở đây chọn J48)
Trang 9- Ở Test Option, chọn Use Training test, comboBox bên dưới chọn
(Nom) Digit
Trang 10- Start, ta thu được kết quả như sau
• Số lượng thể hiện dữ liệu được phân nhóm đúng: 1502/1593
• Số lượng thể hiện được phân nhóm không đúng: 91/1593
Trang 11- Có thể xem các biểu đồ trực quan bằng cách chuột phải vào kết quả vào chọn Visualize
Trang 12- Một kết quả khác đối với tùy chọn Cross Validation
• Số thể hiện đúng: 1208
• Số thể hiện lỗi 365 – tỷ lệ 24.1462%
Trang 13- Cũng ở Cros Validation nhưng với thuật toán Id3
Ta thấy sự khác biệt không lớn, tỷ lệ lỗi là 23.6033%