使用 CreateML 中的序列记录设备运动

Using a sequence in CreateML to record device motion

所以我想训练一个 MLClassifier 来识别特定的设备运动。 所以我所做的是记录运动数据和我相应标记的非常记录的数据。当这并没有像我希望的那样奏效时,我开始意识到我必须记录 "motion" 本身,而不仅仅是瞬间。

所以我连续打包了 5 个数据集(字典),这是我的新训练功能。所以我想,但是在尝试训练我的新数据时,我在尝试创建分类器时看到了这个错误:

Value encountered in column 's' is of type 'dictionary' cannot be mapped to a categorical value. Categorical values must be integer, strings, or None.

现在我正在慢慢放弃...你们中的任何人有没有建议或知道为什么我不能使用序列(数组)作为特征?

...

顺便说一句,这是我 JSON:

的一些示例数据

[{"s":[{"rZ":-1.0,"p":0.2,"aY":-0.0,"rX":1.5,"y":0.1,"r":-1.3,"aZ":0.2,"rY":-2.8,"aX":0.6},{"rZ":-1.9,"p":0.2,"aY":0.0,"rX":2.0,"y":0.2,"r":-1.4,"aZ":0.0,"rY":-3.2,"aX":0.5},{"rZ":-1.8,"p":0.3,"aY":0.0,"rX":2.4,"y":0.2,"r":-1.5,"aZ":0.9,"rY":-4.8,"aX":0.5},{"rZ":-1.6,"p":0.3,"aY":0.0,"rX":2.5,"y":0.3,"r":-1.6,"aZ":0.9,"rY":-3.8,"aX":0.6},{"rZ":-1.8,"p":0.3,"aY":0.1,"rX":2.2,"y":0.3,"r":-1.7,"aZ":0.1,"rY":-3.0,"aX":0.6}],"v":0}]

我用来创建模型的代码:

do{
    let a = try MLDataTable(contentsOf: dummyJSONurl)
    let recognizer = try MLClassifier(trainingData: a, targetColumn: "v")
}catch let er{
    er
} 

您不能使用序列,因为 MLClassifier 不是可以处理序列的分类器。也许 Apple 会在未来的版本中添加此功能,但目前看来您必须使用功能更强大的工具。