1. Trang chủ
  2. » Luận Văn - Báo Cáo

TIỂU LUẬN MÔN HỌC KHAI PHÁ DỮ LIỆU: Sử dụng phần mềm weka khai phá bộ dữ liệu Zoo thực hiện bài toán phân lớp

27 990 9

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Sử dụng phần mềm Weka khai phá bộ dữ liệu Zoo thực hiện bài toán phân lớp
Tác giả Nguyễn Thị Lan Anh
Người hướng dẫn Hồ Nhật Quang, Giảng viên hướng dẫn
Trường học Học viện Kỹ thuật Quân sự
Chuyên ngành Công nghệ thông tin
Thể loại Tiểu luận
Định dạng
Số trang 27
Dung lượng 3,87 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TIỂU LUẬN MÔN HỌC KHAI PHÁ DỮ LIỆU Đề bài: Sử dụng phần mềm weka khai phá bộ dữ liệu Zoo thực hiện bài toán phân lớp Giảng viên hướng dẫn: Hồ Nhật Quang Họ và tên sinh viên: Nguyễn Thị Lan Anh Lớp : Công nghệ phần mềm 6 I.Tìm hiểu công cụ Weka dùng trong khai phá dữ liệu: 1. Giới thiệu: Weka là môi trường thử nghiệm khai phá dữ liệu 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ề khai phá dữ liệu. 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. 2. Cài đặt chương trình: - Link download: http://www.cs.waikato.ac.nz/ml/weka/ - Sau khi Download chương trình Weka về, bạn tiến hành cài đặt theo các bước: 2.1 Chạy file setup: 2.2 Chọn Next: 2.3 Chọn I Agree:

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

***********

TIỂU LUẬN MÔN HỌC KHAI PHÁ DỮ LIỆU

Đề bài: Sử dụng phần mềm weka khai phá bộ dữ liệu Zoo

thực hiện bài toán phân lớp

Giảng viên hướng dẫn: Hồ Nhật Quang

Họ và tên sinh viên: Nguyễn Thị Lan Anh

Lớp : Công nghệ phần mềm 6

Trang 2

[Pick the date]

I.Tìm hiểu công cụ Weka dùng trong khai phá dữ liệu:

1 Giới thiệu:

Weka là môi trường thử nghiệm khai phá dữ liệu 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ề khai phá dữ liệu 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

2 Cài đặt chương trình:

- Link download: http://www.cs.waikato.ac.nz/ml/weka/

- Sau khi Download chương trình Weka về, bạn tiến hành cài đặt theo các bước:

2.1 Chạy file setup:

Trang 3

[Pick the date]

2.2 Chọn Next:

2.3 Chọn I Agree:

2.4 Chọn Next:

Trang 4

[Pick the date]

2.5 Chọn Next:

2.6 Chọn Next:

2.7 Click chọn Install để tiến hành cài đặt:

Trang 5

[Pick the date]

2.8 Kết thúc quá trình cài đặt:

Giao Diện của chương trình:

Hình 1: Giao diện Weka

3 Các thành phần của chương trình:

Trong phần Application có 4 phần:

Explorer: Sử dụng Menu lựa chọn Explorer chỉ sử dụng cho bộ dữ liệu vừa và

nhỏ (tập chung vào phần này)

Experimenter: Cho phép người dùng thực hiện những bài tập cơ bản : 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

Trang 6

[Pick the date]

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

Simple CLI:Sử dụng câu lệnh.

Hình 2: Màn hình giao diện Explorer

3.1 Chức năng của các Tab:

1 Preprocess: Tiền xử lý dữ liệu.

2 Classify: Để huấn luyện và kiểm tra các mô hình học máy (phân loại, hoặc

hồi quy/dự đoán)

3 Cluster: Tạo phân cụm cho cơ sở dữ liệu.

4 Associate: Tạo luật kết hợp cho dữ liệu và đánh giá chúng.

5 Select attributes: Lựa chọn những thuộc tính liên quan nhất trong tập dữ

liệu

6 Visualize: Nhìn thấy sự khác nhau hai chiều của dữ liệu và sự tuơng tác

giữa chúng

Chúng ta đi vào tìm hiểu một số tab:

3.2 Preprocess: ( Đưa dữ liệu vào)

Tab Preprocess có các nút:

Trang 7

[Pick the date]

i) Nút : Mở các file dữ liệu có sẵn trong máy

iii) Nút : Đọc dữ liệu từ một cơ sở dữ liệu

iv) Nút : Phần mềm tự tạo ra dữ liệu cho bạn theo

Trang 8

[Pick the date]

3.3 Tab preprocess:

Trong cửa sổ của Preprocess có 4 vùng:

3.1.1.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

3.1.2.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.

Trang 9

[Pick the date]

Ví dụ: Khi file đã được mở, màn hình sẽ được thể hiện trong hình, trong vùng Current

Relation:

Cho 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à Zoo nó có 101 bản ghi và 18 thuộc tính

3.1.3 Vùng Attributes (Những thuộc tính)

Ở dưới hộp Current Relation là hộp Attributes:

Tên các thuộc tính ở bảng sau và ta có thể chọn những thuộc tính khác bằng cách click chuột vào nó

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.

Trang 10

[Pick the date]

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

3.1.4 Vùng Selected Attribute:

a Name: Tên thuộc tính.

b Type: Kiểu dữ liệu của thuộc tính đó.

c 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

d Distinct: Cho biết số lượng các giá trị trong thuộc tính.

e 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

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 11

[Pick the date]

4 Tab Classify:

Trong tab này có 4 vùng là

4.1.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 Ta 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 12

[Pick the date]

4.2.Vùng Test Opions:

Vùng này cho phép bạn lựa chọn các kiểu kiểm tra như:

- Use training set: Dữ liệ được đào tạo

- Supplied test set: Dữ liệu kiểm tra

- Cross-validation: Tập dữ liệu sẽ được chia đều thành k tập (folds) có kích thước xấp xỉ nhau, và bộ phân loại học được sẽ được đánh giá bởi phương pháp cross-validation

- Percentage split: phần trăm dữ liệu học và kiểm tra

Ngoài ra trong vùng này còn có button cho phép bạn thiết lập một số tham

số khác

4.3.Vùng Result List

Vù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:

Trang 13

[Pick the date]

i) View in main window: Mở kết quả ở vùng classifies output

ii) View in separate window: Mở kết quả ở một cửa sổ khác

iii)Save result buffer: Lưu kết quả vào bộ nhớ

iv)Delete result buffer: Xóa kết quả

v) Visualize tree: Mở cây quyết định

4.4.Vùng Classifier output: Đây là nơi hiển thị kết quả sau khi thực hiện phân lớp.

II Áp dụng vào bài toán:

1.Mô tả dữ liệu Zoo:

Trang 14

[Pick the date]

Chia dữ liệu ra gồm 7 lớp như sau:

Class# Set of animals:

====== ====================================================

1 (41) aardvark, antelope, bear, boar, buffalo, calf, cavy, cheetah, deer, dolphin,

elephant, fruitbat, giraffe, girl, goat, gorilla, hamster, hare, leopard, lion, lynx, mink, mole, mongoose, opossum, oryx, platypus, polecat, pony, porpoise, puma, pussycat, raccoon, reindeer, seal, sealion, squirrel, vampire, vole, wallaby,wolf

2 (20) chicken, crow, dove, duck, flamingo, gull, hawk, kiwi, lark, ostrich, parakeet, penguin, pheasant, rhea, skimmer, skua, sparrow, swan, vulture, wren

3 (5) pitviper, seasnake, slowworm, tortoise, tuatara

4 (13) bass, carp, catfish, chub, dogfish, haddock, herring, pike, piranha, seahorse, sole,stingray, tuna

5 (4) frog, frog, newt, toad

6 (8) flea, gnat, honeybee, housefly, ladybird, moth, termite, wasp

7 (10) clam, crab, crayfish, lobster, octopus, scorpion, seawasp, slug, starfish, worm

- Cơ sở dữ liệu gồm có chứa 17 thuộc tính với kiểu Boolen

- “Type” cũng là tên thuộc tính của lớp

- Có 1 vấn đề xảy ra là đối tượng “frog” có thể có hai trường hợp có thể hiểu là “conếch” và “cô gái”

- Giá trị các thuộc tính thiếu: không

- Cần chia làm 7 lớp như phần trên

Các thuộc tính:

instance

Trang 15

[Pick the date]

values:{0,2,4,5,6,8})

18

values in range [1,7])

Trang 16

[Pick the date]

2.Bài toán đặt ra:

2.1.Xử lý dữ liệu dạng thô:

Dữ liệu đã cho ở dạng zoo.data, zoo.names cần chuyển về dạng file csv ta làm như sau:

- Chuyển file zoo.data coppy vào notepad rồi lưu lại ở dạng zoo.text

- Mở Exel để chuyển đổi dữ liệu theo cột và sau đó chèn thêm các thuộc tính tương ứng theo hàng ở đầu file Exel rồi Save as ở dạng file csv thì Weka mới đọc được

- Làm các bước trên theo

link: http://10hc.info/showthread.php?994-10HCB-_V%E0i-hng-dn-v-Weka!

- Ở bài này mình có sẵn file arff

Qua link http://www.liacs.nl/~edegraaf/assign1.html

2.2.Tiến hành phân lớp:

Yêu cầu bài toán dữ liệu bao gồm 101 tên của các con vật giờ muốn phân chúng thành

7 lớp và đặt tên cho các lớp đó, chứ không phải ký hiệu [1, 7] như trong dữ liệu thô.Khi xuất ra Exel thì trong file đó:

- Type: dạng số [1, 7] thành -> tên class: mammal - động vật có vú, bird - gia cầm, reptile - loài bò sát, fish - cá, amphibian - lưỡng cư, insect – côn trùng,

invertebrate – động vật không xương sống

3.Tìm hiểu về phân lớp – Classify:

3.1.Quá trình khai phá dữ liệu:

Quá trình khai phá dữ liệu bắt đầu bằng cách xác định chính xác vấn đề cần giải quyết Sau đó sẽ xác định các dữ liệu liên quan dùng để xây dựng giải pháp Bước tiếp theo là thu thập các dữ liệu có liên quan và xử lý chúng thành định dạng sao cho các thuật toán khai phá dữ liệu có thể hiểu được Về lý thuyết thì có vẻ rất đơn giản nhưng khi thực hiện thì đây thực sự là một quá trình rất khó khăn, gặp phải nhiều vướng mắc

Trang 17

[Pick the date]

như dữ liệu phải được sao ra nhiều bản (nếu được chiết suất vào các tệp), quản lý tập các tệp dữ liệu, phải lặp đi lặp lại nhiều lần toàn bộ quá trình (nếu mô hình dữ liệu thayđổi)

Bước tiếp theo là chọn thuật toán khai phá dữ liệu thích hợp và thực hiện việc khai phá để tìm được các mẫu có ý nghĩa dưới dạng biểu diễn tương ứng với các ý nghĩa đó.Thông thường các mẫu được biểu diễn dưới dạng luật phân loại, cây quyết định, luật sản xuất, biểu thức hồi quy,

3.2 Chọn thuật toán:

Bayes: Thuật toán NaiveBayes

Naive Bayes là một trong những phương pháp phân lớp dựa vào xác suất điển hình nhất trong khai thác dữ liệu và tri thức

Phân lớp Naive Bayesian :

Giả thuyết Naive : thuộc tính là độc lập

P(x1, ,xk|C)=P(x1|C) P(xk|C)Nếu thuộc tính thứ i là xát thực :

P(xi |C) được ước lượng như là tần suất tương đối của những mẫu có giá trị xi như

là thuộc tính thứ i trong lớp C

Trang 18

[Pick the date]

Nếu thuộc tính thứ i là liên tục P(xi |C) được ước lượng thơng qua hàm mật độ Gaussian Việc tính tốn là dễ dàng trong cả hai trường hợp Ví dụ play-tennis : phân lớp X Cho mẫu chưa được thấy như sau X=<rain,hot,high,false>

P(X|p).P(p)=P(rain|p).P(hot|p).P(high|p).P(false|p).P(p) = 3/9.2/9.3/9.6/9.9/14=0.010582P(rain|n).P(hot|n).P(high|n).P(false|n).P(n)=2/5.2/5.4/5.5/14=0.018286

Mẫu X được phân lớp vào lớp n

Giải thuật Nạve Bayes viết bằng mã giả như sau:

Trang 19

[Pick the date]

Trees: Thuật toán J48

Cây quyết định (Decision Tree) là một cây phân cấp có cấu trúc được dùng để phân lớpcác đối tượng dựa vào dãy các luật (series of rules) Các thuộc tính của đối tượng (ngoạitrừ thuộc tính phân lớp – Category attribute) có thể thuộc các kiểu dữ liệu khác nhau(Binary, Nominal, ordinal, quantitative values) trong khi đó thuộc tính phân lớp phải cókiểu dữ liệu là Binary hoặc Ordinal

Tóm lại, cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp (classes) của nó,cây quyết định sẽ sinh ra các luật để dự đoán lớp của các đối tượng chưa biết (unseendata)

Cây quyết định là một phương pháp phân lớp rất hiệu quả và dễ hiểu Tuy nhiên có một

số chú ý khi sử dụng cây quyết định trong xây dựng các mô hình phân lớp như sau:

Trang 20

[Pick the date]

Hiệu của phân lớp của cây quyết định (Series of Rules) phụ thuộc rất lớn vào trainingdata Chẳn hạn cây quyết định được tạo ra bởi chỉ giới hạn 10 samples training data trong

ví dụ trên thì hiệu quả ứng dụng cây quyết định để dự đoán các trường hợp khác là khôngcao (thường training data phải đủ lớn và tin cậy) và vì vậy ta không thể nói rằng tập cácluật (Series of Rules) được sinh ra bở cây quyết định trên là tập luật tốt nhất

Có rất nhiều thuật toán phân lớp như ID3, J48, C4.5, CART (Classification andRegression Tree),… Việc chọn thuật toán nào để có hiệu quả phân lớp cao tuy thuộc vàorất nhiều yếu tố, trong đó cấu trúc dữ liệu ảnh hưởng rất lớn đến kết quả của các thuậttoán Chẳn hạn như thuật toán ID3 và CART cho hiệu quả phân lớp rất cao đối với cáctrường dữ liệu số (quantitative value) trong khi đó các thuật toán như J48, C4.5 có hiệuquả hơn đối với các dữ liệu Qualititive value (ordinal, Binary, nominal)

3.3 Tìm hiểu Cross-validation:

Để tránh việc trùng lặp giữa các tập kiểm thử (một số ví dụ cùng xuất hiện trong các tập kiểmthử khác nhau)

- k-fold cross-validation

+Tập toàn bộ các ví dụ D được chia thành k tập con không giao nhau

(gọilà “fold”) có kích thước xấp xỉ nhau

+Mỗi lần (trong số k lần) lặp, một tập con được sử dụng làm tập kiểm thử,

và (k-1) tập con còn lại được dùng làm tập huấn luyện

+k giá trị lỗi (mỗi giá trị tương ứng với một fold) được tính trung bình cộng để thu được giá trị lỗi tổng thể

- Các lựa chọn thông thường của k: 10, hoặc 5

- Thông thường, mỗi tập con (fold) được lấy mẫu phân tầng (xấp xỉ phân bố lớp) trước khi áp dụng quá trình đánh giá Cross-validation

- Phù hợp khi ta có tập ví dụ D vừa và nhỏ

Trang 21

[Pick the date]

4.Thực hiện:

Giai đoạn tiền xử lý:

Trang 22

[Pick the date]

Biểu đồ mô tả dataset Zoo:

Trang 23

[Pick the date]

5.Tiến hành Phân lớp:

1 NaiveBayes:

Chọn Classify->Choose -> Naive Bayesnet, chọn cả cross-validate (folds: 10) -> Start

Trang 24

[Pick the date]

Ta được kết quả:

Kết quả:

- Phân loại được 7 lớp và xác định tên của các lớp mammal - động vật có vú, bird - gia cầm, reptile - loài bò sát, fish - cá, amphibian - lưỡng cư, insect – côn trùng, invertebrate – động vật không xương sống

- Correctly Classified Instances 96 95.0495 %

Có 96 Trường hợp phân lớp đúng chiếm 95.0495 %

- Incorrectly Classified Instances 5 4.9505 %

Có 5 trường hợp phân lớp sai chiếm 4.9505 %

Classfy - > Choose -> classifiers-> trees -> J48 Chọn Cross-validation (folds: 10)

Trang 25

[Pick the date]

Ta có kết quả như sau:

Kết quả:

- Correctly Classified Instances 93 92.0792 %

Trang 26

[Pick the date]

Có 93 Trường hợp phân lớp đúng chiếm 92.0792 %

- Incorrectly Classified Instances 8 7.9208 %

Có 8 trường hợp phân lớp sai chiếm 7.9208 %

Trang 27

[Pick the date]

Ngày đăng: 16/12/2013, 15:08

HÌNH ẢNH LIÊN QUAN

Hình 1: Giao diện Weka - TIỂU LUẬN MÔN HỌC KHAI PHÁ DỮ LIỆU: Sử dụng phần mềm weka khai phá bộ dữ liệu Zoo thực hiện bài toán phân lớp
Hình 1 Giao diện Weka (Trang 5)
Hình 2: Màn hình giao diện Explorer - TIỂU LUẬN MÔN HỌC KHAI PHÁ DỮ LIỆU: Sử dụng phần mềm weka khai phá bộ dữ liệu Zoo thực hiện bài toán phân lớp
Hình 2 Màn hình giao diện Explorer (Trang 6)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w