Tiểu luận khai phá dữ liệu Xây dựng tập dữ liệu cho Weka - Pdf 26

Bài thu hoạch: Môn Khai phá dữ liệu Cao học CNTT khóa 6
MỤC LỤC
1
Bài thu hoạch: Môn Khai phá dữ liệu Cao học CNTT khóa 6
LỜI NÓI ĐẦU
Chúng em xin chân thành cảm ơn PGS.TS. Đỗ Phúc đã truyền đạt những kiến thức
quý báu từ những kinh nghiệm sống đến những vấn đề khoa học mới nhất trong bộ môn
Khai phá dữ liệu.
Trong những năm gần đây, việc nắm bắt được thông tin được coi là chìa khóa của
kinh doanh. Ai thu thập, phân tích và hiểu được thông tin và hành động được nhờ vào
những thông tin đó là kẻ thắng cuộc trong thời đại thông tin này. Chính vì vậy, việc tạo ra
thông tin và mức tiêu thụ thông tin ngày nay ngày càng gia tăng.
Khai phá dữ liệu (Data Mining) là một lĩnh vực khoa học liên ngành mới xuất hiện
gần đây nhằm đáp ứng nhu cầu này. Các kết quả nghiên cứu cùng với những ứng dụng
thành công trong khai phá dữ liệu, khám phá tri thức cho thấy khai phá dữ liệu là một
lĩnh vực khoa học tiềm năng, mang lại nhiều lợi ích, đồng thời có ưu thế hơn hẳn so với
các công cụ phân tích dữ liệu truyền thống.
Trong phạm vi tiểu luận này, em muốn chia sẽ những khái quát và những hiểu biết
bản thân về phần mềm mã nguồn mở Weka và ví dụ ứng dụng Weka để khai phá dữ liệu,
phân lớp tập dữ liệu các động vật trong vườn thú thành từng loại động vật khác nhau.
2
Bài thu hoạch: Môn Khai phá dữ liệu Cao học CNTT khóa 6
Chương 1: Giới thiệu
1.1 Giới thiệu về khai thác dữ liệu
1.1.1 Khái niệm
Dữ liệu trên thế giới và xung quanh cuộc sống của chúng ta ngày càng tăng, không
có điểm dừng. Máy tính mặt ở khắp nơi nên dữ liệu dễ dàng để lưu những thông tin mà
trước đây chúng ta vứt bỏ đi sau khi xem. Đĩa và lưu trữ trực tuyến không tốn kém làm trì
hoãn quyết định phải làm gì với tất cả các dữ liệu này, đơn giản là có được nhiều bộ nhớ
hơn và giữ lại tất cả. Những dữ liệu được ghi lại đó là các quyết định của, sự lựa chọn
của khách hàng trong các siêu thị, thói quen tài chính của khách hàng, nơi đi và đến, …

có một hồ sơ lái xe tốt, và thuê một chiếc xe mới hàng năm.
1.1.5 Thông tin hữu ích
Khai phá dữ liệu có thể lấy được thông tin hữu từ khối lượng lớn dữ liệu. Ví dụ, thị trấn có thể sử
dụng một mô hình dự báo thu nhập dựa trên nhân khẩu học để phát triển một kế hoạch cho nhà ở
thu nhập thấp. Một cơ quan cho thuê xe hơi có thể sử dụng một mô hình xác định phân khúc
khách hàng để thiết kế một chương trình khuyến mãi nhắm mục tiêu khách hàng giá trị cao.
1.1.6 Khai phá dữ liệu và thống kê
Có rất nhiều chồng chéo giữa khai thác dữ liệu và thống kê. Trong thực tế hầu hết các
kỹ thuật được sử dụng trong khai thác dữ liệu có thể được đặt trong một khuôn khổ thống
kê. Tuy nhiên, kỹ thuật khai thác dữ liệu không giống như các kỹ thuật thống kê truyền
thống.
Phương pháp truyền thống thống kê, nói chung, đòi hỏi rất nhiều sự tương tác của
người dùng để xác nhận sự đúng đắn của một mô hình. Kết quả là, các phương pháp
thống kê có thể được khó khăn để tự động hóa. Hơn nữa, phương pháp thống kê thường
không quy mô tốt để tập hợp dữ liệu rất lớn. Phương pháp thống kê dựa vào thử nghiệm
giả thuyết hoặc tìm kiếm mối tương quan dựa trên nhỏ hơn, các mẫu đại diện của một
dân số lớn hơn.
Phương pháp khai thác dữ liệu phù hợp với dữ liệu lớn và có thể được tự động dễ
dàng hơn. Trong thực tế, các thuật toán khai thác dữ liệu thường yêu cầu các tập dữ liệu
lớn cho việc tạo ra các mô hình chất lượng.
1.1.7 Khai phá dữ liệu và OLAP
OLAP có thể được định nghĩa là phân tích nhanh chóng chia sẻ đa chiều dữ liệu.
OLAP và khai phá dữ liệu là những hoạt động khác nhau nhưng bổ sung cho nhau.
OLAP hỗ trợ các hoạt động như dữ liệu tổng kết, phân bổ chi phí, phân tích chuỗi
thời gian, và phân tích what-if. Tuy nhiên, hầu hết hệ thống OLAP không có khả năng
suy luận quy nạp vượt ra ngoài sự hỗ trợ cho dự báo chuỗi thời gian. Suy luận quy nạp,
4
Bài thu hoạch: Môn Khai phá dữ liệu Cao học CNTT khóa 6
quá trình đạt đến một kết luận chung từ các ví dụ cụ thể, là một đặc tính của khai phá dữ
liệu. Suy luận quy nạp còn được gọi là học tính toán.

tương tự như những tính năng đắt tiền của phần mềm - phần mềm được gọi là WEKA .
5
Bài thu hoạch: Môn Khai phá dữ liệu Cao học CNTT khóa 6
WEKA là sản phẩm của Đại học Waikato (New Zealand) và lần đầu tiên được thực hiện
vào năm 1997. Nó sử dụng bản quyền GNU General Public License (GPL). Phần mềm
này được viết bằng ngôn ngữ Java và có một giao diện để tương tác với các tập tin dữ
liệu và xuất ra các kết quả trực quan (như là bảng và các biểu đồ). Nó cũng có một API
thông dụng, vì vậy bạn có thể nhúng WEKA, giống như bất kỳ thư viện khác, trong các
ứng dụng của riêng bạn để những thứ như nhiệm vụ khai thác dữ liệu phía máy chủ tự
động.
Weka là một tập hợp các thuật toán máy học tập cho các nhiệm vụ khai thác dữ liệu.
Các thuật toán có thể được áp dụng trực tiếp vào dữ liệu hoặc gọi từ mã Java của riêng
bạn. Weka chứa các công cụ cho:
- Tiền xử lý dữ liệu (Pre-processing on data)
- Phân lớp (Classification)
- Hồi quy (Regression)
- Gom nhóm (Clustering)
- Luật kết hợp (Association Rules)
- Trực quan hóa (Visualization).
Nó cũng rất phù hợp cho việc phát triển các chương trình máy học máy mới.
Website của phần mềm Weka: />1.2.2 Giao diện Weka Explorer
Cách dễ nhất để sử dụng Weka là thông qua một giao diện người dùng đồ họa được
gọi là Explorer. Điều này cho phép truy cập đến tất cả các chức năng bằng cách sử dụng
menu và form.
1.2.2.1 Xây dựng dữ liệu cho Weka
Dữ liệu có thể được nhập vào từ một tập tin có khuôn dạng: ARFF, CVS, hoặc từ
một cơ sở dữ liệu thông qua JDBC. Phương pháp ưa tiên của Weka để tải dữ liệu theo
định dạng tập tin ARFF (File Format Attribute-Relation File Format), tập tin này có thể
xác định các loại dữ liệu được nạp, sau đó cung cấp các dữ liệu chính nó. Trong tập tin,
bạn xác định mỗi cột và mỗi cột có chứa những gì. Trong trường hợp của mô hình hồi

- Supplied test set: Sử dụng một tập dữ liệu khác (với tập học) để cho việc đánh
giá.
- Cross validation: Tập dữ liệu sẽ được chia đều thành k tập (folds) có kích thước
xấp xỉ nhau và bộ phân lớp học được sẽ được đánh giá bởi phương pháp cross-
validation.
- Percentage split: Chỉ định tỷ lệ phân chia tập dữ liệu đối với việc đánh giá.
- Output model: Hiển thị bộ phân lớp học được
- Output per-class stats: hiển thị các thông tin thống kê về percision/recall đối với
mỗi lớp
- Output confusion matrix: hiển thị thông tin về ma trận lỗi phân lớp (confusion
matrix) đối với phân lớp học được
- Store predictions for visualization: các dự đoán của bộ phân lớp được lưu lại
trong bộ nhớ, để có thể được hiển thị sau đó
- Output predictions: hiển thị chi tiết các dự đoán đối với tập kiểm tra
- Cost-sensitive evaluation: các lỗi (của bộ phân lớp) được xác định dựa trên ma
trận chi phí (cost matrix) chỉ định
- Random seed for Xval / % Split: chỉ dịnh giá trị random seed được sử dụng cho
quá trình lựa chọn ngẫu nhiên các ví dụ cho tập kiểm tra.
Result list: cung câp một số tính năng hữu ích:
- Save model: lưu lại mô hình tương ứng với bộ phân lớp học được vào trong một
tập tin nhị phân
- Load model: đọc lại một mô hình đã được học trước đó từ một tập nhị phân
- Re-evaluate model on current test set: đánh giá một mô hình (bộ phân lớp) học
được trước đó đối với tập kiểm ta (test set) hiện tại
- Visualize classifier errors: hiển thị cửa sổ biểu đồ thể hiện các kết quả của việc
phân lớp
1.2.2.4 Các bộ phân cụm (Clustering)
Các bộ phân cụm (Cluster Builders) của WEKA tương ứng với các mô hình tìm các
nhóm của các ví dụ tương tự dối với một tập dữ liệu. Các kỹ thuật phân cụm được Weka
hỗ trợ như: Expectation maximization (EM), K-Means, … Các bộ phân cụm có thể được

- Search Method: để xác định một phương pháp (thứ tự) xét các thuộc tính
Ví dụ: best-first, random, exhaustive, ranking, …
1.2.2.7 Hiển thị dữ liệu
- Hiển thị dữ liệu rất cần thiết trong thực tế: giúp để xác định mức đọ khó khăn
của bài toán học
- Weka có thể hiển thị: Mỗi thuộc tính riêng lẻ (1-D visualization), mỗt cặp thuộc
tính (2-D visualization)
- Các giá trị (các nhãn) lớp khác nhau sẽ được hiển thị bằng các màu khác nhau
9
Bài thu hoạch: Môn Khai phá dữ liệu Cao học CNTT khóa 6
- Thanh trượt Jitter hỗ trợ việc hiển thị rõ ràng hơn, khi có quá nhiều ví dụ (điểm)
tập xung quanh một vị trí trên biểu đồ
- Tính năng phóng to/thu nhỏ ( bằng cách tăng/giảm giá trị của Plotsize và
Pointsize)
1.2.3 Cách sử dụng Weka
Weka có 3 giao điện đồ họa để sử dụng: Explorer, Experimenter, KnowledgeFlow.
Cách dễ nhất để sử dụng Weka là thông qua một giao diện người dùng đồ họa
được gọi là Explorer. Điều này cho phép truy cập đến tất cả các chức năng bằng cách sử
dụng menu và form. Ví dụ, bạn có thể nhanh chóng đọc trong một tập dữ liệu từ một tập
tin ARFF (hoặc spreadsheet) và xây dựng một cây quyết định từ nó. Nhưng học cây
quyết định chỉ là khởi đầu: nhiều thuật toán khác để khám phá. Giao diện Explorer sẽ
giúp bạn làm việc đó.Nó hướng dẫn bạn bằng cách đưa ra sự lựa chọn menu, bằng cách
buộc bạn phải làm việc trong một trật tự thích hợp các lựa chọn cho đến khi chúng được
áp dụng và bằng cách điền vào các form. Công cụ tool-tips hiển thị cửa sổ mô tả khi con
trỏ chuột đi qua các mục trên màn hình để giải thích những gì họ làm. Giá trị mặc định
hợp lý đảm bảo rằng bạncó thể nhận được kết quả mà chỉ cần công sức bỏ ra nhỏ nhất,
nhưng bạn sẽ phải suy nghĩ về những gì bạn đang làm để hiểu kết quả có ý nghĩa gì.
Giao diện Knowledge Flow cho phép bạn thiết kế cấu hình cho trực tiếp xử lý dữ
liệu. Một bất lợi cơ bản của giao diện Explorer là nó nắm giữ tất cả mọi thứ trong bộ nhớ
chính khi bạn mở một tập dữ liệu, nó ngay lập tức tải tất cả lên bộ nhớ. Điều này có nghĩa

Bài thu hoạch: Môn Khai phá dữ liệu Cao học CNTT khóa 6
Chương 2: Chức năng phân lớp sử dụng trong Weka
2.1 Phân lớp dữ liệu trong Weka
Phân lớp (còn được gọi là cây phân lớp hoặc cây quyết định) là một thuật toán
khai thác dữ liệu tạo ra một hướng dẫn từng bước làm thế nào để xác định sản lượng của
một trường hợp dữ liệu mới. Cây nó tạo ra là chính xác rằng: một cây mà mỗi nút trong
cây đại diện cho một vị trí mà một quyết định phải được tạo ra dựa trên dữ liệu đầu vào
và sau đó di chuyển đến nút tiếp theo và tiếp theo cho đến khi tới nút lá cho biết dự đoán
đầu ra.
Ví dụ: Từ dữ liệu thô đầu vào là bảng dữ liệu quyết định đi chơi tennis dựa vào
thời tiết
12
Bài thu hoạch: Môn Khai phá dữ liệu Cao học CNTT khóa 6
Cây phân lớp đơn giản này tìm cách trả lời câu hỏi "Bạn sẽ hiểu cây phân loại
không?" Tại mỗi nút, bạn trả lời các câu hỏi và di chuyển vào chi nhánh đó cho đến khi
tới nút lá, tại đó mà câu trả lời là có hoặc không. Mô hình này có thể được sử dụng cho
bất kỳ trường hợp dữ liệu không rõ, và bạn có thể dự đoán liệu trường hợp dữ liệu không
biết này sẽ học các cây phân loại bằng cách yêu cầu họ chỉ có hai câu hỏi đơn giản. Đó là
dường như lợi thế lớn của một cây phân loại nó không đòi hỏi phải có rất nhiều thông tin
về các dữ liệu để tạo ra một cây mà có thể là rất chính xác và rất nhiều thông tin.
Một trong những khái niệm quan trọng của cây phân loại là khái niệm của việc sử
dụng một "tập huấn luyện" để tạo ra các mô hình. Điều này giúp làm một tập dữ liệu với
13
Bài thu hoạch: Môn Khai phá dữ liệu Cao học CNTT khóa 6
giá trị đầu ra được biết và sử dụng dữ liệu này để xây dựng mô hình. Sau đó, bất cứ khi
nào chúng ta có một tập dữ liệu mới, với giá trị đầu ra không rõ, chúng tôi đặt nó thông
qua các mô hình và đưa ra các dữ liệu dự đoán.Tất cả điều này giống như trong mô hình
hồi quy. Tập huấn luyện được chia thành hai phần: khoảng 60-80% của các dữ liệu và đặt
nó vào tập huấn luyện, được sử dụng để tạo ra các mô hình; sau đó, nhận các dữ liệu còn
lại và đặt nó vào một tập kiểm tra, tập này sẽ được sử dụng ngay lập tức sau khi tạo mô

Bài thu hoạch: Môn Khai phá dữ liệu Cao học CNTT khóa 6
một bài viết về khai thác dữ liệu nào đó, việc chấp nhận được tỷ lệ phần trăm lỗi của bạn
có thể cao hơn nhiều. Để thực hiện việc này thậm chí còn thêm một bước nữa, bạn cần
phải quyết định % phủ định sai, so với khẳng định sai có thể chấp nhận được. Ví dụ một
mô hình thư rác: khẳng định sai (một thực tế e-mail mà được gọi là spam) có lẽ là nguy
hiểm hơn rất nhiều hơn so với một phủ định sai (thư rác nhận được dán nhãn không phải
spam). Trong một ví dụ như thế này, bạn có thể đánh giá một tối thiểu là tỷ lệ 100/1 phủ
định sai trên khẳng định để có thể chấp nhận được.
2.2 Xây dựng tập dữ liệu cho Weka
Dữ liệu có thể được nhập vào từ một tập tin có khuôn dạng: ARFF, CVS, hoặc từ
một cơ sở dữ liệu thông qua JDBC. Phương pháp ưa tiên của Weka để tải dữ liệu theo
định dạng tập tin ARFF (File Format Attribute-Relation File Format), tập tin này có thể
xác định các loại dữ liệu được nạp, sau đó cung cấp các dữ liệu chính nó. Trong tập tin,
bạn xác định mỗi cột và mỗi cột có chứa những gì. Trong trường hợp của mô hình hồi
quy, bạn bị giới hạn một cột NUMERIC hoặc một cột DATE . Cuối cùng, bạn cung cấp
mỗi dòng dữ liệu trong một định dạng phân cách bằng dấu phẩy.
Ví dụ: định dạng của tập dữ liệu
2.3 Ứng dụng phân lớp trong Weka
Sự phát triển của các ứng dụng khai thác dữ liệu chẳng hạn như phân lớp và phân
nhóm đã cho thấy sự cần thiết phải các thuật toán học được áp dụng cho các dữ liệu quy
mô lớn. Trong phần này trình bày sự so sánh khác nhau kỹ thuật phân lớp bằng cách sử
dụng WEKA. WEKA là một phần mềm mã nguồn mở bao gồm một tập hợp các thuật
toán máy học cho các nhiệm vụ khai thác dữ liệu. Mục đích của phần này là để điều tra
việc thực hiện phân lớp khác nhau hoặc phương pháp phân nhóm cho một tập hợp các dữ
15
Bài thu hoạch: Môn Khai phá dữ liệu Cao học CNTT khóa 6
liệu lớn. Các thuật toán hoặc các phương pháp thử nghiệm các thuật toán Bayes Network,
Radial Basis Function, Pruned Tree, Single Conjunctive Rule Learner and Nearest
Neighbors.
2.3.1 Dữ liệu đầu vào

porpoise, puma, pussycat, raccoon, reindeer, seal, sealion, squirrel, vampire,
vole, wallaby,wolf
2 (20) chicken, crow, dove, duck, flamingo, gull, hawk, kiwi, lark, ostrich,
parakeet, penguin, pheasant, rhea, skimmer, skua, sparrow, swan, vulture, wren
16
Bài thu hoạch: Môn Khai phá dữ liệu Cao học CNTT khóa 6
3 (5) pitviper, seasnake, slowworm, tortoise, tuatara
4 (13) bass, carp, catfish, chub, dogfish, haddock, herring, pike, piranha,
seahorse, sole, stingray, tuna
5 (4) frog, frog, newt, toad
6 (8) flea, gnat, honeybee, housefly, ladybird, moth, termite, wasp
7 (10) clam, crab, crayfish, lobster, octopus, scorpion, seawasp, slug, starfish,
worm
Từ hai tập tin zoo.data và zoo.names, ta tạo ra tập tin theo định dạng ARFF để
Weka có thể đọc được.
2.3.2 Phân lớp dữ liệu bằng Weka
- Tiền xử lý:
o Mở giao diện Explorer
o Mở tập tin zoo.arff vừa mới tạo ra
17
Bài thu hoạch: Môn Khai phá dữ liệu Cao học CNTT khóa 6
o Nhấn Visualize All để xem biểu đồ bộ dữ liệu Zoo
- Phân lớp bằng Navie Bayes
o Mở tab Classify
18
Bài thu hoạch: Môn Khai phá dữ liệu Cao học CNTT khóa 6
o Chọn thuật toán Naive Bayes trong mục Classifier
o Trong mục Test option, ta dùng Cross-validation Folds 10. Đâ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

a b c d e f g < classified as
39 0 0 2 0 0 0 | a = mammal
0 20 0 0 0 0 0 | b = bird
0 0 2 1 2 0 0 | c = reptile
0 0 0 13 0 0 0 | d = fish
0 0 0 0 4 0 0 | e = amphibian
0 0 0 0 0 8 0 | f = insect
1 0 0 0 0 0 10 | g = invertebrate
- Phân lớp bằng J48
o Cùng dữ liệu nhập vào ở trên, trong tab Classify, Chọn thuật toán J48
trong Classifier.
20
Bài thu hoạch: Môn Khai phá dữ liệu Cao học CNTT khóa 6
o Chọn Cross validation Folds trong mục Test options là 10
o Chọn thuộc tính để phân lớp là type
o Nhấn Start để thực thi phân lớp. Kết quả
 Phân được 7 lớp : mammal, bird, reptile, fish, amphibian, insect,
invertebrate
 Phân loại chính xác: 92.0792 % các trường hợp
 Phân loại không chính xác: 7.9208 % các trường hợp
=== Summary ===
Correctly Classified Instances 93 92.0792 %
Incorrectly Classified Instances 8 7.9208 %
Kappa statistic 0.8955
Mean absolute error 0.0225
Root mean squared error 0.14
Relative absolute error 10.2478 %
Root relative squared error 42.4398 %
Total Number of Instances 101
=== Detailed Accuracy By Class ===

cây cho đến khi đạt được một lá và đầu ra của dữ liệu có thể được xác định. Chúng ta đã
học được rằng để tạo ra một mô hình phân loại cây tốt, chúng ta cần phải có một dữ liệu
hiện có với dữ liệu đầu ra rõ, từ đó chúng ta có thể xây dựng mô hình của chúng ta.
Chúng ta cũng thấy rằng chúng ta cần phải phân chia dữ liệu thành hai phần: một tập
huấn luyện, được sử dụng để tạo ra các mô hình và thiết lập một thử nghiệm, được sử
dụng để xác minh rằng mô hình là chính xác và không overfitted.
23


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status