如何在iOS

时间:2016-01-19 08:16:37

标签: ios objective-c xcode random-forest data-analysis

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

感谢您的帮助: - )

1 个答案:

答案 0 :(得分:0)

一种方法是使用BigML,这是一种基于云的ML服务,还提供REST APISwiftObjC SDKs

BigML为许多ML算法提供支持,包括决策树,集群,异常检测器,以及最重要的是ensembles

ObjC和Swift SDK提供的一个有趣特性是对任何上述ML算法的本地预测。换句话说,您可以使用Web UI创建模型/集群/集合,然后,一旦您对结果感到满意,就可以下载它,将其放入应用程序的包中并将其加载到BigML&#中39;用于离线生成预测的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工作。