在这篇博文中,我们将使用苹果的机器学习框架createml来解决一个回归问题。这基本上取决于需要在哪个级别工作。对于经验丰富的iOS开发者,苹果提供了基于任务的方法,让他们的应用程序具有机器学习的味道。在我看来,基于任务的级别是抽象级别中的最高级别。这意味着在iOS应用程序中执行常规的机器学习任务并不需要成为机器学习方面的专家。
苹果提供了两种最先进的方法——Create ML和Turi Create。利用迁移学习方法,我们可以在一个小的数据集上建立一个精确的定制模型。这两个模型的基础模型都是在大量数据上训练出来的。对于createml,一切都是通过使用Swift语言在Xcode中进行的。Turi Create使用Python,云服务器好吗,我们必须利用Jupyter笔记本等环境来训练模型,然后转换为coreml格式在应用程序中使用。还要注意的是,Create ML需要MacOS,因为Turi Create是跨平台的。
Create ML基本上是Turi Create的一个子集。对于本教程,我们将仅限于创建ML。所有操作都将使用Swift语言完成。
在本博客中,我们希望了解混凝土的抗压强度,这是混凝土质量的良好指标之一。抗压强度单位为兆帕。另一方面,云服务器哪里好,我还要指出,人们不应混淆水泥和混凝土。水泥是粉末状的,混凝土是水泥、粗骨料和水的液体状混合物。这是一个很好的用例,因为我们知道混凝土是土木工程中的重要材料,也是广泛使用的建筑材料之一。
您将需要安装Xcode的MacOS。
我们将使用UC Irvine机器学习库-UCI的混凝土抗压强度数据集
数据集有1030个行和9列。最后一列"csMPa"是我们要预测的目标变量。
数据集
首先从上述UCI存储库下载csv格式的数据,并将其保存在文件夹中。
打开Xcode,然后进入文件->新建->游乐场
创建游乐场文件
选择Blank和MacOS,然后单击接下来
选择Blank和MacOS
给游乐场文件起个名字
给游乐场文件起个名字
导入这两个框架
阅读你已经下载的csv文件。给出适当的路径。
Create ML有一个特殊的数据结构,称为MLDataTable,我们用来表示表格数据。对于熟悉Python熊猫的人来说,可以用同样的方式想到MLDataTable。但是,MLDataTable没有Pandas灵活。
现在运行代码,它应该在控制台中显示数据集中的行和列的数量
将数据拆分为train和test
让我们现在训练模型。当我们创建MLRegressor时,它检查我们的数据并自动选择一个特定的回归器。支持的回归函数有线性、决策树、增强树和随机林。
运行到目前为止的代码,您应该在控制台
控制台输出
您可以观察到随着迭代次数的增加,均方根误差和最大误差减小。
您还可以按如下方式打印度量:
现在让我们将训练好的模型保存到您想要的任何本地目录中。确保你给出了适当的路径。
现在你会看到一个模型,信息大数据,在文件夹中创建的路径你给以上
模型保存到本地目录
完整的代码到目前为止在游乐场文件应如下所示
现在让我们创建一个Xcode项目,并在其中添加上述培训模型。
点击文件->新建->项目->单视图应用程序->下一步->命名
现在将您训练过的ML模型添加到新创建的Xcode项目中。
要这样做,请单击文件->添加文件
添加.mlmodel文件
在添加模型时确保它与下面的屏幕截图匹配。
复制.mlmodel
现在单击.mlmodel文件,然后单击显示的图标。
.mlmodel
这将进入下一页,云服务器一年多少钱,您可以看到自动生成的Swift文件与我们的培训模型进行交互
自动生成的.mlmodel的Swift文件
现在转到您的视图控制器.swift并用以下代码替换现有代码。压缩强度是我给我的ml模型起的名字。根据你给它取什么名字,它对你来说是不同的
当你运行代码时,你会得到如下的抗压强度
如果我们把它与地面真相相比较,微信返利机器人,我们会发现我们非常接近。我们在非常有限的数据上训练模型,这可能是一个关键的改进范围。机器学习界的一句俗话是,你拥有的训练数据越多,你得到的输出预测就越好。
这里最大的优势是,训练过的模型驻留在你的应用程序中,不需要依赖互联网来进行推理。您可以继续并围绕这个构建一个UI。