Giter Club home page Giter Club logo

machinest's Introduction

Machinest

The application serves as a demonstration of performing Machine Learning completely inside a web browser. With developing the application, there has been a primary focus on extensibility.

Screenshots

Feature Selection Results
image image

Installation

The application has been using the frontend framework VueJS. For general deployment guidelines, please refer to VueJS's deployment guidelines

Requirements

For cloning this repository, it is advised to have git installed on your system. Deploying this application for production purposes requires having docker installed. For development purposes it is required to have node and npm installed, for building or serving the application locally. Using the application requires only a web browser. However, tests have only been performed on the latest versions of the most popular web browsers (Firefox, Google Chrome, ...).

The first step for both purposes is placing this code repository in a desired file location and changing to this directory. If the code repository is hosted on a git repository, this step would include cloning this repository.

# git clone https://[git host]/machinest
cd machinest

Production

First, build the docker image using the command below

docker build -t machinest ./

Next, run the built image with the following command. Note that this command will run the server on port 80.

docker run -p 80:8080 machinest

Development

Install dependencies

npm install

Launch VueJS's built-in development server

npm run serve

Design

UML representation of training relevant classes This UML diagram is bound closely to the original types and classes used in the implementation in TypeScript. Not all classes, interfaces and types have been included due to its large extent. It is important to note that a concrete ModelTrainer should at least include the properties and methods described in the ModelTrainer interface. A ModelTrainer can communicate training results using its abstract set_results(...) function.

image

Extending functionality

One could relatively easily extend the functionality by for example adding a ModelTrainer. The code for the model trainers lives under the src/model_trainers directory in their corresponding category directory. All active trainers are loaded and defined in the src/model_trainers/index.ts file.

When creating a new model trainer, create a new typescript file in under below src/model_trainers in the corresponding category directory. This file should export a default class extending the one of the following respective abstract classes:

  • ModelTrainer
    • SupervisedModelTrainer
    • UnsupervisedModelTrainer Currently, logic has only been implemented for supervised model trainers. However, logic for other model trainer categories could be implemented in the future.

The outline of the new model trainer file should look something like this:

import { SupervisedModelTrainer } from '@/composables/useTrainer/modelTrainer.ts'
export default class extends SupervisedModelTrainer { /* ... */ }

Make sure that this class implements all mandatory properties of ModelTrainer. For a basic example of what a concrete training method could look like, refer to src/model_trainers/supervised/linear_regression.ts.

When the desired logic has been implemented, make sure the training method is included inside src/model_trainers/index.ts.

Notes

Not implemented

Some possibly desirable features are currently not completely implemented:

  • It is not possible to export or import a (pre-)trained model.
  • The chosen features are not checked against the conditions specified in a ModelTrainer,
  • It is not possible to split a dataset in a training/testing set for validation,
  • Calculating a score is not generally implemented, but can be manually implemented inside a ModelTrainer, using the set_result() function.

Some of the non implemented features are visible throughout the application. When hovering these elements, a message will appear indicating its functionality is not implemented.

gh-pages branch created as described on: https://gist.github.com/cobyism/4730490

machinest's People

Contributors

eensander avatar dylangiesberts avatar dependabot[bot] avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.