Skip to content
This repository has been archived by the owner on May 30, 2019. It is now read-only.
Hovig Ohannessian edited this page Apr 19, 2018 · 6 revisions

Short Name

MyPulse - Web Based IoT Watson Machine Learning Mobile Health Application

Short Description

Deploy and consume a health app with Watson IoT Platform, Watson Machine Learning, Node.js and Jupyter notebook, Spark all running as services on IBM Cloud and on IBM Studios.

Offering Type

IoT Machine Learning Cognitive

Introduction

This Code provides an app designed to check heart rates and evaluates these rates using Watson Machine Learning on and other studies to get the most accurate values in reading pulses. In brief, these are the main setup covered in this pattern:

  • Create a classification Model using a dataset which contains the pulse data and its related derived values. Deploy the Model and expose it as WML endpoints

  • Register the Mobile device with Watson IoT Platform

  • Using the mobile app, generate the LIVE pulse data. This data is published to IoT platform and then stored in a NoSQL database

  • Streaming the pulse data from the app in real-time (or the database) and using WML validate it with the deployed model

Author

By Hovig Ohannessian

Code

Demo

Video

Overview

Working and training machine learning is currently highly complex and computationally intensive. A typical user of machine learning is needs an overall understanding of the underlying hardware and software infrastructure, including configuring Spark, installing machine learning libraries within a framework hosting these libraries, and managing the jobs during execution to handle failures and recovery.

This is where the opportunity of machine learning as a service comes in along with IBM Studios to provide hand-in-hand an easy configuration. In this code pattern we are going to show how to deploy health app, which is web based, uses gyroscope for pulse metrics and Watson Machine Learning on IBM Cloud and on IBM Studios. MyPulse, the app reads the live data generated for about less than a minute and transmits it in real-time to perform predictions on heart-rate and seconds coordinates, to return back the beats per minute (bpm) as scoring values. The app provides other gyroscopic metrics and stores all these data in Cloudant database and displays them on IoT platform too, all in real-time.

Flow

  1. MyPulse Node.js gets deployed to a IBM Cloud. The Cloudant database is part of the Node.js service package.
  2. Once deployed, the Watson Machine Learning service needs to be created and use its credentials in the Node.js app
  3. Watson IoT Platform instance needs to be created and binded to the Node.js app in order to create devices and controls the data events
  4. The data scientist or the developer makes the existing model training data in Github. The Jupyter notebook shows on how the data is read by Pixiedust library and then these data are pushed to the pipeline. Spark instance is needed to be set up and associated to the model.
  5. Finally, the app will create the database in Cloudant to store all generated data. The client application will also receive the predicted pulse values from the trained model and display them on the app's front page all in real-time.

Included components

Featured technologies

  • [Machine Learning]
  • [Spark]
  • [Node.js Application]
  • [Data in Database]
  • [Visualization]
  • [Gyroscope]

Blog

Almost multiple in a day, most of the people uses devices to check and track their health performances. MyPulse pattern targets the most used device in the world and that is the mobile phone. Unlike other designs, MyPulse applies a design based on accelerometer metrics and studies that filter down the noise to keep out errors.

MyPulse takes these metrics and makes a prediction on what the pulse rate is, translated as beat per minute, through Watson Machine Learning.

A generated number will associated to the mobile device and it will become registered with Watson IoT Platform and the gyroscope metrics will be displayed in real-time on an ongoing graph.

Not to forget to mention that this pattern shows that all the work done above are stored in a Cloudant database.

Links

Related links:

  1. Watson IoT Platform

  2. IBM Watson

  3. Data science and machine learning