PredictionIO Phần 2 - Cài đặt chương trình demo

- Phạm Duy Tùng
Bài này nằm trong loạt serie nghiên cứu và sử dụng công cụ PredictionIO. Đây là bài thứ hai sau bài mở đầu, ở bài này, chúng ta sẽ test thử một chương trình đơn giản để làm quen với cách sử dụng PredictionIO.

1. Tạo chương trình đầu tiên bằng PredictionIO

Đầu tiên, các bạn hãy tạo thư mục template ở đâu đó. Mình sẽ tạo ở trong thư mục /data/pio. Đường dẫn của mình sẽ là /data/pio/template

mdkir /data/pio/template

Tiếp theo, chúng ta sẽ clone templte trên github về, các bạn thực hiện lệnh sau

git clone https://github.com/apache/predictionio-template-recommender.git
cd predictionio-template-recommender

Tiếp theo, chúng ta sẽ tạo một app đầu tiên, mình đặt tên là ourrecommendation, các bạn thích đặt tên gì thì đặt nha.

pio app new ourrecommendation

Để liệt kê danh sách app đang có trong hệ thống, các bạn dùng lệnh

pio app list

Kết quả trong máy mình tại thời điểm viết bài là

[INFO] [Pio$]                 Name |   ID |                                                       Access Key | Allowed Event(s)
[INFO] [Pio$]    ourrecommendation |    1 | Z93rJZ7Xq2pXiQwVC6B5nRK6jRykcfyMI5huOijKbdDJeUeKEnVT-ph5nabptIX1 | (all)
[INFO] [Pio$] Finished listing 1 app(s).

Mình mới tạo app đầu tiên tên là ourrecommendation nên chỉ có 1 app trong hệ thống. Sau này sẽ có nhiều hơn. À, sau khi tạo app, thì hệ thống sẽ generate tự động cho app với một Access Key, ví dụ access key của app ourrecommendateion của mình là Z93rJZ7Xq2pXiQwVC6B5nRK6jRykcfyMI5huOijKbdDJeUeKEnVT-ph5nabptIX1. Các bạn sẽ có access key khác với access key của mình, nên đừng copy của mình về làm gì hết :).

Sau khi khởi tạo app xong, chúng ta sẽ import data vào hệ thống. Ở đây, mình sẽ download dữ liệu mẫu từ nguồn https://gist.githubusercontent.com/vaghawan/0a5fb8ddb85e03631dd500d7c8f0677d/raw/17487437dd8269588d9dd1ac859b129a43842ba5/data-sample.json. Sau khi download về các bạn import dữ liệu vào hệ thống bằng lệnh

pio import — appid 1 — input data-sample.json

Với appod 1 là id của ourrecommendation chúng ta vừa mới tạo. Nếu quên appid, các bạn có thể xem lại bằng lệnh pio app list.

Sau khi import thành công, chúng ta sẽ thay đổi giá trị của trường appname trong file engine.json thành tên của app mình, là ourrecommendation

nano engine.json

{
  "id": "default",
  "description": "Default settings",
  "engineFactory": "org.example.recommendation.RecommendationEngine",
  "datasource": {
    "params" : {
      "appName": "ourrecommendation"
    }
  },
  "algorithms": [
    {
      "name": "als",
      "params": {
        "rank": 10,
        "numIterations": 20,
        "lambda": 0.01,
        "seed": 3
      }
    }
  ]
}

Một lưu ý quang trọng là giá trị “org.example.recommendation.RecommendationEngine” trong “engineFactory” là của hệ thống. Và bạn đừng sửa, thay đổi chúng. Nói chung là ngoài giá trị của “appName” ra, bạn không nên thay đổi bất kỳ thức gì khác trong file engine.json.

Sau khi import file thành công. Chúng ta sẽ build app. Lệnh build có tác dụng kiểm tra lại hệ thống đã được cấu hình đúng và đủ chưa.

pio build

Nếu build thành công, chúng ta sẽ thấy dòng chữ này.


[INFO] [Engine$] Build finished successfully.
[INFO] [Pio$] Your engine is ready for training.

Sau khi build thành công, chúng ta sẽ tiến hành huấn luyện mô hình

pio build

Và chờ đợi dòng này xuất hiện


[INFO] [CoreWorkflow$] Training completed successfully.

Cảm ơn các bạn đã theo dõi. Hẹn gặp bạn ở những bài viết tiếp theo.


Bài viết khác
comments powered by Disqus