Turi 机器学习简介
介绍
对于拥有原始数据并希望从中获取见解的组织来说,机器学习和数据科学正迅速成为必不可少的重要实践。
对于大量数据,为了尽快测试解决方案和假设,将最佳可行解决方案投入生产,效率很快变得至关重要。Turi 的构建正是考虑到这一点。Turi 背后的动机是创建强大的机器学习和数据科学工具,以便快速将想法转化为生产。
本指南假设您至少拥有中级Python 知识,并且具有机器学习和数据科学方面的一些背景。
假设您是一家新兴创业公司的机器学习开发人员,该公司希望在计算机视觉和零售领域采用高效的数据和 ML 模型。这家初创公司的 iOS ML 团队目前正在考虑一种可以快速进行原型设计并仍然高效地提供结果的工具。您的团队决定在图像分类和预测推荐方面尝试 Turi 。
设置 Turi
要设置和使用 Turi,您需要Turi Create(开源)或graphlab(学术)。两者都是用于构建高性能和大规模数据和机器学习应用程序的 Python 库。为了实现这种速度和效率,它们由 C++ 支持。两者都支持 Windows、Mac OS 和基于 Linux 的操作系统。
学术版- 仅针对将 Turi 用于学术目的的任何人。您必须注册免费的一年可续订订阅。您将收到产品密钥和下载说明。可以在此处找到使用 graphlab 的指南。
开源版本- 由 Apple 开发,适合非学术用户。
要安装开源版本,请在终端上运行命令pip install -U turicreate。
使用 Turi 进行图像分类
在此示例中,您将使用流行的 Kaggle花卉数据集。下载并将数据集复制到您的工作目录。导入 turi 库并为其指定一个别名以便于引用:import turicreate as tc 。由于花卉数据集位于同一目录中,因此使用load_image方法加载图像。
数据 = tc.image_analysis.load_images('flowers',with_path=True)。
接下来,您将创建标签列,它是每个子文件夹的名称。
import os
data['flower_name'] = data['path'].apply(lambda path: os.path.basename(os.path.dirname(path)))
然后将加载的数据保存到SFrame。
数据.保存(flowers.sframe)
将其视为 pandas 数据框的一个版本,由于它利用磁盘空间而不是内存,因此可以容纳更多的数据。
要执行图像分类,您需要加载数据、训练分类模型,最后保存并导出模型。
为分类器训练加载和分割数据
先前创建的flowers.sframe将被加载到 SFrame 对象中,以允许操作和分类。
加载数据:
数据 = tc.SFrame(“flowers.sframe”)
加载后,按您认为合适的比例将数据拆分为训练集和测试集。在此示例中,使用 0.75。
训练数据,测试数据 = 数据.随机分割(0.8)
分类和预测
使用 Turi Create,只需一行代码即可轻松创建模型。传递训练集和您想要预测的标签。在本例中,标签是flower_name。
模型 = tc.image_classifier.create(train_data,target='flower_name')
为了对测试集进行预测,需要调用预测方法。
预测 = 模型.预测(测试数据)
模型评估、保存和导出
至此,模型已完成。出于质量考虑,最好对模型进行评估并检查其准确性。
指标 = 模型.评估(测试数据)打印(指标['准确度'])
如果您希望查看所有其他评估指标,只需运行行print(metrics)。
保存模型:model.save('flowers.model')
以 coreML 格式导出模型:model.export_coreml('mymodels/flowers_coreml.mlmodel')
借助.mlmodel文件,您现在可以为 Apple 应用添加图像分类功能。此模型可用于 iPhone 应用,可实时或通过图片对花卉进行分类。
使用 Turi 的电影推荐系统
对于此示例,下载MovieLens 数据集并将其复制到您的工作目录中。
将数据加载到 SFrame 对象action = tc.SFrame.read_csv('./dataset/ml-20m/ratings.csv')并打印数据print(actions)。
分割训练和测试数据并创建推荐模型。
training_data, validation_data = tc.recommender.util.random_split_by_user(actions, 'userId', 'movieId')
model = tc.recommender.create(training_data, 'userId', 'movieId')
此时,所需要的只是recommend()方法。
results = model.recommend()
print(results)
结论
在当今数据时代,机器学习和数据科学技能不仅至关重要,而且非常有市场价值。机器学习工程师、数据科学家、首席数据/信息官、商业智能开发人员和数据分析师等职位都急需这些技能。
为了巩固使用 Turi 开发机器学习工具所学到的技能,下一步是学习如何在云端或设备上部署生产解决方案。
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~