【问题标题】:How to implement Random Decision Forest classification in iOS如何在 iOS 中实现随机决策森林分类
【发布时间】:2016-01-19 08:16:37
【问题描述】:

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

感谢您的帮助:-)

【问题讨论】:

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


    【解决方案1】:

    一种方法是使用BigML,这是一种基于云的机器学习服务,还提供REST API 以及SwiftObjC SDKs

    BigML 为许多 ML 算法提供支持,包括决策树、集群、异常检测器,在您的案例中最重要的是 ensembles

    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 工作。

    【讨论】:

    • 感谢您的回复!我研究过 BigML,虽然它看起来很有希望,但我无法找到关于如何在 IOS 中实现它的大量文档。您的网站上引用了 Github 项目“BigML4ios”。但是,该项目本身并没有提供太多关于使用的解释广告说明。如果您能进一步指导我,我将不胜感激,谢谢
    • 您介意用更具体的术语更好地解释您尝试过什么以及您正在尝试做什么吗?如果我们继续在 S.O. 上进行讨论,这可能也会使其他人受益,所以我认为在这里做这件事可能是值得的;否则,请随时通过 bigml dot com 的 desimone 与我联系。无论如何,我在答案中添加了一个简短的示例。
    猜你喜欢
    • 2017-03-15
    • 2012-12-10
    • 2018-07-29
    • 2017-08-05
    • 2017-12-11
    • 2017-05-03
    • 2021-03-24
    • 2019-09-05
    • 2013-09-22
    相关资源
    最近更新 更多