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ố: • AttributeIndex: Vị trí của thuộc tính cần thêm vào trong bả
Trang 1ĐẠI HỌC HUẾ TRƯỜNG ĐẠI HỌC SƯ PHẠM
KHOA TIN HỌC
BÁO CÁO BÀI TẬP NHÓM
Đề tài:
TẠO LUẬT KẾT HỢP TRONG CƠ SƠ DỮ LIỆU BANK-DATA.CSV VỚI PHẦN MỀM WEKA
Giáo viên hướng dẫn Sinh viên thực hiện
Th.S Nguyễn Hương Giang Lưu Hải Phong
Trịnh Thị Hiền Nguyễn Thị Hằng Huế, 12/2009
I GIỚI THIỆU WEKA
Trang 2 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ó
Hình 1: Giao diện đồ họa của Weka
Các phiên bản của 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 3Trong 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
Trang 4II EXPLORER
Trong giao diện của Explorer có 6 tab
Hình 2: Giao diện đồ họa của 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.
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
Trang 5− 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:
Hình 3: Mở file trong Exporer
2 Preprocess
Trong cửa sổ của Preprocess có 4 vùng
• Vùng Filter
Cho bạn biết được giải thuật dùng để tiền xử lý dữ liệu đang được sử dụng Bạn
có thể thay đổi giải thuật đó bằng cách click vào button
Trang 6• 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 mỗi 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ệu 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,
temperature, humidity, windy và play Đầu tiên, theo mặc định là thuộc 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ộc tính.
Type: Kiểu dữ liệu của thuộc 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ị rỗng trong thuộc tính
Distinct: Cho biết số lượng các giá trị trong thuộc 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ặp lại trong thuộc tính
Trang 7Nếu thuộc tính bạn đang chọn có kiểu dữ liệu là Nominal thì bạn sẽ nhìn thấy trong vùng này một table gồm có các trường số thứ tự (NO.), tên các giá trị (lable), số lượng mỗi giá trị (Count) và trọng lượng của chúng (Weight) như sau:
Nếu thuộc tính bạn đang chọn có kiểu dữ liệu là numeric thì table có hai trường là số liệu 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), Độ lệch chuẩn (StdDev) như hình sau:
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ữ 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:
Trang 8Từ 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.
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òng chữ 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ố:
• 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.
• DateFormat : định dạng ngày
• NominalLabels: Giá trị của thuộc tính nếu thuộc tính có kiểu dữ liệu là
Nominal, các giá trị được cách nhau bằng dấu phẩy
thoại cho phép bạn thiết lập các tham số:
Trang 9• Debug: Nếu chọn False thì chương trình sẽ không kiểm tra lỗi 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ố:
Trang 10• 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ố:
• 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, mỗi giá trị cách nhau bằng
dấu phẩy
• 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ố:
Trang 11• 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.
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ép bạ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
Trang 12Chọ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ố:
• 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án họ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
Trang 13click 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ố:
• 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.9 MergerTwoValues
Gộp hai giá trị bất kỳ của một thuộc tính có kiểu dữ liệu Nominal thành một giá
trị, tên của giá trị mới có dạng: <tên giá trị 1>_<tên giá trị 2>
Chọn mục MergerTwoValues trong cây thư mục, ở bên phải nút Choose sẽ xuất hiện dòng chữ MergeTwoValues -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 14II.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
• 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ố:
Trang 15• 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 phẩy, 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
Trang 16Sau khi thiết lập các tham số, click vào để hoàn thành Tiếp đó click vào
để thực hiện
3 Tab Classify
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
• Vù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
Trang 17• 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:
đó 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:
Trang 18• Visualize tree: Mở cây quyết định
• Visualize margin cuve:
• Visualize threshold cuve:
• Visualize cost cuve:
• Vùng Classifier output
Đây là nơi hiện thị kết quả sau khi thực hiện phân lớp
3 Associate (luật kết hợp)
Gồm có 3 vùng: Associator, Associator output, Result list Ngoài ra còn có
một button để bắt đầu thực hiện việc tạo ra luật kết hợp, button để kết thúc
• Associator:
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
Trang 19• 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
• Save result buffer: Lưu kết quả vào bộ nhớ
• Delete result buffer: Xóa kết quả
III TẠO LUẬT KẾT HỢP VỚI CƠ SỞ DỮ LIỆU BAN-DATA.CSV
1 Cơ sở dữ liệu
Cơ sơ dữ liệu sử dụng để tạo luật kết hợp là “bank- data.cvs” CSDL này gồm
100 bản ghi, với 12 thuộc tính: ID (mã số), TUOI (tuổi), GIOI TINH (giới tính), KHU VUC (khu vực), THU NHAP (thu nhập), KET HON (kết hôn), CON (số con), XE (xe), TKTK (tài khoản tiết kiệm), TK_HIEN TAI (Tài khoản hiện tại), THE CHAP (thế chấp)
Sử dụng phần mềm Weka để tạo ra luật kết hợp quyết định cho một khách hàng được vay vốn hay không
2 Preprocess (Tiền xử lý )
2.1 Mở bảng dữ liệu bank- data.csv: sau khi khởi động Weka, chọn Exploer
Preproces open, sau đó chọn đường dẫn đến file bank-data.csv
2.2 Loại bỏ thuộc tính ID khỏi CSDL: Click chuột vào checkbox ở thuộc tính
ID, sau đó click vào
Trang 202.3 Chuyển đổi kiểu dữ liệu của thuộc tính TUOI thành kiểu Nominal với 3 giá
trị Thanh nien (Thanh niên), Trung nien (Trung niên), Gia(Già)
• Bước 1: Chọn mục MathExpression trong cây thư mục rồi thiết lập các
thông số trong hộp thoại của nó như sau:
Click vào để hoàn thành Tiếp đó click vào để thực hiện
• Bước 2: Chuyển đổi kiểu dữ liệu của trường TUOI sang kiểu Nominal
Sử dụng mục NumericToNominal
• Bước 3: Thêm các giá trị Thanh nien, Trung nien, Gia vào thuộc tính TUOI
Chọn mục AddValues ở cây thư mục và thiết lập các thông số trong hộp thoại
của nó như sau:
• Bước 4: Click vào button ở phía trên vùng Filter, sẽ xuất hiện một
bảng dữ liệu như sau: