Pick a tab for the type of template you are looking for. Some still need to be ported (a simple process) to Apache PIO and these are marked. Also see each Template description for special support instructions.
The Universal Recommender
Use for:
- Personalized recommendations—user-based
- Similar items—item-based
- Viewed this bought that—item-based cross-action
- Popular Items and User-defined ranking
- Item-set recommendations for complimentarty purchases or shopping carts—item-set-based
- Hybrid collaborative filtering and content based recommendations—limited content-based
- Business rules
The name "Universal" refers to the use of this template in virtually any case that calls for recommendations - ecommerce, news, videos, virtually anywhere user behavioral data is known. This recommender uses the new Cross-Occurrence (CCO) algorithm to auto-correlate different user actions (clickstream data), profile data, contextual information (location, device), and some content types to make better recommendations. It also implements flexible filters and boosts for implementing business rules.
Support: The Universal Recommender user group
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | stable | 0.10.0-incubating | already compatible |
Recommendation
An engine template is an almost-complete implementation of an engine. PredictionIO's Recommendation Engine Template has integrated Apache Spark MLlib's Collaborative Filtering algorithm by default. You can customize it easily to fit your specific needs.
Support: Apache PredictionIO mailing lists
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | stable | 0.11.0-incubating | already compatible |
E-Commerce Recommendation
This engine template provides personalized recommendation for e-commerce applications with the following features by default:
- Exclude out-of-stock items
- Provide recommendation to new users who sign up after the model is trained
- Recommend unseen items only (configurable)
- Recommend popular items if no information about the user is available (added in template version v0.4.0)
Support: Apache PredictionIO mailing lists
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.11.0-incubating | already compatible |
Similar Product
This engine template recommends products that are "similar" to the input product(s). Similarity is not defined by user or item attributes but by users' previous actions. By default, it uses 'view' action such that product A and B are considered similar if most users who view A also view B. The template can be customized to support other action types such as buy, rate, like..etc
Support: Apache PredictionIO mailing lists
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | stable | 0.11.0-incubating | already compatible |
E-Commerce Recommendation (Java)
This engine template provides personalized recommendation for e-commerce applications with the following features by default:
- Exclude out-of-stock items
- Provide recommendation to new users who sign up after the model is trained
- Recommend unseen items only (configurable)
- Recommend popular items if no information about the user is available
Support: Apache PredictionIO mailing lists
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Java | Apache Licence 2.0 | alpha | 0.11.0-incubating | requires conversion |
Product Ranking
This engine template sorts a list of products for a user based on his/her preference. This is ideal for personalizing the display order of product page, catalog, or menu items if you have large number of options. It creates engagement and early conversion by placing products that a user prefers on the top.
Support:
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | stable | 0.9.2 | requires conversion |
Complementary Purchase
This engine template recommends the complementary items which most user frequently buy at the same time with one or more items in the query.
Support:
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.2 | requires conversion |
Music Recommendations
This is very similar to music recommendations template. It is integrated with all the events a music application can have such as song played, liked, downloaded, purchased, etc.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.2 | requires conversion |
Viewed This Bought That
This Engine uses co-occurrence algorithm to match viewed items to bought items. Using this engine you may predict which item the user will buy, given the item(s) browsed.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | stable | 0.9.2 | requires conversion |
Frequent Pattern Mining
Template uses FP Growth algorithm allowing to mine for frequent patterns. Template returns subsequent items together with confidence score. Sometimes used as a shopping cart recommender but has other uses.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.5 | requires conversion |
Similar Product with Rating
Similar product template with rating support! Used for the MovieLens Demo.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | beta | 0.9.0 | requires conversion |
Frequent Pattern Mining
Template uses FP Growth algorithm allowing to mine for frequent patterns. Template returns subsequent items together with confidence score.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.5 | requires conversion |
Classification
An engine template is an almost-complete implementation of an engine. PredictionIO's Classification Engine Template has integrated Apache Spark MLlib's Naive Bayes algorithm by default.
Support: Apache PredictionIO mailing lists
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | stable | 0.11.0-incubating | already compatible |
Classification
This engine template is an almost-complete implementation of an engine meant to used with PredictionIO. This Multi-label Classification Engine Template has integrated LingPipe (http://alias-i.com/lingpipe/) algorithm by default.
Support:
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Java | Apache Licence 2.0 | stable | 0.9.5 | already compatible |
Lead Scoring
This engine template predicts the probability of an user will convert (conversion event by user) in the current session.
Support:
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.2 | requires conversion |
Text Classification
Use this engine for general text classification purposes. Uses OpenNLP library for text vectorization, includes t.f.-i.d.f.-based feature transformation and reduction, and uses Spark MLLib's Multinomial Naive Bayes implementation for classification.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.11.0-incubating | requires conversion |
Churn Prediction - H2O Sparkling Water
This is an engine template with Sparkling Water integration. The goal is to use Deep Learning algorithm to predict the churn rate for a phone carrier's customers.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.2 | requires conversion |
Classification Deeplearning4j
A classification engine template that uses Deeplearning4j library.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.2 | requires conversion |
Probabilistic Classifier (Logistic Regression w/ LBFGS)
A PredictionIO engine template using logistic regression (trained with limited-memory BFGS ) with raw (probabilistic) outputs.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | MIT License | alpha | 0.9.2 | requires conversion |
Document Classification with OpenNLP
Document Classification template with OpenNLP GISModel.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.0 | requires conversion |
Circuit End Use Classification
A classification engine template that uses machine learning models trained with sample circuit energy consumption data and end usage to predict the end use of a circuit by its energy consumption history.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.1 | requires conversion |
GBRT_Classification
The Gradient-Boosted Regression Trees(GBRT) for classification.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.2 | requires conversion |
MLlib-Decision-Trees-Template
An engine template is an almost-complete implementation of an engine. This is a classification engine template which has integrated Apache Spark MLlib's Decision tree algorithm by default.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.0 | requires conversion |
Classification with MultiLayerNetwork
This engine template integrates the MultiLayerNetwork implementation from the Deeplearning4j library into PredictionIO. In this template, we use PredictionIO to classify the widely-known IRIS flower dataset by constructing a deep-belief net.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.0 | requires conversion |
Deeplearning4j RNTN
Recursive Neural Tensor Network algorithm is supervised learning algorithm used to predict sentiment of sentences. This template is based on deeplearning4j RNTN example: https://github.com/SkymindIO/deeplearning4j-nlp-examples/tree/master/src/main/java/org/deeplearning4j/rottentomatoes/rntn. It's goal is to show how to integrate deeplearning4j library with PredictionIO.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.2 | requires conversion |
classifier-kafka-streaming-template
The template will provide a simple integration of DASE with kafka using spark streaming capabilities in order to play around with real time notification, messages ..
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | - | requires conversion |
Sentiment Analysis - Bag of Words Model
This sentiment analysis template uses a bag of words model. Given text, the engine will return sentiment as 1.0 (positive) or 0.0 (negative) along with scores indicating how +ve or -ve it is.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | stable | 0.10.0-incubating | already compatible |
Classification template for Iris
This is Python(PySpark) based classification example for Iris dataset.
Support:
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Python | Apache Licence 2.0 | stable | 0.12.0-incubating |
Survival Regression
Survival regression template is based on brand new Spark 1.6 AFT (accelerated failure time) survival analysis algorithm. There are interesting applications of survival analysis like:
- Business Planning : Profiling customers who has a higher survival rate and make strategy accordingly.
- Lifetime Value Prediction : Engage with customers according to their lifetime value
- Active customers : Predict when the customer will be active for the next time and take interventions accordingly. * Campaign evaluation : Monitor effect of campaign on the survival rate of customers.
Support: Blog post
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | beta | 0.9.5 | requires conversion |
Sparkling Water-Deep Learning Energy Forecasting
This Engine Template demonstrates an energy forecasting engine. It integrates Deep Learning from the Sparkling Water library to perform energy analysis. We can query the circuit and time, and return predicted energy usage.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.2 | requires conversion |
Electric Load Forecasting
This is a PredictionIO engine for electric load forecasting. The engine is using linear regression with stochastic gradient descent from Spark MLlib.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | stable | 0.9.2 | requires conversion |
MLLib-LinearRegression
This template uses the linear regression with stochastic gradient descent algorithm from MLLib to make predictions on real-valued data based on features (explanatory variables)
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.1 | requires conversion |
Linear Regression BFGS
Modeling the relationship between a dependent variable, y, and one or more explanatory variables, denoted X.
Support:
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | beta | 0.10.0 |
Regression template for Boston House Prices
This is Python(PySpark) based regression example for Boston House Prices dataset.
Support:
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Python | Apache Licence 2.0 | stable | 0.12.0-incubating |
Cstablo-template-text-similarity-classification
Text similarity engine based on Word2Vec algorithm. Builds vectors of full documents in training phase. Finds similar documents in query phase.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.5 | requires conversion |
Topic Labelling with Wikipedia
This template will label topics (e.g. topic generated through LDA topic modeling) with relevant category by referring to Wikipedia as a knowledge base.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | stable | 0.10.0-incubating | already compatible |
Text Classification
Use this engine for general text classification purposes. Uses OpenNLP library for text vectorization, includes t.f.-i.d.f.-based feature transformation and reduction, and uses Spark MLLib's Multinomial Naive Bayes implementation for classification.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.11.0-incubating | requires conversion |
Deeplearning4j RNTN
Recursive Neural Tensor Network algorithm is supervised learning algorithm used to predict sentiment of sentences. This template is based on deeplearning4j RNTN example: https://github.com/SkymindIO/deeplearning4j-nlp-examples/tree/master/src/main/java/org/deeplearning4j/rottentomatoes/rntn. It's goal is to show how to integrate deeplearning4j library with PredictionIO.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.2 | requires conversion |
Sentiment Analysis - Bag of Words Model
This sentiment analysis template uses a bag of words model. Given text, the engine will return sentiment as 1.0 (positive) or 0.0 (negative) along with scores indicating how +ve or -ve it is.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | stable | 0.10.0-incubating | already compatible |
OpenNLP Sentiment Analysis Template
Given a sentence, this engine will return a score between 0 and 4. This is the sentiment of the sentence. The lower the number the more negative the sentence is. It uses the OpenNLP library.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | beta | 0.10.0-incubating | already compatible |
Sentiment analysis
This template implements various algorithms for sentiment analysis, most based on recursive neural networks (RNN) and recursive neural tensor networks (RNTN)[1]. It uses an experimental library called Composable Machine Learning (CML) and the Stanford Parser. The example data set is the Stanford Sentiment Treebank.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.2 | requires conversion |
Word2Vec
This template integrates the Word2Vec implementation from deeplearning4j with PredictionIO. The Word2Vec algorithm takes a corpus of text and computes a vector representation for each word. These representations can be subsequently used in many natural language processing applications.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.0 | requires conversion |
Spark Deeplearning4j Word2Vec
This template shows how to integrate Deeplearnign4j spark api with PredictionIO on example of app which uses Word2Vec algorithm to predict nearest words.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | stable | 0.9.2 | requires conversion |
Sentiment Analysis Template
Given a sentence, return a score between 0 and 4, indicating the sentence's sentiment. 0 being very negative, 4 being very positive, 2 being neutral. The engine uses the stanford CoreNLP library and the Scala binding `gangeli/CoreNLP-Scala` for parsing.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | None | stable | 0.9.0 | requires conversion |
Recursive Neural Networks (Sentiment Analysis)
Predicting sentiment of phrases with use of Recursive Neural Network algorithm and OpenNLP parser.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | stable | 0.9.2 | requires conversion |
CoreNLP Text Classification
This engine uses CoreNLP to do text analysis in order to classify the category a strings of text falls under.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | - | requires conversion |
MLlibKMeansClustering
This is a template which demonstrates the use of K-Means clustering algorithm which can be deployed on a spark-cluster using prediction.io.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | - | requires conversion |
Topc Model (LDA)
A PredictionIO engine template using Latent Dirichlet Allocation to learn a topic model from raw text
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.4 | requires conversion |
KMeans-Clustering-Template
forked from PredictionIO/template-scala-parallel-vanilla. It implements the KMeans Algorithm. Can be extended to mainstream implementation with minor changes.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.2 | requires conversion |
Topic Labelling with Wikipedia
This template will label topics (e.g. topic generated through LDA topic modeling) with relevant category by referring to Wikipedia as a knowledge base.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | stable | 0.10.0-incubating | already compatible |
Bayesian Nonparametric Chinese Restaurant Process Clustering
Chinese restaurant process is stochastic process for statistical inference. The clustering which uses Chinese restaurant process does not need to decide the number of clusters in advance. This algorithm automatically adjusts it.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.10.0-incubating | already compatible |
Content Based SVD Item Similarity Engine
Template to calculate similarity between items based on their attributes—sometimes called content-based similarity. Attributes can be either numeric or categorical in the last case it will be encoded using one-hot encoder. Algorithm uses SVD in order to reduce data dimensionality. Cosine similarity is now implemented but can be easily extended to other similarity measures.
Support: The Universal Recommender user group
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.2 | requires conversion |
Cstablo-template-text-similarity-classification
Text similarity engine based on Word2Vec algorithm. Builds vectors of full documents in training phase. Finds similar documents in query phase.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.5 | requires conversion |
Similar Product with Rating
Similar product template with rating support! Used for the MovieLens Demo.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | beta | 0.9.0 | requires conversion |
Frequent Pattern Mining
Template uses FP Growth algorithm allowing to mine for frequent patterns. Template returns subsequent items together with confidence score.
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | alpha | 0.9.5 | requires conversion |
template-decision-tree-feature-importance
This template shows how to use spark' decision tree. It enables : - both categorical and continuous features - feature importance calculation - tree output in json - reading training data from a csv file
Support: Github issues
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | stable | 0.9.0 | requires conversion |
Skeleton
Skeleton template is for developing new engine when you find other engine templates do not fit your needs. This template provides a skeleton to kick start new engine development.
Support: Apache PredictionIO mailing lists
Type | Language | License | Status | PIO min version | Apache PIO Convesion Required |
---|---|---|---|---|---|
Parallel | Scala | Apache Licence 2.0 | stable | 0.11.0-incubating | already compatible |