Code Monkey home page Code Monkey logo

applying-classifiers-on-mushroom-dataset's Introduction

Á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.

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

Đâ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. 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.

Đá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| |---|---|---|---|---| |Naive Bayes|0.946|0.942|0.942| |KNN (k=1)|1|1|1|1| |ID3 decision tree|1|1|1|1| |J48 decision tree|1|1|1|1|

Đá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| |---|---|---|---|---| |Naive Bayes|0.958|0.956|0.956| |KNN (k=1)|1|1|1|1| |ID3 decision tree|1|1|1|1| |J48 decision tree|1|1|1|1|

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. ![Decision tree visualization] (https://ongxuanhong.files.wordpress.com/2015/08/hold-out-j48.png)

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.

applying-classifiers-on-mushroom-dataset's People

Contributors

ongxuanhong avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.