Upload
mirana-shade
View
363
Download
21
Embed Size (px)
Citation preview
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
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
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
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
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
Đị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
@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
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
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
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
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
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
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
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)