Amazon Machine Learning

Amazon Machine Learning

Tiên đoán tương lai bằng cách tạo mô hình dữ liệu lịch sử

Bài viết của @thaiphihong. Researcher tại ChappieBot.

Amazon Machine Learning là gì? Đó là một dịch vụ “trên mây” (cloud-based service) giúp cho các lập trình viên ở mọi trình độ có thể sử dụng công nghệ machine learning vào sản phẩm của mình một cách dễ dàng, nhanh chóng.

Không cần code, ah thực ra vẫn cần, khi chuẩn bị dữ liệu và khi gọi api để dự đoán, nhưng đó là những bước coder nào cũng làm được, còn thuật toán machine learning này nọ thì Amazon sẽ bao, việc của chúng ta chỉ là chuẩn bị dữ liệu thật chuẩn, có câu đại loại “Rác vào rác ra, vàng vào vàng ra”, bạn không thể đưa dữ liệu sai mà lại mong chờ có các dự đoán đúng được.

Vậy Amazon Machine Learning có thể làm những gì? Dự đoán các giao dịch giả mạo, lừa đảo (VCB nên dùng ngay đi); Xác định thể loại của một bộ phim, là phim hài, phim hành động, hay phim tình cảm; Dự đoán nhiệt độ ngày mai của Hà Nội; Đánh giá một đoạn văn bản thuộc tin thời sự hay tâm sự hay thể thao; Dự đoán điểm tín dụng của khách hàng; Thậm chí là đưa ra dự đoán thời điểm nào bạn sẽ lấy vợ, bạn sẽ có mấy đứa con, khi nào bạn mua ô tô … Điều duy nhất quan trọng là bạn phải có tập dữ liệu đủ tốt để huấn luyện.

Một số thông tin cần biết

  • Amazon Machine Learning (AML) sử dụng dữ liệu quá khứ để tạo ra mô hình dự đoán tương lai, đó chính là học có giám sát (supervised learning). Chuyên dùng để phân lớp (classification) dữ liệu. Cho một tập dữ liệu đã biết trước nhãn để học, sau khi “học”, AML có thể dự đoán các dữ liệu chưa được gán nhãn.
  • Bạn cần một tài khoản Amazon Web Service, đăng kí tạiaws.amazon.com
  • Mô hình hoạt động của AML
 

Chuẩn bị dữ liệu

Do mục đích là biểu diễn, thử nghiệm, nên chúng ta có thể lấy dữ liệu Iris dataset tại đây. Dữ liệu mà AML sử dụng để tạo mô hình dự đoán là file csv, đo đó ta cần file có định dạng csv — các trường cách nhau bởi dấu phẩy, nếu có dấu nháy kép (“) để bao nữa thì càng tốt. File của mình các bạn có thể dùng thử

s3://thaiph/iris_dataset_.csv

Tạo model trên Amazon Machine Learning

  • Mở AML bằng cách vàohttps://console.aws.amazon.com/machinelearning/
  • Chọn nguồn dữ liệu là S3, nhập đường dẫn vào.
 

Ví dụ s3://aml-sample-data/banking.csv mình nói trước là cái file ví dụ này hơi bị to, dùng nó để test là vừa lâu vừa … tốn tiền đó, (mình đã mất 1.83$ để nghịch, cứ tưởng năm đầu Amazon cho miễn phí, ai dè chỉ miễn phí EC2). Các bạn nên tự tạo file hoặc dùng file Iris thì hơn. Chọn Verify, Amazon sẽ kiểm tra file của bạn, và hỏi quyền nếu nó chưa có quyền truy cập. Không vấn đề gì. Ngon lành sẽ như thế này:

 
  • Tạo Schema

Khi ấn Continue sẽ sang bước kiểm tra dữ liệu, chọn kiểu dữ liệu nếu cần, mặc định thì Amazon nhận dạng rất tốt rồi, Amazon có 4 kiểu: Text, Numeric, Binary, Categorical. Bước tạo schema này chính là lúc bạn chọn trường dữ liệu để dự đoán. Ví dụ ở đây mình chọn trường cần dự đoán là class, AML sẽ tự xác định xem đây là kiểu gì và chọn thuật toán để tạo ra model.

 
  • Row identifier Bước này thường thì mình chọn No, không cần thiết lắm. Chính AML cũng bảo nó không có ý nghĩa gì.
  • Review lại lần cuối

Ok, bước này xong thì ta đã tạo ra Datasource, nghĩa là datasource của amazon là gồm dữ liệu và schema. Một file dữ liệu có thể có nhiều schema (để dự đoán các trường khác nhau)

  • Chọn cấu hình cho model

Lần đầu thì cứ để mặc định, các lần sau bạn có thể tuỳ chỉnh các thông số để điều chỉnh mô hình cho phù hợp nhất

 
  • Review rồi ấn Create ML Model là xong, ngồi đợi hàng về
  • Khi Amazon tạo model xong thì bạn sẽ thấy nó như thế này:
 
  • Evaluations

Mặc định thì AML sẽ chia tập dữ liệu thành hai phần, 70% để luyện tập và 30% để đánh giá. Bước đánh giá này sẽ chạy sau khi model được tạo ra, nên có thể bạn sẽ thấy model đã tạo, bạn đã có thể test dự đoán, nhưng mục Evalutions thì vẫn đang tính toán. Đây là kết quả đánh giá mô hình:

 

Công thức tính điểm đánh giá F1

 

Giả sử có 3 nhóm là A, B, C

Precision = tổng số bản ghi của nhóm A mà model dự đoán đúng/ tổng số bản ghi mà model dự đoán rằng nằm ở nhóm A

Recall = tổng số bản ghi của nhóm A mà model dự đoán đúng/ tổng số bản ghi trong tập đánh giá nằm ở nhóm A

F1 của toàn bộ model chính là trung bình cộng của F1 của 3 nhóm A, B, C theo công thức trên

Baseline F1 score là cách tính F1 bằng cách dự dự đoán kiểu thống kê: Nếu nhóm A có xác suất cao nhất thì mọi bản ghi của tập dự đoán đều được “dự đoán mù” là thuộc nhóm A, sau đó tính ra F1. F1 của model càng cao hơn F1 baseline thì model càng được coi là chính xác.

  • Dự đoán

Cuối cùng cũng đến lúc thử nghiệm thành quả, vào Try real-time predictions, nhập vào dữ liệu:

 

Click Create prediction, kết quả đây:

 

Vậy là xong, bạn có thể làm thêm vài bước để cung cấp API cho ứng dụng của bạn, chi tiết có thể tìm hiểu tại hướng dẫn của Amazon, rất chi tiết. Và như thế, ai cũng có thể sử dụng machine learning, dù sao thì bạn cũng sẽ tốn một vài tuần (hoặc tháng) để hiểu các nguyên tắc căn bản, nhưng với Amazon, Google, Microsoft, áp dụng machine learning chưa bao giờ thuận lợi đến thế.

Post Author: administrator

Leave a Reply

Your email address will not be published. Required fields are marked *