All Projects → apache → predictionio-template-ecom-recommender

apache / predictionio-template-ecom-recommender

Licence: Apache-2.0 license
PredictionIO E-Commerce Recommendation Engine Template (Scala-based parallelized engine)

Programming Languages

scala
5932 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to predictionio-template-ecom-recommender

predictionio-template-similar-product
PredictionIO Similar Product Engine Template (Scala-based parallelized engine)
Stars: ✭ 50 (-31.51%)
Mutual labels:  big-data, predictionio
predictionio-sdk-java
PredictionIO Java SDK
Stars: ✭ 107 (+46.58%)
Mutual labels:  big-data, predictionio
predictionio
PredictionIO, a machine learning server for developers and ML engineers.
Stars: ✭ 12,510 (+17036.99%)
Mutual labels:  big-data, predictionio
predictionio-sdk-ruby
PredictionIO Ruby SDK
Stars: ✭ 192 (+163.01%)
Mutual labels:  big-data, predictionio
Attic Predictionio
PredictionIO, a machine learning server for developers and ML engineers.
Stars: ✭ 12,522 (+17053.42%)
Mutual labels:  big-data, predictionio
predictionio-template-attribute-based-classifier
PredictionIO Classification Engine Template (Scala-based parallelized engine)
Stars: ✭ 38 (-47.95%)
Mutual labels:  big-data, predictionio
predictionio-sdk-php
PredictionIO PHP SDK
Stars: ✭ 269 (+268.49%)
Mutual labels:  big-data, predictionio
predictionio-template-java-ecom-recommender
PredictionIO E-Commerce Recommendation Engine Template (Java-based parallelized engine)
Stars: ✭ 36 (-50.68%)
Mutual labels:  big-data, predictionio
predictionio-template-recommender
PredictionIO Recommendation Engine Template (Scala-based parallelized engine)
Stars: ✭ 80 (+9.59%)
Mutual labels:  big-data, predictionio
predictionio-sdk-python
PredictionIO Python SDK
Stars: ✭ 199 (+172.6%)
Mutual labels:  big-data, predictionio
dislib
The Distributed Computing library for python implemented using PyCOMPSs programming model for HPC.
Stars: ✭ 39 (-46.58%)
Mutual labels:  big-data
leetspeek
Open and collaborative content from leet hackers!
Stars: ✭ 11 (-84.93%)
Mutual labels:  big-data
pyspark-algorithms
PySpark Algorithms Book: https://www.amazon.com/dp/B07X4B2218/ref=sr_1_2
Stars: ✭ 72 (-1.37%)
Mutual labels:  big-data
yildiz
🦄🌟 Graph Database layer on top of Google Bigtable
Stars: ✭ 24 (-67.12%)
Mutual labels:  big-data
awesome-coder-resources
编程路上加油站!------【持续更新中...欢迎star,欢迎常回来看看......】【内容:编程/学习/阅读资源,开源项目,面试题,网站,书,博客,教程等等】
Stars: ✭ 54 (-26.03%)
Mutual labels:  big-data
corpusexplorer2.0
Korpuslinguistik war noch nie so einfach...
Stars: ✭ 16 (-78.08%)
Mutual labels:  big-data
phoenix-queryserver
Apache Phoenix Query Server
Stars: ✭ 33 (-54.79%)
Mutual labels:  big-data
couchdb-pkg
Apache CouchDB Packaging support files
Stars: ✭ 24 (-67.12%)
Mutual labels:  big-data
cdp-service
cdp数据平台,帮助企业充分了解客户,实现千人千面的精准营销。
Stars: ✭ 30 (-58.9%)
Mutual labels:  big-data
HadoopDedup
🍉基于Hadoop和HBase的大规模海量数据去重
Stars: ✭ 27 (-63.01%)
Mutual labels:  big-data

E-Commerce Recommendation Template

Documentation

Please refer to https://predictionio.apache.org/templates/ecommercerecommendation/quickstart/

Versions

v0.14.0

Update for Apache PredictionIO 0.14.0

v0.13.0

Update for Apache PredictionIO 0.13.0

v0.12.0-incubating

  • Bump version number to track PredictionIO version
  • Sets default build targets according to PredictionIO
  • Fix warnings

v0.11.0-incubating

  • Bump version number to track PredictionIO version
  • Rename Scala package name
  • Update SBT version

v0.5.0

  • Update for Apache PredictionIO 0.10.0-incubating

v0.4.0

  • Change from ALSAlgorithm.scala to ECommAlgorithm.scala

    • return popular bought items when no information is found for the user.
    • add "similarEvents" parameter for configuration what user-to-item events are used for finding similar items
    • re-structure the Algorithm code for easier customization and testing
  • add some unit tests for testing code that may be customized

v0.3.1

  • use INVALID_APP_NAME as default appName in engine.json

v0.3.0

  • update for PredictionIO 0.9.2, including:

    • use new PEventStore and LEventStore API
    • use appName in DataSource and Algorithm parameters

v0.2.0

  • update build.sbt and template.json for PredictionIO 0.9.2

v0.1.1

  • update for PredictionIO 0.9.0

v0.1.0

  • initial version

Development Notes

import sample data

$ python data/import_eventserver.py --access_key <your_access_key>

query

normal:

$ curl -H "Content-Type: application/json" \
-d '{
  "user" : "u1",
  "num" : 10 }' \
http://localhost:8000/queries.json \
-w %{time_connect}:%{time_starttransfer}:%{time_total}
$ curl -H "Content-Type: application/json" \
-d '{
  "user" : "u1",
  "num": 10,
  "categories" : ["c4", "c3"]
}' \
http://localhost:8000/queries.json \
-w %{time_connect}:%{time_starttransfer}:%{time_total}
curl -H "Content-Type: application/json" \
-d '{
  "user" : "u1",
  "num": 10,
  "whiteList": ["i21", "i26", "i40"]
}' \
http://localhost:8000/queries.json \
-w %{time_connect}:%{time_starttransfer}:%{time_total}
curl -H "Content-Type: application/json" \
-d '{
  "user" : "u1",
  "num": 10,
  "blackList": ["i21", "i26", "i40"]
}' \
http://localhost:8000/queries.json \
-w %{time_connect}:%{time_starttransfer}:%{time_total}

unknown user:

curl -H "Content-Type: application/json" \
-d '{
  "user" : "unk1",
  "num": 10}' \
http://localhost:8000/queries.json \
-w %{time_connect}:%{time_starttransfer}:%{time_total}

handle new user

new user:

curl -H "Content-Type: application/json" \
-d '{
  "user" : "x1",
  "num": 10}' \
http://localhost:8000/queries.json \
-w %{time_connect}:%{time_starttransfer}:%{time_total}

import some view events and try to get recommendation for x1 again.

accessKey=<YOUR_ACCESS_KEY>
curl -i -X POST http://localhost:7070/events.json?accessKey=$accessKey \
-H "Content-Type: application/json" \
-d '{
  "event" : "view",
  "entityType" : "user"
  "entityId" : "x1",
  "targetEntityType" : "item",
  "targetEntityId" : "i2",
  "eventTime" : "2015-02-17T02:11:21.934Z"
}'

curl -i -X POST http://localhost:7070/events.json?accessKey=$accessKey \
-H "Content-Type: application/json" \
-d '{
  "event" : "view",
  "entityType" : "user"
  "entityId" : "x1",
  "targetEntityType" : "item",
  "targetEntityId" : "i3",
  "eventTime" : "2015-02-17T02:12:21.934Z"
}'

handle unavailable items

Set the following items as unavailable (need to specify complete list each time when this list is changed):

curl -i -X POST http://localhost:7070/events.json?accessKey=$accessKey \
-H "Content-Type: application/json" \
-d '{
  "event" : "$set",
  "entityType" : "constraint"
  "entityId" : "unavailableItems",
  "properties" : {
    "items": ["i43", "i20", "i37", "i3", "i4", "i5"],
  }
  "eventTime" : "2015-02-17T02:11:21.934Z"
}'

Set empty list when no more items unavailable:

curl -i -X POST http://localhost:7070/events.json?accessKey=$accessKey \
-H "Content-Type: application/json" \
-d '{
  "event" : "$set",
  "entityType" : "constraint"
  "entityId" : "unavailableItems",
  "properties" : {
    "items": [],
  }
  "eventTime" : "2015-02-18T02:11:21.934Z"
}'
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].