MỤC LỤC I. Mô tả bài toán 3 II. Trich trọn đặc tính 3 1. Ý nghĩa và các phương pháp trích chọn đặc tính 3 2. Trích chọn thuộc tính trong Weka 4 III. Tiền xử lý dữ liệu 8 A. Giới thiệu về tiền xử lý dữ liệu (Data Preprocessing) 8 B. Tiền xử lí dữ liệu với bài toán đã chọn 9 Lưu lại dưới file tae_data.arff 10 C. Thuật toán phân lớp 10 1. Thực hiện thuật toán 10 3. Đánh giá thuật toán 15 I. Mô tả bài toán Dữ liệu bao gồm các đánh giá về hiệu suất giảng dậy qua 3 học kỳ thường xuyên và 2 học kỳ mùa hè của 151 trợ giảng làm nhiệm vụ tại Cục Thống kê của Đại học Wisconsin-Madison. Điểm số được chia thành 3 loại tương đương ("thấp", "trung bình", và "cao") để đánh giá, bao gồm 6 thuộc tính và 151 bộ dữ liệu. Em sẽ chọn thực hiện thuật toán phân lớp trên bộ dữ liệu này. II. Trich trọn đặc tính 1. Ý nghĩa và các phương pháp trích chọn đặc tính - Các phương pháp trích chọn thuộc tính thường tính trọng số (score) của các thuộc tính và sau đó chỉ chọn các thuộc tính có trọng số tốt nhất để sử dụng cho mô hình. Các phương pháp này cho phép bạn hiệu chỉnh ngưỡng (threshold) để lấy ra các thuộc tính có Score trên ngưỡng cho phép. Quá trình trích chọn thuộc tính luôn được thực hiện trước quá trình Training Model. - Một số phương pháp chọn thuộc tính (Feature Selection Methods): Có rất nhiều phương pháp để lựa chọn thuộc tính tùy thuộc vào cấu trúc của dữ liệu dùng cho mô hình và thuật toán được dùng để xây dựng mô hình. Sau đây là một số phương pháp phổ biến dùng trong trích chọn thuộc tính: • interestingness score: Được sử dụng để xếp hạng (rank) các thuộc tính đối với các thuộc tính có kiểu dữ liệu liên tục (continuous). Một thuộc tính được xem là Interesting nếu nó mang một vài thông tin hữu ích (thế nào là thông tin hữu ích tùy thuộc vào vấn đề đang phân tích của bạn). Để đo lường mức độ interestingness, người ta thường dựa vào entropy (một thuộc tính với phân bố ngẫu nhiên có entropy cao hơn và có information gain (độ lợi thông tin) thấp hơn) vì vậy các thuộc tính đó gọi là less interesting). Entropy của một thuộc tính nào đó sẽ được so sánh với entropy của tất cả các thuộc tính còn lại theo công thức sau: Interestingness(Attribute) = - (m - Entropy(Attribute)) * (m - Entropy(Attribute)) Trong đó m gọi là entropy trung tâm (Central entropy- có nghĩa là entropy của toàn bộ tập thuộc tính) • Shannon's Entropy: Được sử dụng đối với các dữ liệu kiểu rời rạc (discretized data). Shannon's entropy đo lường độ bất định (uncertainty) của biến ngẫu nhiên đối với một kết quả cụ thể (particular outcome). Ví dụ, entropy của việc tung một
Trang 1BÁO CÁO 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
Teaching Assistant Evaluation với thuật toán phân lớp
Giảng viên hướng dẫn: Hồ Nhật Quang Học viên thực hiện: Chu Tuấn Linh
Trang 2MỤC LỤC
I Mô tả bài toán 3
II Trich trọn đặc tính 3
1 Ý nghĩa và các phương pháp trích chọn đặc tính 3
2 Trích chọn thuộc tính trong Weka 4
III Tiền xử lý dữ liệu 8
A Giới thiệu về tiền xử lý dữ liệu (Data Preprocessing) 8
B Tiền xử lí dữ liệu với bài toán đã chọn 9
Lưu lại dưới file tae_data.arff 10
C Thuật toán phân lớp 10
1 Thực hiện thuật toán 10
3 Đánh giá thuật toán 15
Trang 3Dữ liệu bao gồm các đánh giá về hiệu suất giảng dậy qua 3 học kỳ thường xuyên
và 2 học kỳ mùa hè của 151 trợ giảng làm nhiệm vụ tại Cục Thống kê của Đại học Wisconsin-Madison Điểm số được chia thành 3 loại tương đương ("thấp", "trung bình",
và "cao") để đánh giá, bao gồm 6 thuộc tính và 151 bộ dữ liệu Em sẽ chọn thực hiện thuật toán phân lớp trên bộ dữ liệu này
II Trich trọn đặc tính
1 Ý nghĩa và các phương pháp trích chọn đặc tính
thuộc tính và sau đó chỉ chọn các thuộc tính có trọng số tốt nhất để sử dụng cho mô hình Các phương pháp này cho phép bạn hiệu chỉnh ngưỡng (threshold) để lấy ra các thuộc tính có Score trên ngưỡng cho phép Quá trình trích chọn thuộc tính luôn được thực hiện trước quá trình Training Model
- Một số phương pháp chọn thuộc tính (Feature Selection Methods): Có
rất nhiều phương pháp để lựa chọn thuộc tính tùy thuộc vào cấu trúc của dữ liệu dùng cho
mô hình và thuật toán được dùng để xây dựng mô hình Sau đây là một số phương pháp phổ biến dùng trong trích chọn thuộc tính:
interestingness score: Được sử dụng để xếp hạng (rank) các thuộc tính đối
với các thuộc tính có kiểu dữ liệu liên tục (continuous) Một thuộc tính được xem là Interesting nếu nó mang một vài thông tin hữu ích (thế nào là thông tin hữu ích tùy thuộc
vào vấn đề đang phân tích của bạn) Để đo lường mức độ interestingness, người ta thường dựa vào entropy (một thuộc tính với phân bố ngẫu nhiên có entropy cao hơn và
có information gain (độ lợi thông tin) thấp hơn) vì vậy các thuộc tính đó gọi là less
interesting) Entropy của một thuộc tính nào đó sẽ được so sánh với entropy của tất cả
các thuộc tính còn lại theo công thức sau:
Interestingness(Attribute) = (m Entropy(Attribute)) * (m -Entropy(Attribute))
Trong đó m gọi là entropy trung tâm (Central entropy- có nghĩa là entropy của toàn
bộ tập thuộc tính)
Shannon's Entropy: Được sử dụng đối với các dữ liệu kiểu rời rạc
(discretized data) Shannon's entropy đo lường độ bất định (uncertainty) của biến ngẫu nhiên đối với một kết quả cụ thể (particular outcome) Ví dụ, entropy của việc tung một
Trang 4đồng xu có thể biểu diễn bằng một hàm của xác suất của khả năng xuất hiện mặt sấp hay
ngửa Shannon's entropy được tính theo công thức sau
H(X) = -∑ P(xi) log(P(xi))
khác cũng thường được sử dụng trong lựa chọn thuộc tính như Bayesian with K2 Prior,
Bayesian Dirichlet Equivalent with Uniform Prior
2 Trích chọn thuộc tính trong Weka
bao gồm 2 phần:
Evaluator Để xác định một phương pháp đánh giá mức độ phù hợpcủa các thuộc tính
+ Vd: correlation-based, wrapper, information gain, chisquared squared,…
+ Vd: best-first, random, exhaustive, ranking,…
xét 1 người có bị bệnh về tuyến giáp hay không, ví dụ như: , ta sử dụng công cụ trích chọn thuộc tính như sau:
- Mở weka, chọn mở cơ sở dữ liệu tae_data.csv, ta được như sau:
Trang 5- Chọn tab “Select attributes”, trong mục “Attribute Evaluaror” chọn WrapperSubsetEval, trong mục Classifier chọn NaiveBayes như hình sau
Trang 6- Trong mục Search Method chọn GredySteepWise, và làm như sau:
Trang 7- Bấm Start để thực hiện, ta được kết quả như sau:
Trang 8Như vậy chúng ta sử dụng cả thuộc tính để khai phá dữ liệu
III Tiền xử lý dữ liệu
A Giới thiệu về tiền xử lý dữ liệu (Data Preprocessing)
- Trong qui trình khai phá dữ liệu, công việc xử lý dữ liệu trước khi đưa vào các mô hình là rất cần thiết, bước này làm cho dữ liệu có được ban đầu qua thu thập dữ liệu (gọi là dữ liệu gốc original data) có thể áp dụng được (thích hợp) với các mô hình khai phá dữ liệu (data mining model) cụ thể Các công việc cụ thể của tiền xử lý dữ liệu bao gồm những công việc như:
o Filtering Attributes: Chọn các thuộc tính phù hợp với mô hình
Trang 9o Filtering samples: Lọc các mẫu (instances, patterns) dữ liệu cho mô
hình
o Clean data: Làm sạch dữ liệu như xóa bỏ các dữ liệu bất thường (Outlier) Transformation: Chuyển đổi dữ liệu cho phù hợp với các mô
hình như chuyển đổi dữ liệu từ numeric qua nomial hay ordinal
o Discretization (rời rạc hóa dữ liệu): Nếu bạn có dữ liệu liên tục nhưng
một vài mô hình chỉ áp dụng cho các dữ liệu rời rạc (như luật kết hợp chẳn hạn) thì bạn phải thực hiện việc rời rạc hóa dữ liệu
B Tiền xử lí dữ liệu với bài toán đã chọn
Trong bài toán của mình, em thấy có những vấn đề sau về tiền xử lí dữ liệu:
Loại bỏ thuộc tính class attribute vì thuộc tính này không dùng trong mô hình Quá trình này gọi là lọc thuộc tính (Filtering Attribute)
Trang 10Lưu lại dưới file tae_data.arff
C Thuật toán phân lớp
1 Thực hiện thuật toán
Trong bài toán này, ta sẽ áp dụng thử 2 thuật toán phân lớp, đó là: cây quyết định J48
Kết quả khi J48 với các thông số thiết đặt trên:
=== Run information ===
Scheme: weka.classifiers.trees.J48 -C 0.25 -M 2
tae_data-weka.filters.unsupervised.attribute.NumericToBinary-
weka.filters.unsupervised.attribute.Remove-R6-weka.filters.unsupervised.attribute.NumericToBinary
Instances: 151
Attributes: 5
English speaker _binarized
Course instructor _binarized
Course_binarized
Trang 11semester_binarized
Class size _binarized
Test mode: 10-fold cross-validation
=== Classifier model (full training set) ===
J48 pruned tree
-: 1 (151.0)
Size of the tree : 1
Time taken to build model: 0 seconds
=== Stratified cross-validation ===
=== Summary ===
Correctly Classified Instances 151 100 % Incorrectly Classified Instances 0 0 % Kappa statistic 1
Trang 12Mean absolute error 0
Root mean squared error 0
Relative absolute error 0 %
Root relative squared error 0 %
Total Number of Instances 151
=== Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure ROC Area Class 0 0 0 0 0 ? 0
1 0 1 1 1 ? 1
Weighted Avg 1 0 1 1 1 0
=== Confusion Matrix ===
a b < classified as
0 0 | a = 0
0 151 | b = 1
Kết quả khi J48 với các thông số thiết đặt:
=== Run information ===
Trang 13Scheme: weka.classifiers.trees.J48 -C 0.25 -M 2
Relation: tae_data-weka.filters.unsupervised.attribute.NumericToBinary-
weka.filters.unsupervised.attribute.Remove-R6-weka.filters.unsupervised.attribute.NumericToBinary
Instances: 151
Attributes: 5 English speaker _binarized Course instructor _binarized Course_binarized semester_binarized Class size _binarized Test mode: 10-fold cross-validation === Classifier model (full training set) === J48 pruned tree
-: 1 (151.0) Number of Leaves : 1 Size of the tree : 1 Time taken to build model: 0 seconds === Stratified cross-validation === === Summary === Correctly Classified Instances 151 100 %
Incorrectly Classified Instances 0 0 %
Kappa statistic 1
Mean absolute error 0
Root mean squared error 0
Trang 14Relative absolute error 0 %
Root relative squared error 0 %
Total Number of Instances 151
=== Detailed Accuracy By Class ===
TP Rate FP Rate Precision Recall F-Measure ROC Area Class
0 0 0 0 0 ? 0
1 0 1 1 1 ? 1
Weighted Avg 1 0 1 1 1 0
=== Confusion Matrix ===
a b < classified as
0 0 | a = 0
0 151 | b = 1
3 Đánh giá thuật toán
Việc lựa chọn thuật toán nào để có một model tốt phụ thuộc rất nhiều yếu tố, trong
đó cấu trúc của dataset có ý nghĩa quan trọng đến việc lựa chọn thuật toán Ví dụ thuật toán J48 cho kết quả tốt trên các dữ liệu kiểu số (Numerical Data), trong khi
đó thuật toán ID3 cho kết quả tốt đối với dữ liệu định danh (nominal Data)