feedzai / feedzai-openml

API for Feedzai's Open Machine Learning that allows to integrate ML algorithms in Feedzai's platform.
https://www.feedzai.com
Apache License 2.0
16 stars 9 forks source link
api data-science feedzai machine-learning openml

Feedzai OpenML API

Build Status codecov Codacy Badge

Feedzai's extensible Machine Learning API to integrate ML platforms with Feedzai's data science and runtime environment.

Usage

See the openml-example project as a trivial example of how to implement a new provider.

When building your OpenML Provider using Maven you can add dependencies on the artifacts in this repository. See the following sections to learn more about these.

OpenML API

Maven metadata URI

The OpenML API module contains the main concepts that allow interaction between Feedzai's platform and an external ML platform.

<dependency>
  <groupId>com.feedzai</groupId>
  <artifactId>openml-api</artifactId>
  <!-- See project tags for latest version -->
  <version>1.2.0</version>
</dependency>

OpenML Utils

Maven metadata URI

The openml-utils module helps you to manipulate some of the core concepts.

<dependency>
  <groupId>com.feedzai</groupId>
  <artifactId>openml-utils</artifactId>
  <!-- See project tags for latest version -->
  <version>1.2.0</version>
</dependency>

Building

Build this Maven project using the following command:

mvn clean install

Developing

Make sure your provider is identified according to the specification of Java's Service Loader. This entails generating a Jar with the code (possibly with all the dependencies necessary in it, or a set of Jars instead), and making sure you include a file resources/META-INF/services/com.feedzai.openml.MachineLearningProvider to indicate which providers you have in your code. Check out our example in this repository. It may also be helpful to look into Google's Auto Service to set this up for you.

Maven Archetype

As a way to ease the creation of new OpenML Providers, a Maven archetype was created. To get started with it, just run:

mvn archetype:generate -DarchetypeGroupId=com.feedzai -DarchetypeArtifactId=openml-provider-archetype -DarchetypeVersion=1.2.0

After providing all the necessary information (your new provider groupId, artifactId, and version), a template provider with some guidance will be available on your workspace.

IDE Compatibility

This project makes use of the jgitver Maven plugin. When using Intellij IDEA you must configure the project to skip the plugin altogether. See the related issue.