HỌC VIỆN KỸ THUẬT QUÂN SỰ
KHOA CÔNG NGHỆ THÔNG TIN
-----------------------oOo------------------------
MÔN: KHAI PHÁ DỮ LIỆU
TIỂU LUẬN: SỬ DỤNG WEKA VỚI CSDL SEGMENT TEST ÁP
DỤNG THUẬT TOÁN PHÂN CỤM REPTree
SV thực hiện:
Lớp:
Nguyễn Thị Hồng
CNPM6
Giảng viên HD:
Hồ Nhật Quang
Hà nội 11/2011
I.
Giới thiệu về Weka và cách sử dụng phần mềm Weka
Weka là một công cụ phần mềm viết bằng Java, phục vụ lĩnh vực học máy
và khai phá dữ liệu.
1. Các tính năng chính
- Một tập các cơng cụ tiền xử lý dữ liệu, các giải thuật học máy, khai phá dữ
liệu, các phương pháp thí nghiệm đánh giá
- Giao diện đồ họa(gồm cả tính năng hiển thị hóa dữ liệu)
- Môi trường cho phép so sánh các giải thuật học máy và khai phá dữ liệu
2. Weka- các môi trường chính
- Simple CLI : giao diện đơn giản kiểu dòng lệnh(như MS-DOS)
- Explore (Chúng ta sẽ chủ yếu sử dụng môi trường này) Môi trường cho
phép sử dụng tất cả các khả năng của Weka để khám phá dữ liệu
- Experimenter : Mơi trường cho phéptiến hành các thí nghiệm và thực
hiện các kiểm tra thống kê(statistical tests) giữa các mơ hình học máy
- KnowledgeFlow: Mơi trường cho phép bạn tương tác đồ họa kiểu kéo/thả
để thiết kế các bước(các thành phần) của một thí nghiệm
3. Môi trường Explorer
- Preprocess: Để chọn và thay đổi(xử lý) dữ liệu làm việc
- Classify : Để huấn luyện và kiểm tra các mơ hình học máy(phân loại, hoặc
hồi quy/dự đốn)
- Cluster : Để học các nhóm từ dữ liệu(phân cụm)
- Assoclate : Để khám phá các luật kết hợp từ dữ liệu
- Select attributes:Để xác định và lựa chọn các thuộc tính liên quan(quan
trọng) nhất của dữ liệu
- Visualize : Để xem(hiển thị) biểu đồ tương tác 2 chiều đối với dữ liệu
4. Weka Explorer: Tiền xử lý dữ liệu
- Dữ liệu có thể được nhập vào(imported) từ một tập tin có khn dạng là:
arff, csv
- Dữ liệu cũng có thể được đọc vào từ một địa chỉ URL, hoặc từ một cơ sở
dữ liệu thông qua JDBS
- Các công cụ tiền dữ liệu của Weka được gọi là Filters
Rời rạc hóa(Discretization)
Chuẩn hóa(normalization)
Lấy mẫu ()
Lựa chọn thuộc tính(Attribute selection)
Chuyển đổi (Tranforming) và kết hợp (Combining) các
thuộc tính
5. Weka Explore: Các bộ phân lớp
- Các bộ phân lớp (Classifiers) của Weka tương ứng với các mơ hình dự
đốn các đại lượng kiểu định danh(phân lớp) hoặc các đại lượng kiểu
số(hồi quy/ dự đoán)
- Lựa chọn một bộ phận phân lớp(classifire)
- Lựa chọn các tùy chọn cho việc kiểm tra (test options)
Use training set. Bộ phận lọc sẽ được đánh giá trên tập
học
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, các bộ phận loại
họ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á
6. Các bộ phân lớp
- More options
Output model. Hiển thị bộ phân lớp học được
Output per-class stars. Hiển thị thông tin thống kê về
precision/recall đối với mỗi lớp
Output entropy evaluation measures. Hiển thị đánh giá
độ hỗn tạp(entropy) của tập dữ liệu
Output confusion matrix. Hiển thị thông tin về ma trận
lỗi phân lớp(confusion matrix) đối với mỗi phân lớp học
được
Store predicitions for visualization. Các dự đoán của
bộ phân lớp được lưu lại trong bộ nhớ, để có thể 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ỉ đị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
- Classifier output hiển thị các thông tin quan trọng
Run information. Các tùy chọn đối với mơ hình học, tên
của tập dữ liệu, số lượng các ví dụ, các thuộc tính, và thí
nghiệm
Classifier model(full training set). Biểu diễn (dạng text)
của bộ phân lớp học được
Predictions on test data. Thơng tin chi tiết về các dự
đốn của bộ phân lớp đối với tập kiểm tra
Summary. Các thống kê về mức độ chính xác của bộ
phân lớp, đối với f.f.thí nghiệm đã chọn.
Datatiled Accuracy By Class. Thơng tin chi tiết về mức
độ chính xác của bộ phân lớp đối với mỗi lớp
Confusion Matrix. Các thành phần của ma trận này thể
hiện số lượng các ví dụ kiểm tra được phân lớp đúng và
bị phân lớp sai
- Result list cung cấp một số chức 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 (binary file)
Load model. Đọc lại một mơ hình đã được học trước đó
từ một tập tin nhị phân
Re-evanluate 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 tra (test set) hiện tại
Visualize classifier errors. Hiển thị cửa sổ thể hiện các
kết quả của việc phân lớp
7. Các bộ phân cụm
- Các bộ phân cụm (Cluster builders) của Weka tương ứng với mơ hình tìm
các nhóm của các ví dụ tương tự đối với một tập dữ liệu
- Lựa chọn một chế độ phân cụm (cluster buider)
- Lựa chọn chế độ phân cụm (cluster mode)
Use training set. Các cụm học được sẽ được kiểm tra đối
với tập học
Supplie test set. Sử dụng một tập dữ liệu khác để kiểm tra
các cụm học được
Percentage split. Chỉ định tỷ lệ phân chia tập dữ liệu ban
đầu cho việc xây dựng kiểm tra
Classes to clusters evaluation. So sánh độ chính xác của
các cụm học được đối với lớp được chỉ định
- Store clusters for visualization
Lưu lại các bộ phân lớp trong bộ nhớ, để có thể hiển thị sau
đó
Lựa chọn các thuộc tính sẽ khơng tham gia vào q trình
học các cụm
8. Luật kết hợp
- Lựa chọn mơ hình(giải thuật) phát hiện luật kết hợp
- Associator output hiển thị các thông tin quan trọng
Run information. Các tùy chọn đối với mơ hình phát hiện
luật kết hợp, tên của tập dữ liệu, số lượng các ví dụ, các
thuộc tính
Associator model(full training set). Biểu diễn (dạng text)
của tập các luật kết hợp phát hiện được
> Độ hỗ trợ tối thiểu (minimum support)
> Độ tin cậy tối thiểu (minimum confidence)
> Kích thước của tập mục thường xuyên
(large/frequent itemsets)
> Liệt kê các luật kết hợp tìm được
II.
Ứng dụng Weka vào bài toán với cơ sở dữ liệu là segment test sử
dụng thuật tốn REPTree
1. Mơ tả bài toán
Phân đoạn ảnh là một thao tác ở mức thấp trong tồn bộ q trình xử lý ảnh.
Q trình này thực hiện việc phân vùng ảnh thành các vùng rời rạc và đồng
nhất với nhau hay nói cách khác là xác định các biên của các vùng ảnh đó.
Các vùng ảnh đồng nhất này thông thường sẽ tương ứng với tòan bộ hay
từng phần của các đối tượng thật sự bên trong ảnh. Phân đoạn ảnh là chia
ảnh thành các vùng khơng trùng lắp. Mỗi vùng gồm một nhóm pixel liên
thơng và đồng nhất theo một tiêu chí nào đó[1]. Tiêu chí này phụ thuộc vào
mục tiêu của q trình phân đoạn. Ví dụ như đồng nhất về màu sắc, mức
xám, kết cấu, độ sâu của các layer… Sau khi phân đoạn mỗi pixel chỉ thuộc
về một vùng duy nhất.
2. Trích chon đặc tính
a. Ý nghĩa và phương pháp trích chọn đặc tính
- Với Dataset segment test được lựa chọn bao gồm 20 thuộc tính dùng để mơ
tả về phân đoạn, tuy nhiên khi xây dựng một Data mining model nào đó thì
chỉ cẩn khoảng 50 thuộc tính trong hàng trăm thuộc tính đó. Nếu sử dụng
tất cả các thuộc tính đó để xây dựng mơ hình thì ta cần nhiều CPU, tốn
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 ta hiệu chỉnh ngưỡng để lấy
ra các thuộc tính có Score trên ngưỡng cho phép. Q trình trích chọn
thuộc tính ln được thực hiện trước q trình Training model.
Một số phương pháp lựa chọn thuộc tính(feature selection methods)
- Có rất nhiều phương pháp để 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 tốn được dùng để xây dựng mơ hình. Sau
đây là một số phương pháp phổ biến dung 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 tồ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).
Shannon's entropy được tính theo cơng thức sau:
H(X) = -∑ P(xi) log(P(xi))
+Ngồ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
b. 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ồm 2 phần:
+ Attribute Evaluator: Để xác định một phương pháp đánh giá mức độ
phù hợp của các thuộc tính
+ Search Method: Để xác định một phương pháp(thứ tự) xét các thuộc
tính như : best-first, random, ranking…
- Trong bộ cơ sở dữ liệu supper market có thể có nhều thuộc tính khơng cần
xem xét, 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 segment-test.arff, ta sẽ có như sau:
- Chọn tab “Select attributes”, trong mục “Attribute Evaluaror” chọn
WrapperSubsetEval, trong mục Classifier chọn NaiveBayes như hình
sau:
- Trong mục Search Method chọn GredySteepWise, và làm như sau:
- Bấm Star để thực hiện kết quả
Như vậy ta chỉ cần 14/20 thuộc tính trong cơ sở dữ liệu trong việc khai phá dữ liệu
Bao gồm các thuộc tính sau:
region-centroid-col
region-centroid-row
short-line-density-5
vedge-sd
rawred-mean
rawblue-mean
rawgreen-mean
exred-mean
exblue-mean
exgreen-mean
value-mean
saturation-mean
hue-mean
3. Tiền xử lý dữ liệu
- 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
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.
Tiền xử lý dữ liệu với bài tốn segment-test:
Trong bài tốn của mình em đã loại bỏ đi các thuộc tính khơng cần thiết
trong việc khai phá dữ liệu bằng cách: Trong panel Filter chọn Choose
-> filters ->unsupervised -> attribute -> Remove
Bước tiếp theo là bấm vào textbox ngay bên phải nút “Choose” và gỏ vào
3,5,6,8,9,20 (đây là các chỉ số tương ứng với các thuộc tính loại bỏ). Chú ý
rằng tùy chọn "invertSelection" phải được thiết lập là false
ấn Apply ta sẽ được bộ dữ liệu mới không có các thuộc tính đã bị tick nữa.
Kết quả cuối cùng ta được bộ các thuộc tính sẽ sử dụng như sau:
Ta sẽ save lại dữ liệu, tên là segment-test2.arff, ta sẽ thực hiện thuật toán
phân lớp trên cơ sở dữ liệu mới này
III. Kết quả thu được khi sử dụng thuật toán REPTree
1. Kết quả khi sử dụng thuật toán REPTree 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.REPTree -M 2 -V 0.0010 -N 3 -S 1 -L -1
Relation: segment-weka.filters.unsupervised.attribute.Remove-R3,5,6,8,9,20
Instances:810
Attributes:14
region-centroid-col
region-centroid-row
short-line-density-5
vegde-sd
intensity-mean
rawred-mean
rawblue-mean
rawgreen-mean
exred-mean
exblue-mean
exgreen-mean
value-mean
saturation-mean
hue-mean
Test mode:split 66.0% train, remainder test
=== Classifier model (full training set) ===
REPTree
============
exgreen-mean < 3.11
| exred-mean < -0.06
| | exgreen-mean < 0.94
| | | exred-mean < -6.17
| | | | rawgreen-mean < 79.28
| | | | | exgreen-mean < -5.83
| | | | | | exgreen-mean < -14.28
| | | | | | | exred-mean < -18.56
| | | | | | | | saturation-mean < 0.35 : -2.08 (33/0) [13/0]
| | | | | | | | saturation-mean >= 0.35 : -2.21 (7/0) [0/0]
| | | | | | | exred-mean >= -18.56
| | | | | | | | exred-mean < -9.61 : -2.01 (62/0) [32/0]
| | | | | | | | exred-mean >= -9.61 : -1.86 (5/0) [4/0]
| | | | | | exgreen-mean >= -14.28
| | | | | | | exred-mean < -16.33 : -2.27 (15/0) [7/0]
| | | | | | | exred-mean >= -16.33
| | | | | | | | intensity-mean < 34.3
| | | | | | | | | exred-mean < -7.39
| | | | | | | | | | exgreen-mean < -9.28
| | | | | | | | | | | region-centroid-col < 90 : -2.06 (7/0.01)
[12/0.02]
| | | | | | | | | | | region-centroid-col >= 90 : -2.13 (25/0) [15/0]
| | | | | | | | | | exgreen-mean >= -9.28 : -2.18 (19/0.01) [10/0]
| | | | | | | | | exred-mean >= -7.39 : -2.06 (10/0) [2/0]
| | | | | | | | intensity-mean >= 34.3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| | | | | | | | exred-mean < -11.44 : -2.25 (3/0) [3/0.1]
| | | | | | | | exred-mean >= -11.44 : -1.99 (6/0) [1/0.01]
| | | | exgreen-mean >= -5.83 : -2.37 (34/0.02) [21/0.01]
| | | rawgreen-mean >= 79.28
| | | | exgreen-mean < -19.83
| | | | | exred-mean < -23.94 : -2.23 (16/0) [9/0]
| | | | | exred-mean >= -23.94 : -2.04 (2/0) [1/0]
| | | | exgreen-mean >= -19.83
| | | | | exred-mean < -35.94 : -2.39 (16/0) [8/0]
| | | | | exred-mean >= -35.94 : -2.31 (44/0) [13/0]
| | exred-mean >= -6.17
| | | rawred-mean < 5.61 : -2.1 (58/0.02) [28/0.01]
| | | rawred-mean >= 5.61
| | | | exred-mean < -3.33
| | | | | region-centroid-col < 203.5 : -1.73 (13/0) [7/0]
| | | | | region-centroid-col >= 203.5 : -1.95 (2/0) [0/0]
| | | | exred-mean >= -3.33 : -1.63 (24/0) [13/0]
| exgreen-mean >= 0.94 : 0.59 (2/8.25) [1/3.08]
exred-mean >= -0.06
| saturation-mean < 0.07 : 0 (11/0) [3/0]
| saturation-mean >= 0.07
| | exblue-mean < 4.28
| | | exred-mean < 5.06
| | | | exred-mean < 4.33
| | | | | exred-mean < 3.56 : -1.12 (3/0) [1/0]
| | | | | exred-mean >= 3.56 : -1 (4/0) [5/0]
| | | | exred-mean >= 4.33 : -0.9 (11/0) [11/0]
| | | exred-mean >= 5.06
| | | | exblue-mean < 1.39 : -0.52 (3/0) [2/0.22]
| | | | exblue-mean >= 1.39 : -0.78 (3/0) [3/0]
| | exblue-mean >= 4.28
| | | exred-mean < 2.67
| | | | exred-mean < 1.39 : -1.54 (5/0) [3/0]
| | | | exred-mean >= 1.39 : -1.41 (4/0) [1/0]
| | | exred-mean >= 2.67
| | | | | exblue-mean < 9.33 : -1.17 (7/0) [5/0]
| | | | | exblue-mean >= 9.33 : -1.33 (3/0) [1/0]
exgreen-mean >= 3.11
| exblue-mean < -3.72
| | exred-mean < -7.56
| | | exblue-mean < -5.61
| | | | exblue-mean < -8.72 : 2.09 (4/0) [2/0]
| | | | exblue-mean >= -8.72 : 2.19 (15/0) [4/0.01]
| | | exblue-mean >= -5.61 : 2.32 (12/0) [5/0]
| | exred-mean >= -7.56
| | | exblue-mean < -9.5
| | | | exred-mean < -6.67 : 1.98 (3/0) [0/0]
| | | | exred-mean >= -6.67 : 1.86 (6/0) [5/0]
| | | exblue-mean >= -9.5
| | | | exblue-mean < -4.22 : 2.03 (9/0) [6/0.01]
| | | | exblue-mean >= -4.22 : 2.26 (2/0) [0/0]
| exblue-mean >= -3.72
| | exblue-mean < -0.5
| | | exblue-mean < -2.83 : 2.37 (11/0) [3/0]
| | | exblue-mean >= -2.83 : 2.49 (13/0) [3/0.01]
| | exblue-mean >= -0.5
| | | exblue-mean < 1.11 : 2.62 (3/0) [4/0]
| | | exblue-mean >= 1.11 : 2.8 (5/0) [3/0.01]
Size of the tree : 83
Time taken to build model: 0.09seconds
=== Evaluation on test split ===
=== Summary ===
Correlation coefficient
Mean absolute error
Root mean squared error
Relative absolute error
0.9968
0.0755
0.1242
6.3802 %