Tải bản đầy đủ (.doc) (17 trang)

Tiểu luận KHAI PHÁ DỮ LIỆU: Sử dụng phần mềm Weka khai phá bộ dữ liệu Computer hardware với thuật toán phân lớp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.21 MB, 17 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

BÁO CÁO ĐỒ ÁN KHAI PHÁ DỮ LIỆU

<b>Đề Tài:</b>

<i><b>Sử dụng phần mềm Weka khai phá bộ dữ liệu Computerhardware với thuật toán phân lớp</b></i>

<b>Giáo viên hướng dẫn: </b>Hồ Nhật Quang

<b>Sinh Viên: Vũ Trung KiênLớp: CNPM 6</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>Bài tốn: Computer Hardware1. Mơ tả tập dữ liệu</b>

<b>a. Nguồn gốc</b>

Tập dữ liệu này gồm 209 mẫu được hoàn thành năm 1987 bởi: Phillip Ein-Dor and Jacob Feldmesser

Ein-Dor: Faculty of Management Tel Aviv University; Ramat-Aviv; Tel Aviv, 69978; Israel

Nó thể hiện hiệu suất tương đối của CPU, được mô tả dựa trên thời gian chu kỳ(cycle time), kích thước bộ nhớ(memory size), vv của nó.

Các ước tính về giá trị hiệu năng tương đối được các tác giả sử dụng phương pháp hồi quy tuyến tính. Những bài báo có sử dụng với bộ dữ liệu này:

-

<i>Dan Pelleg. Scalable and Practical Probability Density Estimators for Scientific Anomaly Detection. School of Computer Science Carnegie Mellon University. 2004.</i>

-

<i>Yongge Wang. A New Approach to Fitting Linear Models in High DimensionalSpaces. Alastair Scott (Department of Statistics, University of Auckland).</i>

<b>b.Cấu trúc(các thuộc tính)</b>

Data set này gồm có 209 mẫu và 10 thuộc tính bao gồm:

1. Vendor name: 30 (adviser, amdahl,apollo, basf, bti, burroughs, c.r.d, cambex, cdc, dec, dg, formation, four-phase, gould, honeywell, hp, ibm, ipl, magnuson, microdata, nas, ncr, nixdorf, perkin-elmer, prime, siemens, sperry, sratus, wang): tên của hãng sản xuất (kiểu Nominal).

2. Model Name: Gồm các ký hiệu đơn và duy nhất.

3. MYCT: Chu kỳ thời gian trên một nano giây (kiểu integer)

4. MMIN: Bộ nhớ chính nhỏ nhất theo đơn vị kilobyte (kiểu integer) 5. MMAX: Bộ nhớ chính lớn nhất theo đơn vị kilobyte (kiểu integer) 6. CACH: Bộ nhớ cache theo đơn vị kilobyte (kiểu integer)

7. CHMIN: Số kênh truyền nhỏ nhất trong các unit (kiểu integer) 8. CHMAX: Số kênh truyền lớn nhất trong các unit (kiểu integer) 9. PRP: Hiệu năng tương đối được công bố (kiểu integer)

10. ERP: Hiệu năng tương đối được đánh giá từ những bài báo gốc (kiểu integer)

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>2. Bài toán phân lớp</b>

<small>Bài toán phân lớp ở đây là dùng tập dữ liệu đã cho huấn luyện một bộ phân lớp có khả năng đánhgiá hiệu năng tương đối của CPU dựa trên chu kỳ thời gian, bộ nhớ, số kênh truyền </small>

<b>3. Giải quyết bài toán sử dụng các bộ phân lớp</b>

<b>Giới thiệu về tiền xử lý dữ liệu (Data Preprocessing)</b>

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 ordinal 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ư:

<i>Filtering Attributes: Chọn các thuộc tính phù hợp với mơ hình</i>

<i>Filtering samples: Lọc các mẫu (instances, patterns) dữ liệu cho mơ hình</i>

<i>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</i>

từ numeric qua nomial hay ordinal

<i>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</i>

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>Vấn đề tiền xử lý dữ liệu trong data set Computer hardware</b>

o Lọc thuộc tính phù hợp: ta thấy trong tập dữ liệu Coputer hardware có thuộc tính Model Name kiểu dữ liệu là chuỗi các ký tự duy nhất là không phù hợp cho việc phân lớp do đó ta cần loại bỏ thuộc tính này.

o Lọc mẫu và làm sạch dữ liệu: ta thấy trong dataset này khơng có các giá trị sai lêch do đó ta khơng cần lọc bổ các mẫu và làm sạch dữ liệu

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

o Rời rạc hóa dữ liệu: trong data set này bao gồm phần lớn là các dữ liệu kiểu liên tục nên do đó ta cần tiến hành rời rạc hóa các dữ liệu đó cụ thể là: các thuộc tính: MYCT, MMIN, MMAX, CACH, CHMIN, CHMAX, PRP, ERP. Để rời rạc hóa dữ liệu ta phân khoảng các dữ liệu ra thành n khoảng bins ví dụ thuộc tính ERP trong khoảng 137,3 – 1115,7 dựa vào công cụ

<i><b><small>filters.unsupervised.attribute.Discretize </small></b></i>trong weka ta có thể phân dữ liệu của thuộc tính thành 10 khoảng như sau:

<b>Các mơ hình huấn luyện cho bài tốn phân lớp</b>

Trong lĩnh vực máy học (machine Learning) và nhận dạng mẫu (pattern recognition), bài toán phân lớp (classification) đề cập đến các thuật toán

(algorithms) nhằm xác định lớp (class) của đối tượng đã cho sẽ thuộc về lớp nào trong các lớp đã cho trước (given categories). Khác với bài toán phân cụm (clustering), dữ liệu dùng để xây dựng mơ hình (Training Data) trong bài toán phân lớp phải được xác định lớp trước (pre-Labeled).

Ví dụ trong bài tốn này là đánh giá xem hiệu năng của CPU thuộc khoảng nào trong 10 khoảng đã phân dựa vào các thông số như chu kỳ thời gian, số kênh truyền, bộ nhớ,… của máy.

Một thuật toán thực hiện việc phân lớp được gọi là một bộ phân lớp

(classifier). Hình sau mơ tả qui trình xây dựng mơ hình phân lớp các đối tượng.

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>Quy trình thực hiện huấn luyện bộ phân lớp với mẫu dữ liệu machine.arff</b>

Dữ liệu để xây dựng mơ hình:

+ Dữ liệu gốc (original dataset) là tập dữ liệu trong file machine.arff

+ Dữ liệu này phải có thuộc tính phân lớp (categorical attribute) ở trong dataset này là thuộc tính ERP.

Dữ liệu gốc sẽ được chia thành 2 phần là Training Set (để xây dựng model) và Test Set (để kiểm định mẫu - Model).

- Cuối cùng là tính tốn lỗi để đánh giá mơ hình phân lớp (classification model). - Chia nhỏ tập dữ liệu theo phương pháp CV (Cross-Validation) trong quá trình

huấn luyện và kiểm lỗi mơ hình phân lớp

Đây là kỹ thuật chủ yếu được sử dụng trong xây dựng predictive Model. Trong đó dữ liệu gốc sẽ được chia thành n phần bằng nhau (n-fold), và quá trình Train/Test Model thực hiện lặp lại n lần. Tại mỗi lần Train/Test Model, 1 phần dữ liệu dùng để Test và (n-1) phần còn lại dùng để Train.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<i><b>(Người ta đã chứng minh 10-fold Cross –Validation là giá trị tối ưu - theo GJ, McLachlan; K.A. Do, C. Ambroise (2004). Analyzing microarray gene </b></i>

<i><b>expression data. Wiley)</b></i>

- Tính tốn lỗi cho bộ phân lớp

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

- Kết quả nhận được là những bộ phân lớp - Các bộ phân lớp được weka hỗ trợ bao gồm:

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

o bayes.NaiveBayes o classifiers.trees.J48

<b>4. Thực nghiệm</b>

Dữ liệu sẽ được chia làm 10 Folds và quá trình Train/Test Model thực hiện lặp lại 10 lần. Tại mỗi lần Train/Test Model, 1 phần dữ liệu dùng để Test và 9 phần còn lại dùng để Train.

Sử dụng cơng cụ KnowledgeFlow

<b>Quy trình thực hiện:</b>

- Nạp dữ liệu: chọn ArffLoader để load nạp dữ liệu từ file machine.arff

- Xóa thuộc tính Model Name: ta chọn Filters->Únsupervised->attribute->RemoveByName sau đó nối ArffLoader với RemoveByName bằng Dataset

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

- Rời rạc hóa dữ liệu: Ta chọn Filters->Únsupervised->attribute->Discretize tiến hành rời rạc hóa dữ liệu cho các thuộc tính có index từ 2 đến 9 và phân thành 10 khoảng như hình vẽ

- Chọn ClassAssigner và CrossValidationFolderMaker bước này nhằm chọn thuộc tính phân lớp, ở đây thuộc tính phân lớp là thuộc tính ERP

<i>Chọn kỹ thuật Train và Test Mơ hình (ở đây sử dụng kỹ thuật CV – CrossValidation).Trong Evaluation chọn CrossValidation FoldMaker</i>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<i>Chọn Classifiers và chọn các thuật tốn để xây dựng mơ hình (trước tiên chọn thuật </i>

tốn J48). Sau đó nạp dữ liệu để train và Test mơ hình, bấm phải chuột vào

<i>CrossValidation FoldMaker chọn TrainingSet nối với J48, sau đó chọn TestSet</i>

Hiệu chỉnh tham số của thuật toán bằng cách double click và thuật toán

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<i>Chọn Tab Evaluation chọn ClassifierPerformanceEvaluator để đánh giá hiệu quả của </i>

mơ hình phân lớp

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<i>Chọn Tab: Visualization và chọn Text Viewer hoặc GraphViewer để xem kết quả của </i>

mơ hình dưới dạng Text hay dưới dạng trực quan quan bằng hình ảnh

Làm tương tự với thuật tốn Naviebayes ta được mơ hình như sau:

<b>Sau đây là kết quả thực nghiệm:</b>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Với thuật toán Navie Bayes

Với thuật toán J48

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<b>Thực nghiệm lần 2:</b>

Thay vì rời rạc hóa tất cả các thuộc tính ta chỉ rời rạc hóa một thuộc tính dùng để phân lớp là thuộc tính ERP bằng cách chọn Discretize ở mơ hình trên và cấu hình trường AttributeIndices trong Discretize có giá trị là 9 có nghĩa là thuộc tính thứ 9(ERP) như

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

- Với thuật toán J48:

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>5. Nhận xét</b>

Từ những kết quả thực nghiệm trên ta thấy với dataset Computer Hardware, việc rời rạc hóa tất cả các thuộc tính và sử dụng thuật toán Navie Bayes để phân lớp cho kết quả tốt hơn so với thuật toán J48. Nhưng ngược lại trong trường hợp giữ nguyên các thuộc tính kiểu số thì thuật tốn J48 lại tốt hơn so với thuật toán Navie Bayes. Và sau cả 2 lần thử nghiệm thì thuật tốn J48 cho ta tỉ lệ phân lớp chính xác cao nhất. Như vậy với thuộc tính thuộc kiểu số thì sử dụng thuật toán J48 trong phân lớp dữ liệu cho hiệu quả tốt hơn so với thuật toán Navie Bayes và trong data set này ta chọn thuật toán J48 để phân lớp.

</div>

×