HRLClassifier 3.0.2

HRLClassifier 3.0.2

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Apr 2018
SPMSupports SPM

Maintained by Enrique de la Torre.



  • By
  • Enrique de la Torre

HRLClassifier

CI Status codecov.io Version Docs

Use Machine Learning to predict if a person is working out based of his/her heart rate.

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Installation

HRLClassifier is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "HRLClassifier"

Usage

import HRLClassifier

let filename = "/path/to/archive"

let baseDate = Date(timeIntervalSinceReferenceDate: 0)
let dayInterval = 24 * 60 * 60
let maxBPM = 200

// Fill data frame
var auxDataFrame = NSKeyedUnarchiver.unarchiveObject(withFile: filename) as? DataFrame
if auxDataFrame == nil {
    auxDataFrame = DataFrame()

    for i in 0..<7 {
        for _ in 0..<80 {
            let timeInterval = i * dayInterval + Int(arc4random_uniform(UInt32(dayInterval)))

            let date = baseDate.addingTimeInterval(TimeInterval(timeInterval))
            let bpm = Float(arc4random_uniform(UInt32(maxBPM)))
            let record = Record(date: date, bpm: bpm)

            let isWorkingOut = arc4random_uniform(2) == 1 ? true : false

            auxDataFrame!.append(record: record, isWorkingOut: isWorkingOut)
        }
    }
}

let dataFrame = auxDataFrame!

// Make classifier
guard let classifier = try? ClassifierFactory().makeClassifier(dataFrame: dataFrame) else {
    print("Given that all records are created in a random fashion, this is expected")

    return
}

// Archive data frame
NSKeyedArchiver.archiveRootObject(dataFrame, toFile: filename)

// Predict
let date = baseDate.addingTimeInterval(TimeInterval(7 * dayInterval))
let bpm = Float(arc4random_uniform(UInt32(maxBPM)))
let record = Record(date: date, bpm: bpm)

let prediction = classifier.predictedWorkingOut(for: record)

print("At \(date) with \(bpm) bpm, is user working out? \(prediction)")

License

HRLClassifier is available under the MIT license. See the LICENSE file for more info.