Phần I: Mô tả bài toán Cho cơ sử dữ liệu Adult là tập hợp bản ghi thực hiện bởi Barry Becker từ cuộc tổng điều tra dân số năm 1994. Tập hợp các bản ghi sạch được chiết xuất dựa trên các điều kiện sau đây (AGI>100) && (AFNLWGT>1)&& (HRSWK>0). Mục đích là dự đoán nhiệm vụ để xác định xem một người làm hơn 50.000 một năm. Bài toán dựa trên số liệu thống kê của 32561 người lớn và 15 thuộc tính. Em xin chọn thuật toán phân lớp để thực hiện cho bộ dữ liệu này. Phần II: Trích chọn thuộc tính 1. Ý nghĩa và các phương pháp trích chọn đặc tính: Trích chọn thuộc tính (Feature Selection, Feature Extraction) là nhiệm vụ rất quan trọng giai đoạn tiền xử lý dữ liệu khi triển khai các mô hình khai phá dữ liệu. Một vấn đề gặp phải là các dataset dùng để xây dựng các Data mining Models thường chứa nhiều thông tin không cần thiết (thậm chí gây nhiễu) cho việc xây dựng mô hình. Chẳn hạn, một dataset gồm hàng trăm thuộc tính dùng để mô tả về khách hàng của một doanh nghiệp được thu thập, tuy nhiên khi xây dựng một Data mining model nào đó chỉ cần khoảng 50 thuộc tính từ hàng trăm thuộc tính đó. Nếu ta sử dụng tất cả các thuộc tính (hàng trăm) của khách hàng để xây dựng mô hình thì ta cần nhiều CPU, nhiều bộ nhớ trong quá trình Training model, thậm chí các thuộc tính không cần thiết đó làm giảm độ chính xác của mô hình và gây khó khăn trong việc phát hiện tri thức. 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 đồ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)) Ngoài interestingness score
Trang 1BÁO CÁO MÔN HỌC KHAI PHÁ DỮ LIỆU
Đề tài: Sử dụng phần mềm weka khai phá bộ dữ liệu
Adult 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: Nguyễn Anh Tuấn(88)
Trang 2Phần I: Mô tả bài toán
Cho cơ sử dữ liệuAdult là tập hợp bản ghi thực hiện bởi Barry Becker từ cuộc tổng điều tra dân số năm 1994 Tập hợp các bản ghi sạch được chiết xuất dựa trên các điều kiện sau đây (AGI>100) && (AFNLWGT>1)&& (HRSWK>0) Mục đích là dự đoán nhiệm vụ để xác định xem một người làm hơn 50.000 một năm Bài toán dựa trên số liệu thống kê của 32561 người lớn và 15 thuộc tính Em xin chọn thuật toán phân lớp để thực hiện cho bộ dữ liệu này
Phần II: Trích chọn thuộc tính
1 Ý nghĩa và các phương pháp trích chọn đặc tính:
Trích chọn thuộc tính (Feature Selection, Feature Extraction) là nhiệm vụ rất quan trọng giai đoạn tiền xử lý dữ liệu khi triển khai các mô hình khai phá dữ liệu Một vấn đề gặp phải là các dataset dùng để xây dựng các Data mining Models thường chứa nhiều thông tin không cần thiết (thậm chí gây nhiễu) cho việc xây dựng mô hình Chẳn hạn, một dataset gồm hàng trăm thuộc tính dùng để
mô tả về khách hàng của một doanh nghiệp được thu thập, tuy nhiên khi xây dựng một Data mining model nào đó chỉ cần khoảng 50 thuộc tính từ hàng trăm thuộc tính đó Nếu ta sử dụng tất cả các thuộc tính (hàng trăm) của khách hàng để xây dựng mô hình thì ta cần nhiều CPU, nhiều bộ nhớ trong quá trình Training model, thậm chí các thuộc tính không cần thiết đó làm giảm độ chính xác của mô hình và gây khó khăn trong việc phát hiện tri thức
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:
Trang 3interestingness 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 đồ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))
Ngoài interestingness score và Shannon's entropy, một số phương pháp
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
- Trong WEKA, một phương pháp lựa chọn thuộc tính (attribute
selection) bao gồm2 phần:
o Attribute Evaluator Để xác định một phương pháp đánh giá mức • Attribute 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,…
Trang 4o Search Method Để xác định mộtphương pháp (thứ tự) xét các thuộc tính
+ Vd: best-first, random, exhaustive, ranking,…
- Mở weka chọn cở sở dữ liệu adult.csv cho ta kết quả như sau:
Chọn Tab “Select attributes” Trong mục Attribute Evaluator chọn WrapperSubsetEval Trong mục classifier chọn NaiveBayes
Trang 5- Trong mục Search Method chọn GredySteepWise, và làm như sau:
Trang 6- Bấm Start để thực hiện, ta được kết quả như sau:
Trang 7Vậy trong data này có 11/15 thuộc tính được chọn là: age
workclass
education
education-num
marital-status
occupation
relationship
sex
Trang 8capital-gain
hours-per-week
native-country
Các thuộc tính bị loại bỏ là fnlwgt, capital-loss,class,race
Đánh trọng số các thuộc tính sử dụng Cross Validation
Sử dụng phương pháp trích chọn thuộc tính như trên ta thu được tập các thuộc tính tối ưu thay cho tập thuộc tính ban đầu Nhưng ta biết rằng, kết quả của việc chọn thuộc tính phụ thuộc rất lớn vào training dataset Nếu sử dụng một dataset khác có thể thu được tập thuộc tính khác và có khi các kết quả rất khác nhau
Để khắc phục hạn chế này, Weka cho phép sử dụng kỹ thuật Cross validation để
đánh trọng số các thuộc tính tùy thuộc vào số lần xuất hiện của chúng trong toàn
bộ quá trình Training Model
Để thực hiện đánh trọng số các thuộc tính sử dụng Cross validation, ta chọn ATTRIBUTE SELECTION MODE = CROSS-VALIDATION (FOLDS = 10) và
bấm nút Start để thực hiện:
Trang 9Sử dụng Cross- validation, ta có tập thuộc tính tối ưu là age, workclass,education, education-num, marital-status, occupation, relationship, race, capital-gain, hours-per-week (xuất hiện 10 lần), native-country ( xuất hiện 9 lần), sex(xuất hiện
7 lần), fnlwgt(xuất hiện 2 lần)
Xếp hạng các thuộc tính (Ranking attributes)
Weka cho phép xếp hạng các thuộc tính, theo phương pháp tìm
kiếm backward (backward search) thì những thuộc tính ít quan trọng sẽ được loại
bỏ ra khỏi tập thuộc tính trước và thuộc tính quan trọng nhất sẽ được loại bỏ sau cùng Weka xếp hạng cho mỗi thuộc tính theo cách này
Để thực hiện xếp hạng các thuộc tính, trong mục SEARCH METHOD, đặt
GENERATE RANKING = TRUE
Trang 10Chạy start cho ta kết quả:
Trang 11Average rank: Vì chúng ta sử dụng phương pháp tìm kiếm backward cho nên
chúng ta phải đọc kết quả từ dưới lên Trong cột Average rank, từ dưới lên (from bottom to top) mức độ quan trọng của các thuộc tính giảm dần Thuộc
tính education-num có thứ hạng cao nhất là 13.6 (quan trọng nhất) sau đó
là marital-status…
Phần III: Tiền xử lí dữ liệu
1 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
Trang 12mining 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
o 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
2 Tiền xử lí dữ liệu với bài toán đã chọn
Trong bài toán này, tiền xử lý dữ liệu cần lọc bỏ 4 thuộc tính không cần thiết trong
mô hình là fnlwgt, race, capital-loss,class
Cách lọc bỏ như sau:
Trong panel Filter > Choose > filters >unsupervised > attribute > Remove
Trang 13Bước tiếp theo là bấm vào textbox ngay bên phải nút “Choose” và gỏ vào White, Asian-Pac-Islander, Amer-Indian-Eskimo, Other, Black (đây là index của thuộc tính Race trong file dữ liệu) Chú ý rằng tùy chọn "invertSelection" phải được thiết lập là false
Trang 14Làm tương tự với fnlwgt, capital-loss,class
Sau đó lưu tên file là adult.csv cho ta kết quả chỉ còn 11 thuộc tính
Trang 15Thực hiện quá trình phân lớp trên cơ sở dữ liệu mới này!
Phần IV: 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ẽ thực hiện phân lớp với thuật toán là mô hình phân lớp của cây quyết định (Decision tree) là J48
Trang 16Kết quả khi J48 với các thông số thiết đặt như sau(chia dữ liệu thành
10 phần)
=== Run information ===
Scheme:weka.classifiers.trees.J48 -C 0.25 -M 2
Relation: adult
Instances:32561
Attributes:11
age
workclass
education
education-num
marital-status
occupation
relationship
sex
Trang 17capital-gain
hours-per-week
native-country
Test mode:10-fold cross-validation
=== Classifier model (full training set) ===
J48 pruned tree
-education-num <= 5
| education-num <= 3
| | age <= 47
| | | relationship = Not-in-family: Mexico (88.0/36.0)
| | | relationship = Husband: Mexico (111.0/31.0)
| | | relationship = Wife: Mexico (17.0/9.0)
| | | relationship = Own-child: United-States (30.0/16.0)
| | | relationship = Unmarried: Mexico (34.0/17.0)
| | | relationship = Other-relative: Mexico (47.0/17.0)
| | age > 47: United-States (225.0/110.0)
| education-num > 3: United-States (1160.0/266.0)
education-num > 5: United-States (30849.0/2733.0)
Number of Leaves : 9
Size of the tree : 13
Time taken to build model: 3.12seconds
=== Stratified cross-validation ===
=== Summary ===
Correctly Classified Instances 29312 90.0218 % Incorrectly Classified Instances 3249 9.9782 %
Trang 18Kappa statistic 0.114
Mean absolute error 0.0088
Root mean squared error 0.0665
Relative absolute error 93.651 %
Root relative squared error 97.1556 %
Total Number of Instances 32561
Theo cây quyết định ở trên, khi đưa bộ dữ liệu vào ta có thể xác định một người có mức lương cao hơn hay thấp hơn 50.000
2 Đánh giá kết quả
- 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 cây hồi qui phân loại (CART – Classification And Regression Tree) và 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) Trong bài toán này
đã sử dụng J48 cho kết quả khá tốt