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

Tiểu luận khai phá dữ liệu: 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

18 3,3K 14
Tài liệu đã được kiểm tra trùng lặp

Đ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 Adult Với Thuật Toán Phân Lớp
Tác giả Nguyễn Anh Tuấn
Người hướng dẫn Hồ Nhật Quang
Trường học Trường Đại Học Khoa Học Tự Nhiên
Chuyên ngành Khai Phá Dữ Liệu
Thể loại Báo cáo
Năm xuất bản 1994
Thành phố Hồ Chí Minh
Định dạng
Số trang 18
Dung lượng 0,92 MB

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

Nội dung

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 1

BÁ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 2

Phầ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 3

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 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 4

o 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 7

Vậ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 8

capital-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 9

Sử 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 10

Chạy start cho ta kết quả:

Trang 11

Average 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 12

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

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 13

Bướ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 14

Là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 15

Thự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 16

Kế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 17

capital-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 18

Kappa 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

Ngày đăng: 13/12/2013, 11:08

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