---
title: Welcome to PredictionIO! 
description: PredictionIO Open Source Machine Learning Server
---

## What is PredictionIO?

PredictionIO is an **open source Machine Learning Server** built on top of state-of-the-art open source stack for developers and data scientists create predictive engines for any machine learning task. It lets you:

* quickly build and deploy an engine as a web service on production with [customizable templates](http://templates.prediction.io);
* respond to dynamic queries in **real-time** once deployed as a web service;
* evaluate and tune multiple engine variants systematically;
* unify data from multiple platforms in batch or in real-time for comprehensive predictive analytics;
* speed up machine learning modeling with systematic processes and pre-built evaluation measures;
* support machine learning and data processing libraries such as Spark MLLib and OpenNLP;
* implement your own machine learning models and seamlessly incorporate them into your engine;
* simplify data infrastructure management.

PredictionIO can be [installed](https://docs.prediction.io/install/) as a full machine learning stack, bundled with **Apache Spark**, **MLlib**, **HBase**, **Spray** and **Elasticsearch**, which simplifies and accelerates scalable machine learning infrastructure management. 

| Getting Started | Developer Guides | ML Education and Usage | PredictionIO SDKs |
| --------------- | ---------------- | ---------------------- | ----------------- |
| [Quick Intro](/start/) | [System Architecture](/system/) | [Comics Recommendation](/demo/tapster/) | [Java](/sdk/java/) |
| [Installation Guide](/install/) | [Event Server Overview](/datacollection/) | [Text Classification](/demo/textclassification/) | [PHP](/sdk/php/) |
| [Downloading Template](/start/download/) | [Collecting Data](/datacollection/eventapi/) | [Community Contributed Demo](/demo/community/) | [Python](/sdk/python/) |
| [Deploying an Engine](/start/deploy/) | [Learning DASE](/customize/) |[Dimensionality Reduction](/machinelearning/dimensionalityreduction/)| [Ruby](/sdk/ruby/) | 
| [Customizing an Engine](/start/customize/) | [Implementing DASE](/customize/dase/) ||[Community Contributed](/sdk/community/) |
| [App Integration Overview](/appintegration/) | [Evaluation Overview](/evaluation/) |||
|| [Intellij IDEA Guide](/resources/intellij/) |||
|| [Scala API](/api/current/#package) |||


## Release Notes

A summary of the changes in each release in the current series are on Github [here](https://github.com/PredictionIO/PredictionIO/blob/master/RELEASE.md)

## Licensing

PredictionIO is licensed under the Apache License, Version 2.0. See [LICENSE](https://github.com/PredictionIO/PredictionIO/blob/master/LICENSE.txt) for the full license text.

### Documentation

Documentation is under a [Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License](http://creativecommons.org/licenses/by-nc-sa/3.0/).
