HRLClassifier
使用机器学习预测一个人是否在工作(锻炼)基于他们的心率。
示例
要运行示例项目,请克隆库,并在 Example 目录中首先运行 pod install
。
安装
HRLClassifier 通过 CocoaPods 提供。要安装它,只需在 Podfile 中添加以下行:
pod "HRLClassifier"
用法
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)")
许可
HRLClassifier可在MIT许可下使用。更多信息请见LICENSE文件。