All Projects → apinf → ml-rest

apinf / ml-rest

Licence: Unlicense license
REST API (and possible UI) for Machine Learning workflows

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to ml-rest

Trajectory-Analysis-and-Classification-in-Python-Pandas-and-Scikit-Learn
Formed trajectories of sets of points.Experimented on finding similarities between trajectories based on DTW (Dynamic Time Warping) and LCSS (Longest Common SubSequence) algorithms.Modeled trajectories as strings based on a Grid representation.Benchmarked KNN, Random Forest, Logistic Regression classification algorithms to classify efficiently t…
Stars: ✭ 41 (-33.87%)
Mutual labels:  scikit-learn
face rating
Face/Beauty Rating with both the traditional ML approaches and Convolutional Neural Network Approach
Stars: ✭ 68 (+9.68%)
Mutual labels:  scikit-learn
TextClassification
基于scikit-learn实现对新浪新闻的文本分类,数据集为100w篇文档,总计10类,测试集与训练集1:1划分。分类算法采用SVM和Bayes,其中Bayes作为baseline。
Stars: ✭ 86 (+38.71%)
Mutual labels:  scikit-learn
PredictionAPI
Tutorial on deploying machine learning models to production
Stars: ✭ 56 (-9.68%)
Mutual labels:  scikit-learn
CreditCard Fraud Detection
利用Logistic回归实现信用卡欺诈检测
Stars: ✭ 31 (-50%)
Mutual labels:  scikit-learn
RobustPCA
No description or website provided.
Stars: ✭ 15 (-75.81%)
Mutual labels:  scikit-learn
Movie-Recommendation-Chatbot
Movie Recommendation Chatbot provides information about a movie like plot, genre, revenue, budget, imdb rating, imdb links, etc. The model was trained with Kaggle’s movies metadata dataset. To give a recommendation of similar movies, Cosine Similarity and TFID vectorizer were used. Slack API was used to provide a Front End for the chatbot. IBM W…
Stars: ✭ 33 (-46.77%)
Mutual labels:  scikit-learn
rezonance
Content Based Music Recommendation Service
Stars: ✭ 28 (-54.84%)
Mutual labels:  scikit-learn
scitime
Training time estimation for scikit-learn algorithms
Stars: ✭ 119 (+91.94%)
Mutual labels:  scikit-learn
ASD-ML-API
This project has 3 goals: To find out the best machine learning pipeline for predicting ASD cases using genetic algorithms, via the TPOT library. (Classification Problem) Compare the accuracy of the accuracy of the determined pipeline, with a standard Naive-Bayes classifier. Saving the classifier as an external file, and use this file in a Flask…
Stars: ✭ 14 (-77.42%)
Mutual labels:  scikit-learn
scikit-hyperband
A scikit-learn compatible implementation of hyperband
Stars: ✭ 68 (+9.68%)
Mutual labels:  scikit-learn
sklearn-matlab
Machine learning in Matlab using scikit-learn syntax
Stars: ✭ 27 (-56.45%)
Mutual labels:  scikit-learn
bayarea-2019-scikit-sprint
Bay Area WiMLDS scikit-learn open source sprint (Nov 2, 2019)
Stars: ✭ 16 (-74.19%)
Mutual labels:  scikit-learn
sktime-tutorial-pydata-amsterdam-2020
Introduction to Machine Learning with Time Series at PyData Festival Amsterdam 2020
Stars: ✭ 115 (+85.48%)
Mutual labels:  scikit-learn
ml webapp
Explore machine learning models. Leveraging scikit-learn's models and exposing their behaviour through API
Stars: ✭ 29 (-53.23%)
Mutual labels:  scikit-learn
hub
Public reusable components for Polyaxon
Stars: ✭ 8 (-87.1%)
Mutual labels:  scikit-learn
introduction-to-neural-networks
No description or website provided.
Stars: ✭ 23 (-62.9%)
Mutual labels:  scikit-learn
skrobot
skrobot is a Python module for designing, running and tracking Machine Learning experiments / tasks. It is built on top of scikit-learn framework.
Stars: ✭ 22 (-64.52%)
Mutual labels:  scikit-learn
website-fingerprinting
Deanonymizing Tor or VPN users with website fingerprinting and machine learning.
Stars: ✭ 59 (-4.84%)
Mutual labels:  scikit-learn
emoji-prediction
🤓🔮🔬 Emoji prediction from a text using machine learning
Stars: ✭ 41 (-33.87%)
Mutual labels:  scikit-learn

Need

Businesses and governments have a lot of data, and want to learn about structures and patterns in the data. This might include being able to make predictions extending from the data.

Use case examples

Time-series analysis

Companies, research organizations, governments, etc. often collect data/observations containing timestamps. It is useful in many cases to find trends or patterns in data over time, including the possibility to forecast future trends. These types of analyses fall under the umbrella of time series analysis.

Specific examples include:

Anomoly detection

We can search for values that stand out of the normal range, or variance, in medium or large data sets. These 'abnormal' data may point to problems or unique conditions, which need attention. Anomoly detection algorithms can help decision makers quickly find unusual segments of data.

Specific examples include:

  • fraud detection
  • server monitoring and alerting

Related resources

Situation

There are myriad tools to help people design Machine Learning workflows. However, there does not appear to be a visual programming environment with machine learning primitives.

Goal

Build a general purpose machine learning programming environment that is accessible by a REST API and web user interface.

Roadmap

  • Sketch out REST API using design-first API tool
    • seek feedback on API design from Orange3 developers, APInf team, ML community
  • Create wireframe, and possibly mockups, of User Interface
  • Research/choose framework(s) and libraries to commence development
    • REST framework
    • UI framework (if applicable)
    • Visualization framework (if applicable)
  • Scaffold initial REST API
  • Prototype initial User Interface using UI framework

Design

The design will most likely consist of a REST API and User Interface, developed as separate components.

API

A REST API would make it easy to use Machine Learning algorithms, since users would not have to install or maintain the ML software.

The API might be structured to mirror the Orange3 User Interface. Specifically, the Orange3 UI has the following structure:

  • Data - widgets for data handling (import, export, random data generation, processing etc)
  • Visualize - widgets to represent data in various forms (scatter plot, tree, histogram, etc)
  • Model - widgets to analyze data and pick predictive algorithm(s)
  • Evaluate - widgets to test the strength of chosen predictive algorithm(s)
  • Unsupervised - widgets for selecting unsupervised learning models (probably can be combined under the Model section of the API)

UI

The user interface for machine learning algorithms will make it easy for people with little programming experience to build machine learning services. The UI should include interface for interacting with data, sequencing ML tasks, and accessing output. It might also include basic visualizations to give users insight into data (histogram, etc)

UI Mockup

UI contains features such as:

  • Upload .csv file with historical data
  • Set the number of traits (hallmarks, set of data was based on predecting)
  • Area of output result

Existing tools

It is worth building on top of existing tools, to make our work more focused. This section outlines relevant tools for building the idea as easily as possible.

REST framework(s)

  • Connexion Swagger/OpenAPI First framework for Python on top of Flask with automatic endpoint validation & OAuth2 support
  • Eve is the Simple Way to REST that is based on Flask
  • Lepo – Contract-first REST APIs in Django

Machine Learning Framework(s)

  • scikit-learn: a popular and consistent API for many machine learning algorithms, written in Python

Machine Learning User Interface(s)

Orange3

Orange3: machine learning user interface with drag and drop modelling, visualization, data management and more.

  • based on scikit-learn
  • open issue for REST API design: biolab/orange3#1419
  • may need a web-based UI widget library

While Orange3 has a user interface, it is based on the Qt framework. This design decision means Orange3 is primarily relegated to Desktop usage. It may be desirable to build a web native user interface, so that no end-user download is necessary (aside from a web browser) to use the software .

Machine Learning REST Interface(s)

General UI widgets

To build out the overall user interface, we can select an existing JS UI framework, such as:

Graph/data flow widgets

Following the conventions in the Orange3 user interface, ML sequences can be modeled as data flows. To facilitate this type of modelling/interation, we can build on an existing JavaScript UI framework such as the following:

Flow-based programming environments

There are some programming environments that support a flow-based visual workflow. The following examples are open-source, and run in aweb browser:

  • NodeRed is a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.
  • WireCloud is an end-user centred web application mashup platform aimed at allowing end users without programming skills to easily create web applications and dashboards/cockpits

Visualization

For similar reasons as the user interface, the visualization framework should be based on web standards.

A discussion was opened in the Orange3 repository related to open-source, web-based data visualization frameworks.

Proposals for the data visualization framework include:

  • Altair - Altair is a declarative statistical visualization library for Python, based on the powerful Vega-Lite visualization grammar.

  • Bokeh - Bokeh is a Python interactive visualization library that targets modern web browsers for presentation.

  • Matplotlib D3 (mpld3) - The mpld3 project brings together Matplotlib, the popular Python-based graphing library, and D3js, the popular JavaScript library for creating interactive data visualizations for the web.

Resources

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].