Áp dụng các phương pháp phân lớp (Classification) trên tập dữ liệu Mushroom

Trong bài viết này, ta sẽ áp dụng các phương pháp phân lớp (classification) lên tập dữ liệu Mushroom. Đây là tập dữ liệu mô tả các đặc tính vật lý của nấm, cùng với nhãn phân loại có độc hoặc ăn được. Các thuật toán được sử dụng gồm Naive Bayes, Nearest neighbor, ID3, J48. Để dễ tiếp cận, các phương pháp được thực hiện với Weka.

Mushroom

Mushroom

Tập dữ liệu: mushroom
Địa chỉ: https://archive.ics.uci.edu/ml/machine-learning-databases/mushroom/agaricus-lepiota.data
Mô tả: https://archive.ics.uci.edu/ml/machine-learning-databases/mushroom/agaricus-lepiota.names
Github: https://github.com/ongxuanhong/Applying-Classifiers-on-Mushroom-dataset/

Mô tả sơ lược về dữ liệu

Để nạp dữ liệu mushroom và Weka, ta cần thêm thông tin các thuộc tính nằm trong file mô tả vào tập dữ liệu, sau đó chuyển đuôi mở rộng thành *.csv (mushroom.csv).

Load mushroom data

Load mushroom data

Đây là tập dữ liệu mô tả các đặc tính vật lý của nấm, cùng với nhãn phân loại có độc hoặc ăn được (thuộc tính class đầu tiên: p (poisonous) – có độc, e (edible) – ăn được).

  • Số lượng mẫu: 8124.
  • Số lượng thuộc tính: 22.
  • Kiểu của mỗi thuộc tính: nomial.
  • Thuộc tính thiếu giá trị: stalk-root, số lượng mẫu bị thiếu giá trị: 2480 (31%).
  • Sự phân bố của dữ liệu vào các phân lớp khá cân bằng. Số lượng các phân lớp không áp đảo nhau (imbalanced).
  • Ta dùng filter > unsupervised > attribute > ReplaceMissingValues để điền các giá trị thiếu.

Tiến hành xây dựng và đánh giá mô hình

Ta phân chia tập dữ liệu để đánh giá mô hình theo hai phương pháp Hold-out và K-fold cross validation. Xem thêm cách đánh giá mô hình ở bài viết này.

Setup evaluation

Setup evaluation

Ta chọn thuộc tính phân lớp là “class”, chọn các Classifer tương ứng, sau đó bấm Start để tiến hành xây dựng mô hình và đánh giá độ chính xác.

Building models

Building models

Đánh giá mô hình bằng phương pháp Hold-out

Chúng ta sẽ chia dữ liệu thành 2 phần: 50% để xây dựng mô hình phân lớp (tập train), 50% để kiểm tra (tập test).

Classifier Precision Recall F-measure Confusion matrix
Naive Bayes 0.946 0.942 0.942
   a    b   <-- classified as
1763  212 |    a = p
  22 2065 |    b = e
KNN (k=1) 1 1 1
   a    b   <-- classified as
1975    0 |    a = p
   0 2087 |    b = e
ID3 decision tree 1 1 1
   a    b   <-- classified as
1975    0 |    a = p
   0 2087 |    b = e
J48 decision tree 1 1 1
   a    b   <-- classified as
1975    0 |    a = p
   0 2087 |    b = e

Đánh giá mô hình bằng phương pháp k-fold cross validation

Ta chọn k=10, nghĩa là chia tập dữ liệu thành 10 phần, 1 phần dùng làm tập kiểm tra (test set), 9 phần dùng để huấn luyện (train set).

Classifier Precision Recall F-measure Confusion matrix
Naive Bayes 0.958 0.956 0.956
   a    b   <-- classified as
3585  331 |    a = p
  29 4179 |    b = e
KNN (k=1) 1 1 1
   a    b   <-- classified as
3916    0 |    a = p
   0 4208 |    b = e
ID3 decision tree 1 1 1
   a    b   <-- classified as
3916    0 |    a = p
   0 4208 |    b = e
J48 decision tree 1 1 1
   a    b   <-- classified as
3916    0 |    a = p
   0 4208 |    b = e

Riêng thuật toán J48, ta có thể sử dụng chức năng Visualize Tree để xem hình ảnh cây quyết định.

Hold-out J48

Hold-out J48

Kết luận

Qua kết quả phân lớp trên, ta thấy ngoài mô hình Naive Bayes, các mô hình còn lại đều cho kết quả phân lớp rất tốt (100% phân lớp chính xác). Dựa vào cây quyết định, ta có thể biết được một loại nấm có độc hay không nhờ vào đặc điểm mùi và màu sắc của nó.

Về đặc điểm mùi, nấm nào ăn được thường có mùi hạnh nhân và mùi hoa hồi, nấm độc thường có mùi hôi, tanh, và cay. Còn đặc điểm màu sắc, chỉ có nấm màu xanh lá cây mới ăn được, các loài nấm có màu loè loạt như cam, vàng, tím đều là nấm độc.

Thật thú vị phải không nào, nhờ mô hình phân lớp ta có thể phân biệt được đâu là nấm độc, đâu là nấm ăn được chỉ thông qua một số đặc điểm nhận diện qua mùi và màu sắc.

Advertisements

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s