机器学习模型,能分清川菜和湘菜吗?

简介: 一个地区的文化和当地的特色食物总是分不开关系,可以说小到村庄,大到国家,每个地方都有自己的“味道”。

一个地区的文化和当地的特色食物总是分不开关系,可以说小到村庄,大到国家,每个地方都有自己的“味道”。

如果你在加利福尼亚州北部,那么你将品尝到各种蔬菜,有深紫色的羽衣甘蓝,还有明亮的粉红色和黄色的甜菜。在韩国,诱人的红色泡菜将会迎接你,而大海的气味会吸引你注意附近蠕动的鱿鱼。印度的市场也许是最丰富多彩的,明亮的色调和几十种香料的香气:姜黄,八角茴香……

作为一名合格的“吃货”,看到“米、海苔、三文鱼”就想到日本寿司,看到“鸡蛋、火腿、面包、沙拉酱”就想到三明治……通过食材预测菜系,用 python 就可以做到!

可以用机器学习的方法搭建、训练和测试模型,并通过评估矩阵来选择最优模型,实现原材料与菜系的映射。为了实现预期的功能,我们需要进行以下三个步骤。

  1. 加载并分析数据
  2. 建立模型
  3. 模型预测

加载并分析数据
以意大利菜系为例,我们准备好以下格式的样例数据。其中“id”代表不同的菜肴种类,“cuisine”则代表菜系名称。

image

拿到数据后,首先对数据进行提取,其中配方节点如下。其中包含了食谱 id,菜肴类型和成分列表的训练集。

image

之后将 features 与 target 分别赋值到 train_ingredients 和 train_targets。通过统计分析等操作,可以计算出使用最频繁的前 10 种原料,并将原料名和出现次数赋值到 sum_ingredients 字典中。通过样例数据,还能计算出意大利菜系中使用最频繁的前 10 种原料,并将原料名和出现次数赋值到 italian_ingredients 字典中。

得到的结果可以通过 matplotlib 进行可视化。通过数据分析,可以得出许多有意思的信息,比如,巴西菜用的最多的食材有洋葱、橄榄油、柠檬等。而在中国,柠檬显然不是家常饭的常客。我们用的最多的食材有酱、芝麻油、玉米淀粉等。小编猜测,老干妈一定对中国排名第一的食材有巨大贡献!

image

日本比较有特色的清酒和酱油也都榜上有名。

image

而在寒冷的俄罗斯,黄油则成为餐桌上必不可少的食材,成为战斗民族每天所需能量的重要来源。英国更不必多说,如果你热爱黄油、奶油、土豆和牛奶,去英国就是了!

建立模型
建立模型的过程可能稍微有点复杂,主要分以下四步进行:

1、单词清洗
2、特征提取(使用TF_IDF)
3、数据分割与重排

调用 train_test_split 函数将训练集划分为新的训练集和验证集。

4、训练模型
在训练模型的过程中,需要尝试不同的参数,挑选出泛化力最好的模型。通过训练模型,可以计算得出验证集上的得分。得分越高,说明分类准确度(正确分类的菜肴百分比)越高。这样,一个优秀的模型就大功告成啦!

模型预测
在测试文件 test.json 中,配方的格式与 train.json 相同,只删除了美食类型,因为它是我们要预测的目标变量。

总的来说,要实现通过食材预测菜系的过程并不复杂,但是如何完善代码、优化模型,使分类体系和匹配程度更高,才是我们要完成的关键目标。如果不能做到数据的有效清洗和分类,就会出现很多法国菜被误分为意大利菜这样的情况。

原文发布时间为:2018-08-04
本文作者:Udacity
本文来自云栖社区合作伙伴“PaperWeekly”,了解相关信息可以关注“PaperWeekly”。

相关文章
|
16天前
|
机器学习/深度学习 数据采集 人工智能
构建高效机器学习模型的五大技巧
【4月更文挑战第7天】 在数据科学迅猛发展的今天,机器学习已成为解决复杂问题的重要工具。然而,构建一个既精确又高效的机器学习模型并非易事。本文将分享五种提升机器学习模型性能的有效技巧,包括数据预处理、特征工程、模型选择、超参数调优以及交叉验证。这些方法不仅能帮助初学者快速提高模型准确度,也为经验丰富的数据科学家提供了进一步提升模型性能的思路。
|
29天前
|
机器学习/深度学习 数据采集 监控
大模型开发:描述一个典型的机器学习项目流程。
机器学习项目涉及问题定义、数据收集、预处理、特征工程、模型选择、训练、评估、优化、部署和监控。每个阶段都是确保模型有效可靠的关键,需要细致操作。
18 0
|
20天前
|
机器学习/深度学习 数据采集 算法
构建高效机器学习模型的最佳实践
【4月更文挑战第3天】在数据驱动的时代,构建高效的机器学习模型已成为解决复杂问题的关键。本文将探讨一系列实用的技术策略,旨在提高模型的性能和泛化能力。我们将从数据预处理、特征工程、模型选择、超参数调优到集成学习等方面进行详细讨论,并通过实例分析展示如何在实践中应用这些策略。
16 1
|
6天前
|
机器学习/深度学习 存储 算法
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
PYTHON集成机器学习:用ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
26 7
|
6天前
|
机器学习/深度学习 算法 数据处理
构建自定义机器学习模型:Scikit-learn的高级应用
【4月更文挑战第17天】本文探讨了如何利用Scikit-learn构建自定义机器学习模型,包括创建自定义估计器、使用管道集成数据处理和模型、深化特征工程以及调优与评估模型。通过继承`BaseEstimator`和相关Mixin类,用户可实现自定义算法。管道允许串联多个步骤,而特征工程涉及多项式特征和自定义变换。模型调优可借助交叉验证和参数搜索工具。掌握这些高级技巧能提升机器学习项目的效果和效率。
|
7天前
|
机器学习/深度学习 数据采集 算法
构建高效机器学习模型:从特征工程到模型调优
【4月更文挑战第16天】 在数据驱动的时代,机器学习已成为解决复杂问题的关键工具。本文旨在分享一套实用的技术流程,帮助读者构建高效的机器学习模型。我们将重点讨论特征工程的重要性、选择合适算法的策略,以及通过交叉验证和网格搜索进行模型调优的方法。文章的目标是为初学者提供一个清晰的指南,同时为有经验的实践者提供一些高级技巧。
|
7天前
|
机器学习/深度学习 人工智能 分布式计算
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
13 0
|
13天前
|
机器学习/深度学习 JavaScript 前端开发
机器学习模型部署:使用Python和Vue搭建用户友好的预测界面
【4月更文挑战第10天】本文介绍了如何使用Python和Vue.js构建机器学习模型预测界面。Python作为机器学习的首选语言,结合Vue.js的前端框架,能有效部署模型并提供直观的预测服务。步骤包括:1) 使用Python训练模型并保存;2) 创建Python后端应用提供API接口;3) 利用Vue CLI构建前端项目;4) 设计Vue组件实现用户界面;5) 前后端交互通过HTTP请求;6) 优化用户体验;7) 全面测试并部署。这种技术组合为机器学习模型的实用化提供了高效解决方案,未来有望更加智能和个性化。
|
17天前
|
机器学习/深度学习 数据采集 算法
构建高效机器学习模型:从数据预处理到模型优化
【4月更文挑战第6天】本文聚焦于机器学习模型的开发流程,旨在提供一套系统的方法论以构建出更高效的模型。我们将深入探讨数据预处理的重要性,特征工程的策略,以及如何通过交叉验证和超参数调优来提升模型性能。文章不仅涉及理论分析,还包括了实际案例的代码实现,为读者呈现一个从数据处理到模型部署的完整蓝图。
14 0
|
18天前
|
机器学习/深度学习 数据采集 算法
构建高效机器学习模型:从数据预处理到模型优化
【4月更文挑战第5天】 在机器学习领域,构建一个高效的模型并非易事。它涉及多个阶段,包括数据预处理、特征工程、模型选择、训练以及最终的评估和优化。本文深入探讨了如何通过精确的数据预处理技巧和细致的特征工程来提升模型性能,同时介绍了几种常见的模型优化策略。我们的目标是为读者提供一套实用的指导方案,帮助他们在面对复杂数据集时能够有效地构建和调整机器学习模型。

热门文章

最新文章