Làm AI dự đoán size quần áo bằng Scikit learn và Pandas trong 10 dòng code

Tram Ho

Hầu hết kiến thức trong bài viết được thu thập từ trang machinelearningcoban.com và tài liệu gốc của scikit learn
Chào mọi người, đây là lần đầu mình viết bài và mình cũng chỉ mới tìm hiểu về Machine Learning chỉ trong qua nay nên những kiến thức trong bài chỉ vô cùng cơ bản, mục đích chính là cho một số bạn mới giống mình có 1 cái nhìn tổng quan hơn về ML. Và mong có sai sót gì mọi người sẽ góp ý, cảm ơn.

Không lòng vòng anh như Hải Phòng, chúng ta vào chủ đề chính của bài hôm nay luôn. Đầu tiên, chúng ta sẽ đi đến khái niệm về ML(Machine Learning, từ giờ mình sẽ viết tắt)

Vậy Machine Learning là gì?


Machine Learning(Học Máy/Máy Học, yah sure chắc chắn là chúng ta không muốn dịch từ này ra rồi) là một lĩnh vực trong trí tuệ nhân tạo liên quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống “học” tự động từ dữ liệu để giải quyết những vấn đề cụ thể(Wikipedia). Tóm lại ML là 1 lĩnh vực của trí tuệ nhân tạo, xoay quanh việc sử dụng những dữ liệu có sẵn “dạy” máy tính bằng những thuật toán để giải quyết các vấn đề cụ thể.
VD: Dự đoán size quần áo nhờ các dữ liệu có sẵn( việc chúng ta sẽ làm hôm nay ), dạy AI chơi mario, vô vàn con bot đã, sẽ, và đang tồn tại,…

Các thuật toán ML được chia ra theo 2 cách:

  1. Phân loại theo cách học:
    • Supervised Learning(Học có giảm sát)
    • UnSupervised Learning(Học không giám sát)
    • Semi-Supervised Learning(Học bán giám sát)
    • Reinforcement Learning(Học củng cố)
  2. Phân loại theo chức năng:
    • Regression Algorithms
    • Classification Algorithms
    • Instance-based Algorithms
    • Regularization Algorithms
    • Bayesian Algorithms
    • Clustering Algorithms
    • Artificial Neural Network Algorithms
    • Dimensionality Reduction Algorithms
    • Ensemble Algorithms

Vào vấn đề chính

Như tiêu của bài viết hôm nay chúng ta sẽ làm một con AI đơn giản để dự đoán size quần áo, dựa vào cân nặng, tuổi tác và chiều cao bằng ML với 1 dataset(bộ dữ liệu) mà mình đã tìm được trên github
Mẫu dữ liệu: [
[60, 33.0, 160.5, “M”]
]

Trong bài viết hôm nay, chúng ta sẽ tạo 1 file index.py và một file data.csv là dữ liệu mình để nguồn ở bên trên. Sau khi đã tạo 2 file như trên, chúng ta bắt đầu cái thư viện:
>>> pip install scikit-learn pandas #hoặc py -m pip install scikit-learn pandas
Khi cài xong thư viện, trong index.py ta import thư viện:

Tiếp theo chúng ta sẽ đọc file dữ liệu, lọc những dữ liệu có thể bị trống, chuyển sang mảng numpy rồi gán vào biến preData bằng pandas:

Vì data của chúng có cả số và chữ, nên cần chuẩn hóa lại, do đó chúng ta cần mảng để quy ước từng kích cỡ với 1 con số(trong trường hợp này là index của nó trong mảng size):

Kế đến chúng ta sẽ làm bước cuối cùng với dữ liệu, đó là chuẩn hóa:

Bước cuối cùng của con AI này là xây dựng 1 cây quyết định, và với Scikit learn thì nó lại vô cùng đơn giản:

Vậy là trong chỉ 10 dòng code, chúng ta đã có một AI vô cùng xịn xò, để dự đoán chúng ta sẽ dùng tree.predict, ví dụ:

Lời kết

Vậy là chúng ta đã thành công tạo ra 1 chiếc AI dù cơ bản nhưng lại rất thiết thực, lại chỉ trong 10 dòng code. Tất nhiên là vì sử dụng thư viện, nếu viết từ đầu thì sẽ không dễ dàng đến thế, nhưng hãy cứ coi đây là bải mở đầu, các bạn hãy cố gắng và không từ bỏ để có thể tự viết ra một chiếc AI thật xịn xò. Chúc các bạn học tốt.

 

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo