Skip to main content

Python client for the mlrequest machine learning API.

Project description

Getting started

mlrequest-python is a Python client for the mlrequest machine learning API. The client allows you to do a few significant things with minimal code.

  • Deploy latency-routed scikit-learn and online machine learning models to 5 data centers around the world, providing < 60ms global response time and automatic failover.
  • Get thousands of model predictions per second
  • Train online models with thousands of training examples per second

You will need an API key to get started with mlrequest-python. You can obtain one for free that provides 5,000 monthly model transactions at https://mlrequest.com/signup.html. The free plan is limited to the deployment of a single online learning model or scikit-learn model file less than 1 MB in size. Scikit-learn model transactions are prioritized for paid accounts, and will generally receive up to 50ms faster response time than free accounts. Additionally, free accounts are restricted to a single data center (of your choosing) and will not benefit from latency routing.

For more transactions, larger scikit-learn model files (up to 100 MB), more models, and faster scikit-learn response times, see our paid plans at https://mlrequest.com/pricing.html. Check out our documentation for more information.

Install

pip install mlrequest

Scikit-Learn

Create and Deploy a Scikit-Learn Model

from sklearn.ensemble import RandomForestClassifier
from mlrequest import SKLearn

clf = RandomForestClassifier()
clf.fit(X, y)

sklearn = SKLearn('your-api-key')
sklearn.deploy(clf, 'rf-model-name')

# Make predictions
features = [[1, 2, 3]]
pred = sklearn.predict(features, 'rf-model-name')

Deploy a Scikit-Learn Model to a Specific Region

If you have a free or single region account, you will only be permitted to deploy to one data center (region) at a time. Your model will automatically failover to another region when loss of service is experienced in your deployed region. Below is an example of how to specify the region to deploy to.

from sklearn.ensemble import RandomForestClassifier
from mlrequest import SKLearn
from mlrequest import regions

clf = RandomForestClassifier()
clf.fit(X, y)

sklearn = SKLearn('your-api-key')
sklearn.deploy(clf, 'rf-model-name', regions.US_EAST)

# Make predictions
features = [[1, 2, 3]]
pred = sklearn.predict(features, 'rf-model-name', regions.US_EAST)

Use any of the following regions.

  • regions.US_WEST (N. California)
  • regions.US_EAST (Ohio)
  • regions.EU_CENTRAL (Frankfurt)
  • regions.AP_SOUTH (Mumbai)
  • regions.AP_NORTHEAST (Seoul)

Online Learning

Create a Model

Models are created automatically by calling one of the model endpoints below.

Classifier

Currently classification is limited to logistic regression. Email support@mlrequest.com to request other online classifier models.

from mlrequest import Classifier
classifier = Classifier('your-api-key')

# Learn single
training_data = {'features': {'feature1': 23.1, 'feature2': 'some-value'}, 'label': 1}
# Learn batch
training_data = [{'features': {'feature1': 23.1, 'feature2': 'some-value'}, 'label': 1}, ...]

r = classifier.learn(training_data=training_data, model_name='clf-model-name', class_count=2)
r.content # A single response or list of responses

# Predict single
features = {'feature1': 23.1, 'feature2': 'some-value'}
# Predict batch
features = [{'feature1': 23.1, 'feature2': 'some-value'}, ...]

r = classifier.predict(features=features, model_name='clf-model-name', class_count=2)
r.predict_result # A single predicted class or a list of predicted classes

Regression

Currently regression is limited to linear regression. Email support@mlrequest.com to request other online regression models.

from mlrequest import Regression
regression = Regression('your-api-key')

# Learn single
training_data = {'features': {'feature1': 23.1, 'feature2': 'some-value'}, 'label': 1.25}
# Learn batch
training_data = [{'features': {'feature1': 23.1, 'feature2': 'some-value'}, 'label': 1.25}, ...]

r = regression.learn(training_data=training_data, model_name='reg-model-name')
r.content # A single response or list of responses

# Predict single
features = {'feature1': 23.1, 'feature2': 'some-value'}
# Predict batch
features = [{'feature1': 23.1, 'feature2': 'some-value'}, ...]

r = regression.predict(features=features, model_name='reg-model-name')
r.predict_result # A single predicted value or a list of predicted values

Reinforcement Learning

from mlrequest import RL
rl = RL('your-api-key')

# Predict
# Note: epsilon, and action_list fields are optional - see the docs at https://docs.mlrequest.com for more information
features = {'feature1': 23.1, 'feature2': 'some-value'}

r = rl.predict(features=features, model_name='rl-model-name', session_id='some-session-id', negative_reward=0, action_count=2)
r.predict_result # A list of actions, ordered by rank (choose r.predict_data[0] for the best action)

# Reward - important note: only the first action from predict_data should be rewarded. Other actions can be used but should not be rewarded.
r = rl.reward(reward=1, model_name='rl-model-name', session_id='some-session-id')
r.content # A single response

Account

from mlrequest import Account
account = Account('your-api-key')

# Get account information
r = account.get_details()
r.content # Account info response

# Delete a model
r = account.delete_model(model_name='some-model-name')
r.content # Delete success response

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mlrequest-1.1.3.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

mlrequest-1.1.3-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file mlrequest-1.1.3.tar.gz.

File metadata

  • Download URL: mlrequest-1.1.3.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.4.2 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for mlrequest-1.1.3.tar.gz
Algorithm Hash digest
SHA256 eb91c7182a9ad691f11d30b3a84ce5572a9383737344adbc0824e8ac4f9e959a
MD5 6a1ddeaaae426ecc799fb3367fe4b327
BLAKE2b-256 0c2cc8f55f74b38ac3c28c754fb8421f9ee58d185242633054ce068dcb917659

See more details on using hashes here.

File details

Details for the file mlrequest-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: mlrequest-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 10.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.4.2 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for mlrequest-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ce9971c89a78f567229c55786e84cfb60246887bd12316f6c96e341a4ab254aa
MD5 ae858ede6167d364060ef94b4e87c97b
BLAKE2b-256 a32666d0f183d5afda858a9e93f0ca5fbe484a90cf617c0176eb07cba2920766

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page