-
Notifications
You must be signed in to change notification settings - Fork 0
Maori Project
The Maori project allows developers writing apps on Android to run Weka based Machine Learning models on the android client and thus make their apps richer by providing it the ability to perform several machine learning tasks in their apps.
For example, a tourist application that displays interesting content to the user based on their interests and location might have a Machine Learning model to decide when to intervene and what to intervene with. When using maori-client, the library will download these models from the server and provide access to them in the app. The app can then run the model on the phone to make predictions and even modify the model over time with user feedback.
The real power of Maori comes from the fact that the exact same models in the exact same (Java code) can be used both on the client and the server. Developers can build and tune these models and upload them on the server. The client automatically downloads them and starts executing the new models to make predictions. Also, it supports versioning - so developers can remotely control which version of the model to use and the client will automatically switch between them. This allows the flexibility to improve the model over time based on performance.
###Typical Use Cases
- Build a model on the server, download it to the client and make predictions on the client.
- Same as 1, but you can then update the model on the client and push it back to the server (Updating is supported, pushing back is not supported yet.)
- Build a model on the client, and run it to make predictions on the client.
- Build a model on the server, perform prediction on the server (No need to run machine learning on the clients)
###Components
- maori-server - Server component that serves models to the client. Developers build and store models here.
- maori-client - Android Client library, that downloads models to the phone, stores them locally and provides and interface to access them.
- weka-android - Weka library ported to Android. Built on Android
- weka - Exact same version of weka built on the JVM.
Note: The Repositories 3 and 4 are exactly the same in terms of code. They have been committed differently to allow for some minor changes in build and packaging. They could ideally be kept in the same repository and maintained as different branches.
Maori was built to be used with the Aware framework, but can be used in isolation as well.