Sau khi đưa dữ liệu vào, bạn có thể thự hiện các thao tác để xử lý dữ liệu trước khi thực hiện những công việc khác như phân cụm, tạo cây quyết định, luật kết hợp… Để thực hiện xử lý dữ
Trang 1ĐẠI HỌC HẢI PHÒNG KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO BÀI TẬP NHÓM
Đề tài:
KHAI PHÁ DỮ LIỆU VOTE VỚI PHẦN MỀN
WEKA
Nguyễn Quang Minh Nguyễn Thành Nam Trần Huy Hoàng
Đỗ Đức Tuân
Trang 2I GIỚI THIỆU WEKA
Weka là môi trường thử nghiệm KPDL do các nhà khoa học thuộc trườngĐại học Waitako, NZ, khởi xướng và được sự đóng góp của rất nhiều nhà nghiên cứu trên thế giới Weka là phần mềm mã nguồn mở, cung cấp công cụ trực quan và sinh động cho mọi người tìm hiểu về KPDL Weka còn cho phép các giải thuật học mới phát triển có thể tích hợp vào môi trường của nó Hệ thống được viết bằng java Nó chạy được hầu hết trên tất cả hệ điều hành
Weka cung cấp nhiều giải thuật 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
Weka cung cấp những tính năng chính sau:
Bao gồm nhiều công cụ đa dạng để thay đổi tập dữ liệu, xử lý dữ liệu, giải thuật học và phương pháp đánh giá
Giao diện đồ họa người dùng (trực quan hóa dữ liệu)
Môi trường để so sánh các giải thuật học
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
Weka lấy dữ liệu từ các file có định dạng arff, nó được phát sinh từ một file hoặc một bảng cơ sở dữ liệu
Cách sử dụng Weka là thông qua giao diện đồ họa của nó
HAnh 1: Giao diê D n đF hGa cHa Weka
Các phiên bản cHa Weka
WEKA 3.0: “book version”: Chỉ cho phép viết các câu lệnh
WEKA 3.2: “GUI version”- Graphical User interfaces (Phiên bản giao diện đồ họa) : Ngoài việc viết các câu lệch có thể sử dụng giao diện đồ họa
WEKA 3.3: “Development version” (Phiên bản phát triển) :Với nhiều cải tiến
Trang 3II Trong phần Applications có 4 phần:
1 Explorer: Sử dụng menu lựa chọn Explorer chỉ sử dụng cho những bộ
dữ liệu vừa và nhỏ
2 Experimeter: Cho phép người dùng thực hiện những bài tập cơ bản khi
ứng dụng phân lớp và kĩ thuật hồi quy, với những công việc có giá trị, phương pháp và tham số tốt nhất cho vấn đề đã cho
Cho phép bạn tự động hóa xử lý, làm cho nó phân lớp và lọc dễ dàng với những cách thiết lập tham số khác nhau trên toàn thể bảng dữ liệu
3 KnowledgeFlow: cho phép người dùng kéo thả những chiếc hộp tượng
trưng cho các giải thuật và dữ liệu để kết nối chúng lại với nhau và đưa ra cấu trúc
4 Simple CLI: Sử dụng câu lệnh
I EXPLORER
Trong giao diện của Explorer có 6 tab
HAnh 2: Giao diê D n đF hGa cHa Exporer
Preprocess: Tiền xử lý dữ liệu.
Classify: Tạo ra những chương trình để phân loại.
Cluster: Tạo phân cụm cho cơ sở dữ liệu.
Trang 4 Associate: Tạo luật kết hợp cho dữ liệu và đánh giá chúng.
Select attributes: Lựa chọn những thuộc tính liên quan nhất trong tập dữ
liệu
Visualize: (Nhìn thấy sự khác nhau hai chiều của dữ liệu và sự tương tác
giữa chúng)View different two-dimensional plots of the data and interact with them
1 Đưa dữ liệu vào
Trong tab Preprocess có:
Nút mở các file có sẵn trên máy
Nút mở file từ máy khác
Nút đọc dữ liệu từ một cơ sở dữ liệu
Nút Phần mềm tự tạo ra dữ liệu cho bạn theo những sự lựa chọn của bạn
Sử dụng nút bạn có thể đọc các tập tin ở nhiều định dạng như:định dạng ARFF, định dạng CSV, định dạng C4.5
Khi bạn mở một file từ mục open file sẽ hiện ra một cửa sổ như sau:
Trang 5HAnh 3: M\ file trong Exporer
Vùng Current Relation (Các mối quan hệ hiện tại)
Relation (Quan hệ): Cho biết tên của bảng dữ liệu
Instances (Trường hợp): Số lượng các bản ghi
Attributes.(Những thuộc tính): Số lượng các thuộc tính trong dữ liệu.
Sum of weights: Tổng trọng lượng của mti bản ghi.
Ví dụ: Khi file đã được mở, màn hình sẽ được thể hiện trong hình 3, nó cho bạn biết về tên bảng bảng dữ liệu: Trong trường hợp này bảng dữ liê uu có tên là
Weather nó có 14 bản ghi và 5 thuộc tính Tên các thuộc tính là outlook,
Trang 6temperature, humidity, windy và play Đầu tiên, theo mặc định là thuô uc tính outlook và bạn có thể chọn những thuộc tính khác bằng cách click chuột vào nó.
Vùng Attributes (Những thuộc tính)
Ở dưới hộp Current Relation là hộp Attributes Có bốn nút để thay đổi sự chọn lựa
All: Tất cả đều được chọn.
None: Tất cả các hộp đều không được chọn.
Invert: Những thuộc tính trước đây không được chọn sẽ trở thành được
chọn và ngược lại
Pattern: Cho phép người dùng lựa chọn các thuộc tính bằng cách nhập
tên thuộc tính vào
Vùng Selected Attribute:
Name: Tên thuô uc tính
Type: Kiểu dữ liê uu của thuô uc tính đó
Missing: cho biết số lượng và phần trăm tương ứng của số bản ghi có
giá trị rtng trong thuô uc tính
Distinct: Cho biết số lượng các giá trị trong thuô uc tính
Unique: cho biết số lượng và phần trăm tương ứng của các giá trị
không bị lă up lại trong thuô uc tính
Nếu thuô uc tính bạn đang chọn có kiểu dữ liê uu là Nominal thì bạn sẽ nhìn thấy trong vùng này mô ut table gồm có các trường số thứ tự (NO.), tên các giá trị(lable), số lượng mti giá trị (Count) và trọng lượng của chúng (Weight) như sau:
Nếu thuô uc tính bạn đang chọn có kiểu dữ liê uu là numeric thì table có hai trường là số liê uu thống kê (Statistic) và giá trị tương ứng (Value) Ở trường Statistic có các giá trị Minimum (Giá trị nhỏ nhất), Maximum (Giá trị lớn nhất),mean (Giá trị trung bình), Đô u lê uch chuyn (StdDev) như hình sau:
Trang 7Sau khi đưa dữ liệu vào, bạn có thể thự hiện các thao tác để xử lý dữ liệu trước khi thực hiện những công việc khác như phân cụm, tạo cây quyết định, luật kết hợp… Để thực hiện xử lý dữ liệu trước hết bạn click vào button , một cây thư mục đổ xuống, trong cây thưc mục đổ xuống như hình dưới đây:
Từ cây thư mục này bạn có thể thực hiện các thao tác để tiền xử lý dữ liệu của bạn Ở đây chúng tôi chỉ trình bày một số mục trong phần
Unsupervised/Attribute của cây thư mục.
II.1 Add
Cho phép bạn chèn thêm một thuộc tính cho bảng dữ liệu
Chọn mục Add trong cây thư mục, ở bên phải nút Choose sẽ xuất hiện dòngchữ Add -N unnamed -C last Click chuột trái (hoặc click chuột phải chọn
show properties…) sẽ xuất hiện một hộp thoại cho phép bạn thiết lập các tham
số:
Trang 8 AttributeIndex: Vị trí của thuộc tính cần thêm vào trong bảng dữ liệu
mặc định là cuối bảng dữ liệu (Last)
AttributeName: Tên của thuộc tính mới.
AttributeType: kiểu dữ liệu của thuộc tính mới.
Trang 9 Debug: Nếu chọn False thì chương trình sẽ không kiểm tra lti trong quá
trình thực hiện
Expression: Nơi để nhập biểu thức toán học.Biểu thức có thể sử dụng các
phép toán và các hàm sau: +, -, *, /, ^, log, abs, cos, exp, sqrt, floor, ceil, rint, tan, sin…Mặc định là a1^2, a1 là thuộc tính thứ 1
Name: Tên của thuộc tính mới.
II.3 AddID
Cho phép bạn chèn vào một trường ID
Chọn mục AddID trong cây thư mục, ở bên phải nút Choose sẽ xuất hiện dòng chữ AddID -C first -N ID Click chuột trái (hoặc click chuột phải chọn
show properties…) vào dòng chữ này sẽ xuất hiện một hộp thoại cho phép bạn
thiết lập các tham số:
IDIndex: Vị trí của thuộc tính ID được thêm vào bảng dữ liệu Mặc định
là vị trí đầu tiên (first)
AttributeName: Tên của thuộc tính ID mới
II.4 AddValues
Chèn thêm giá trị cho một thuộc tính
Chọn mục AddValue trong cây thư mục, ở bên phải nút Choose sẽ xuất hiện dòng chữ AddValues -C last -L Click chuột trái (hoặc click chuột phải chọn show properties…) vào dòng chữ này sẽ xuất hiện một hộp thoại cho phép bạn thiết lập các tham số:
Trang 10 AttributeIndex: Vị tri của thuộc tính cần thêm giá trị trong bảng dữ liệu.
Labels: các giá trị của thuộc tính cần thêm vào, mti giá trị cách nhau
bằng dấu phyy
Sort: chọn False thì các giá trị trong thuộc tính không được sắp xếp mà
giữ nguyên vị trí như lúc đưa vào Chọn true thì các giá trị trong thuộc tính được sắp xếp tăng dần như trong từ điển
II.5 ChangeDateFormat
Thay đổi định dạng kiểu ngày tháng
Chọn mục ChangeDateFormat trong cây thư mục, ở bên phải nút Choose
sẽ xuất hiện dòng chữ ChangeDateFormat -C last -F
yyyy-MM-dd'T'HH:mm:ss Click chuột trái (hoặc click chuột phải chọn show
properties…) vào dòng chữ này sẽ xuất hiện một hộp thoại cho phép bạn thiết
lập các tham số:
AttributeIndex: Vị trí thuộc tính cần thay đổi định dạng
DateFormat: Thiết lập định dạng mới cho thuộc tính được chọn.
II.6 Copy
Trang 11Cho phép bạn sao chép các thuộc tính trong bảng dữ liệu Sự sao chép này phụ thuộc vào các thông số mà bạn lựa chọn.
Chọn mục Copy trong cây thư mục, ở bên phải nút Choose sẽ xuất hiện dòng chữ Copy Click chuột trái (hoặc click chuột phải chọn show
properties…) vào dòng chữ này sẽ xuất hiện một hộp thoại cho phép bạn thiết
lập các tham số:
AttributeIndices: vị trí của thuộc tính cần copy nếu chọn false ở mục
invertSelection hoặc không cần copy nếu chọn true ở mục invertSelection
II.7 Discretize
Chỉ thực hiện trên các thuộc tính có giá trị là kiểu dữ liệu numeric Cho phépbạn chia khoảng giá trị của thuộc tính đó từ min đến max thành các khoảng giá trị nhỏ hơn
Chọn mục Discretize trong cây thư mục, ở bên phải nút Choose sẽ xuất hiện dòng chữ Discretize -B 10 -M -1.0 -R first-last Click chuột trái (hoặc click chuột phải chọn show properties…) vào dòng chữ này sẽ xuất hiện một hộp thoại cho phép bạn thiết lập các tham số:
Trang 12 AttributeIndices: vị trí của thuộc tính cần chia khoảng giá trị
Bins: Số khoảng sẽ được chia
II.8 MathEpression
Chỉ thực hiện trên các thuộc tính có giá trị là kiểu dữ liệu numeric
Cho phép bạn thay đổi giá trị của các thuộc tính thông qua các biểu thức toánhọc Có thể sử dụng các phép toán và hàm sau: +, -, *, /, pow, log,abs, cos, exp, sqrt, tan, sin, ceil, floor, rint, (, ),A,MEAN, MAX, MIN, SD, COUNT, SUM, SUMSQUARED, ifelse
Ví dụ: pow(A,6)/(MEAN+MAX)*ifelse(A<0,0,sqrt(A))+ifelse(![A>9 && A<15])
Chọn mục MathEpression trong cây thư mục, ở bên phải nút Choose sẽ xuất hiện dòng chữ MathExpression -E (A-MIN)/(MAX-MIN) Click chuột trái (hoặc click chuột phải chọn show properties…) vào dòng chữ này sẽ xuất hiện một hộp thoại cho phép bạn thiết lập các tham số:
Trang 13 Expression: Cho phép bạn nhập các biểu thức toán học
IgnoreRange: Vị trí của thuộc tính sẽ được bỏ qua sự thay đổi giá trị nếu
chọn False InvertSelection ở và ngược lại
II.10 Chuyển đổi kiểu dữ liệu
NominalToBinary: Đổi kiểu Nominal sang kiểu Binary
NominalToString: Đổi kiểu Nominal sang kiểu String
Trang 14 NumericToBinary: Đổi kiểu Numeric sang kiểu Binary
NumericToNominal: Đổi kiểu Numeric sang kiểu Nominal
StringToNominal: Đổi kiểu String sang kiểu Nominal
II.11 Remove
Xóa các thuộc tính không cần thiết đối với quá trình xử lí dữ liệu
Chọn mục Remove trong cây thư mục, ở bên phải nút Choose sẽ xuất hiện dòng chữ Remove Click chuột trái (hoặc click chuột phải chọn show
properties…) vào dòng chữ này sẽ xuất hiện một hộp thoại cho phép bạn thiết
lập các tham số:
AttributeIndices: Lựa chọn những thuộc tính mà bạn muốn xóa, các
thuộc tính cách nhau bằng dấu phyy, nếu nhiều thuộc tính liên tục nhau thì sử dụng dấu gạch ngang (-)
InvertSelection: Nếu như bạn chọn là False thì những thuộc tính bạn chọn sẽ bị xóa, còn nếu bạn chọn là true thì những thuộc tính bạn chọn sẽ không
bị xóa mà sẽ xóa những thuộc tính bạn không chọn
II.12 SwapValues
Đổi vị trí của hai giá trị của một thuộc tính
Chọn mục SwapValues trong cây thư mục, ở bên phải nút Choose sẽ xuất hiện dòng chữ SwapValues -C last -F first -S last Click chuột trái (hoặc click chuột phải chọn show properties…) vào dòng chữ này sẽ xuất hiện một hộp thoại cho phép bạn thiết lập các tham số:
Trang 15 AttributeIndex: Lựa chọn thuộc tính mà bạn muốn thay đổi vị trí hai giá
Trong tab này có 4 vùng là Classifier, Test Opions, Result list và
Classifier output, ngoài ra còn có một list box cho phép bạn chọn thuộc tính làm kết quả của việc phân lớp, một button để bắt đầu thực hiện việc phân lớp và button để kết thúc việc phân lớp
Trang 16Vùng Classifier:
Vùng này cho biết tên của thuật toán phân loại đang được chọn, mặc định là
zero Bạn có thể thay đổi thuật toán bằng cách click chuột vào trong vùng này và chọn một thuật toán mà bạn muốn Để thay đổi các thuộc tính cho thuật toán, click chuột trái (hoặc click chuột phải rồi chọn Show properties…) vào dòng chữ bên phải button
Vùng Test Option
Vùng này cho phép bạn lựa chọn các kiểu kiểm tra như:
Use training set:
Supplied test set:
Trang 17Vùng này chứa danh sách các kết quả đạt được sau khi thực hiện việc phân lớp Trong danh sách này bạn có thể chọn một kết quả vào nhấp chuột phải vào kết quả đó sẽ xuất hiện một danh sách cho phép bạn chọn như hình sau:
View in main window: Mở kết quả ở vùng classifies output
View in separate window: Mở kết quả ở một cửa sổ khác
Save result buffer: Lưu kết quả vào bộ nhớ
Delete result buffer: Xóa kết quả
Load model:
Save model:
Re-evaluate model on current test set:
Visualize classifier errors:
Visualize tree: Mở cây quyết định
Visualize margin cuve:
Visualize threshold cuve:
Visualize cost cuve:
Trang 18Associator:
Vùng này cho biết tên của thuật toán sẽ được sử dụng để tạo luật kết hợp Bạn có thể thay đổi thuật toán bằng cách click chuột vào trong vùng này và chọn một thuật toán mà bạn muốn Để thay đổi các thuộc tính cho thuật toán, click chuột trái (hoặc click chuột phải rồi chọn Show properties…) vào dòng chữ bên phải button
View in main window: Mở kết quả ở vùng Associator output
View in separate window: Mở kết quả ở một cửa sổ khác
Trang 19 Save result buffer: Lưu kết quả vào bộ nhớ
Delete result buffer: Xóa kết quả
III.Tiền xử lý dữ liệu
III Khai phá dữ liệu data:Glass
1 Tiền xử lý dữ liệu:
Ta thấy dữ liệu vẫn chưa phân chia rõ nên phải tiền xử lý dữ liệu Sau khi tiền
xử lý dữ liệu, ta được kết quả:
Trang 202 Khai phá dữ liệu:
Sau khi khai phá dữ liệu, ta thu được một số kết quả như sau: