Stack Overflow 社区,
我最近将 Xcode 和 Core ML 从版本 13.0.1 更新到 14.1.2,并且在 Core ML 分类器中面临 MLOneHotEncoder 的问题。在先前版本中运行良好的相同代码和数据现在在预测期间会抛出错误。错误信息是:
MLOneHotEncoder: unknown category String [TERM] expected one of
这似乎表明 MLOneHotEncoder 没有像以前的版本那样处理未知字符串。以下是我的情况的简要概述:
我已检查数据一致性并确认数据集与之前版本使用的数据集相同。
这是我的问题:
如果您能提供有关如何解决此问题的任何见解或建议,我将不胜感激。如果需要更多信息,我很乐意提供。
感谢您的协助!
我在苹果开发者论坛上收到了回复:
具有经过训练的单热编码器的模型的预期行为 CreateML 对未知类别的操作是抛出错误。这里有一个 CoreML 中 OneHotEncoder 的参考指南。在 CoreML 中,您可以 将枚举 HandleUnknown 设置为 ErrorOnUnknown (预期 行为)或忽略未知。这两种方法都有争议,并且 这很大程度上取决于您拥有的数据和您正在尝试的模型 培训。先前操作系统上的 CreateML 版本忽略了未知 值,因此使用相同的数据在较新的操作系统上训练新模型 可能会产生您所看到的结果。