weka

14
8/15/2012 1 WEKA Đại Học Khoa Học Tự Nhiên TP.HCM Khoa Công Nghệ Thông Tin Biên soạn: Nguyễn Hoàng Khai Nội dung Giới thiệu Weka Lịch sử phát triển Các phiên bản Các chương trình con Định dạng tập tin Khảo sát dữ liệu với Explorer Tiền xử lý dữ liệu Khai thác luật kết hợp Phân lớp Gom nhóm 2

Upload: jb-khoi

Post on 27-Oct-2014

534 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Weka

8/15/2012

1

WEKA

Đại Học Khoa Học Tự Nhiên TP.HCM Khoa Công Nghệ Thông Tin

Biên soạn: Nguyễn Hoàng Khai

Nội dung

• Giới thiệu Weka

• Lịch sử phát triển

• Các phiên bản

• Các chương trình con

• Định dạng tập tin

• Khảo sát dữ liệu với Explorer

• Tiền xử lý dữ liệu

• Khai thác luật kết hợp

• Phân lớp

• Gom nhóm

2

Page 2: Weka

8/15/2012

2

Weka

• Waikato Environment for Knowledge Analysis

• Được phát triển bởi ĐH Waikato, New Zealand.

• Là phần mềm mã nguồn mở tích hợp các thuật toán máy học & khai thác dữ liệu

• Cung cấp các chức năng cơ bản của khai thác dữ liệu:

• Khảo sát dữ liệu

• Thống kê & học máy

• Thực nghiệm & kiểm chứng mô hình

• Sử dụng trong nghiên cứu, giảng dạy và ứng dụng.

3

Lịch sử phát triển

• 1993: Xây dựng nền tảng kiến trúc và giao diện

• 1994: Phát hành phiên bản Weka đầu tiên

• 1997: Bắt đầu xây dựng lại Weka bằng Java

• 1999: Hoàn thiện Weka 100% Java

• 2005: SIGKDD Data Mining and Knowledge Discovery Service Award

• Xếp hạng trên Sourgeforce.net (2009/09/16):

245 (1,630,936 lượt download)

4

Page 3: Weka

8/15/2012

3

Các phiên bản Weka

• Snapshot: Các bản vá lỗi mới nhất, cập nhật liên tục

• Book: Phiên bản gồm các chức năng được mô tả theo cuốn Data Mining: Practical Machine Learning Tools and Techniques của Ian Witten và Eibe Frank. (3.4.x)

• Developer: Phiên bản hỗ trợ nhiều tính năng mới nhưng chưa ổn định (3.7.x)

• Stable: Phiên bản ổn định nhất. (3.6.x)

• Trang chủ Weka: http://www.cs.waikato.ac.nz/ml/weka/

• Source code:

https://svn.scms.waikato.ac.nz/svn/weka/

5

Các chương trình con

6

Page 4: Weka

8/15/2012

4

Explorer

• Chương trình chính của Weka.

• Khảo sát dữ liệu, tiền xử lý, phân lớp, gom nhóm…

7

Simple CLI

• Tương tự Explorer, giao diện command-line

8

Page 5: Weka

8/15/2012

5

Experimenter

• Thực nghiệm, kiểm chứng và so sánh các mô hình máy học trên các tập dữ liệu

9

KnowledgeFlow

• Gồm các chức năng của Explorer, đồng thời cho phép kết nối & tổng hợp các thuật toán với giao diện đồ thị trực quan

10

Page 6: Weka

8/15/2012

6

Định dạng ARFF

1. Phần Header: Chứa các khai báo

• @relation <tên dữ liệu>

• @attribute <tên thuộc tính 1> <Kiểu dữ liệu>

• @attribute <tên thuộc tính 2> <Kiểu dữ liệu>

• @attribute <tên thuộc tính n> <Kiểu dữ liệu>

2. Phần dữ liệu: Chứa dữ liệu

• @data

• Instance 1

• Instance 2

• Instance n

11

Định dạng ARFF

• Các kiểu dữ liệu

• Numeric @ATTRIBUTE name numeric

• Nominal @ATTRIBUTE class {setosa, versicolor}

• String @ATTRIBUTE name string

• Date @ATTRIBUTE discovered date

• Dữ liệu thiếu: Ký hiệu “?”

12

Page 7: Weka

8/15/2012

7

@relation heart-disease-simplified

@attribute age numeric

@attribute sex { female, male}

@attribute chest_pain_type { typ_angina, asympt,

non_anginal, atyp_angina}

@attribute cholesterol numeric

@attribute exercise_induced_angina { no, yes}

@attribute class { present, not_present}

@data

63,male,typ_angina,233,no,not_present

67,male,asympt,286,yes,present

67,male,asympt,229,yes,present

38,female,non_anginal,?,no,not_present

...

Định dạng ARFF

13

Khảo sát dữ liệu với Explorer

• Tiền xử lý

• Khai thác luật kết hợp

• Phân lớp

• Gom nhóm

• Chọn lọc thuộc tính

• Biễu diễn dữ liệu

• Phiên bản sử dụng trong slide: Weka 3.6.1 14

Page 8: Weka

8/15/2012

8

Hiển thị thông tin về dữ liệu

Dữ liệu: • Tên dữ liệu • Số mẫu • Số thuộc tính

Thuộc tính • Tên thuộc tính • Kiểu dữ liệu • Số mẫu thiếu giá trị • Số giá trị khác nhau • Số mẫu có giá trị khác biệt • Các thông tin khác

Biểu đồ quan hệ giữa các thuộc tính 15

Tiền xử lý

• Các tác vụ tiền xử lý trong Weka được gọi là Filter

Cấu hình Filter

16

Page 9: Weka

8/15/2012

9

Các bộ lọc hỗ trợ bởi Weka

• Cung cấp 68 bộ lọc.

• Hỗ trợ các thông dụng như lấy mẫu lại, rời rạc hóa, chuẩn hóa, thay thế giá trị thiếu, chọn lọc thuộc tính, tổng hợp thuộc tính, …

• Lọc mẫu: Resample, Randomize, Normalize, Remove Frequent Values, …

• Lọc thuộc tính: Dicretize, Replace Missing Values, Add, Copy, Remove, Reorder, Add Values, Add Noise, ...

• Cho phép thiết lập cấu hình cho từng bộ lọc.

• Cho phép kết hợp nhiều bộ lọc khác nhau (Multi Filter).

17

Ví dụ: Rời rạc hóa dữ liệu

• Trước khi rời rạc

• Rời rạc bằng bộ lọc Discretize.

Chia 5 giỏ theo độ sâu

• Kết quả

18

Page 10: Weka

8/15/2012

10

Khai thác luật kết hợp

• Cung cấp 6 thuật toán khai thác luật kết hợp:

• Apriori

• Predictive Apriori

• Filtered Associator

• Generalized Sequence Patterns

• Hotspot

• Tertius

19

Phân lớp

• Khoảng 80 thuật toán phân lớp, được chia thành nhiều nhóm:

• Bayes: Naïve Bayes, Bayes Net, …

• Hàm phân lớp: Gaussian, Liner Regression, SVM, …

• Cây: ID3, J48, NBTree, …

• Các thuật toán phân lớp dựa trên luật.

• Lazy: K*, …

20

Page 11: Weka

8/15/2012

11

Gom nhóm

• Cung cấp 11 thuật toán gom nhóm:

• DBScan

• Simple K Means

• X Means

• Farthest First

• EM

21

• Apriori

• FPGrowth

• Filtered Associator

• Generalized Sequental Patterns

• Hot Spot

• Predictive Apriori

• Tertius

Ví dụ Khai thác luật kết hợp với Weka

22

Page 12: Weka

8/15/2012

12

Apriori

• Khai thác tập phổ biến & luật kết hợp

• Hỗ trợ nhiều độ đo tính lý thú

• Tất cả các thuộc tính phải là rời rạc

Các tham số của Apriori

Page 13: Weka

8/15/2012

13

Các tham số của Apriori

• car: Chỉ có thuộc tính phân lớp ở vế phải của luật

• Dùng false để khai thác tất cả LKH.

• classIndex: Vị trí thuộc tính phân lớp trong dư liệu

• Mặc định: -1 (thuộc tính cuối cùng)

• lowerBoundMinSupport: giá trị MinSup của tập phổ biến.

• outputItemSets: xuất các tập phổ biến.

Các tham số của Apriori

• metricType: độ đo tính lý thú của LKH

• Confident (mặc định)

• Lift

• Leverage

• Conviction

• minMetric: độ lý thú chấp nhận được

• numRules: số LKH cần khai thác

• Thường dùng số đủ lớn để khai thác tất cả.

• significanceLevel: Tính lại 4 độ đo lý thú cho LKH sau khi khai thác

Page 14: Weka

8/15/2012

14

Ví dụ

• Dữ liệu: Weather.Nominal

• Numrules: 10, minsup: 0.1 minconf = 0.8

• Kết quả: 1. outlook=overcast 4 ==> play=yes 4 conf:(1)

2. temperature=cool 4 ==> humidity=normal 4 conf:(1)

3. humidity=normal windy=FALSE 4 ==> play=yes 4 conf:(1)

4. outlook=sunny play=no 3 ==> humidity=high 3 conf:(1)

5. outlook=sunny humidity=high 3 ==> play=no 3 conf:(1)

6. outlook=rainy play=yes 3 ==> windy=FALSE 3 conf:(1)

7. outlook=rainy windy=FALSE 3 ==> play=yes 3 conf:(1)

8. temperature=cool play=yes 3 ==> humidity=normal 3 conf:(1)

9. humidity=normal 7 ==> play=yes 6 conf:(0.86)

10. play=no 5 ==> humidity=high 4 conf:(0.8)