如何在 iOS 中实现随机决策森林分类



我正在使用objective-c和Xcode制作一个iOS应用程序,它将收集和分析用户的一些数据。使用此数据,它将返回 3 个分类之一。我可以在 R 或 Python 中使用训练数据来创建能够执行此操作的随机森林模型。我想知道现在我可以在 iOS 应用程序中实现此模型,以便它可以返回分类。如果这是不可能的,那么也许可以在应用程序本身中合成模型并以某种方式存储它以再次与新数据一起使用,或者如果无法将模型存储在应用程序本身中,则每次都使用存储的训练数据来创建新模型。

谢谢你的帮助:-)

一种方法

是使用BigML,这是一种基于云的ML服务,还提供REST API以及Swift和ObjC SDK。

BigML 支持许多 ML 算法,包括决策树、集群、异常检测器,最重要的是,在您的情况下,融合。

ObjC 和 Swift SDK 提供的一个有趣的功能是对上述任何 ML 算法的本地预测。换句话说,您可以使用 Web UI 创建模型/集群/融合,然后,一旦您对结果感到满意,您就可以下载它,将其放入应用程序的捆绑包中,然后将其加载到 BigML 的 SDK 中以离线生成预测——即不使用远程服务。当然,SDK 还支持直接创建 ML 资源(即,无需通过 Web UI),前提是您的需求是从用户数据生成模型。

如何从 BigML 检索融合(森林树)并使用它来进行预测的示例如下:

ML4iOS* ml4iOS = [[ML4iOS alloc] initWithUsername:_BML_USERNAME
       key:_BML_APIKEY
       developmentMode:YES]];
NSDictionary* inputData = @{
    @"sepal width": @4.1,
    @"petal length": @0.96,
    @"petal width": @2.52};
NSInteger httpStatusCode = 0;
NSDictionary* ensemble = [self getEnsembleWithIdSync:ensembleId
    statusCode:&httpStatusCode];
NSDictionary* prediction =
    [ML4iOSLocalPredictions localPredictionWithJSONEnsembleSync:ensemble
       arguments:inputData
       options:@{ @"byName" : @(YES) }
       ml4ios:ml4iOS];

完全披露:我目前在BigML工作。

最新更新