微信号:TheAlgorithm

介绍:算法与数据结构知识、资源分享

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

2018-08-06 09:08 算法与数据结构

吃饭的时候会见到很多奇怪的菜名,很多店常常会取一些奇怪的名字来吸引眼球,吃饭的时候基本靠猜,或者……通过食材预估一下彩色和口味是否符合自己的要求。其实通过食材预测菜系,用 python 也可以做到!

“丧茶”菜单(图片来自网络)


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


1. 加载并分析数据

2. 建立模型

3. 模型预测


加载并分析数据

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


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


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


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

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



建立模型

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


1、单词清洗

2、特征提取(使用TF_IDF)

3、数据分割与重排


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


4、训练模型

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


模型预测

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


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


至于能不能分清川菜和湘菜……可以自己来试一试!这个项目其实来自优达学城 Udacity 的「机器学习工程师」纳米学位。


(该项目现提供超值限量试学班,详情见文末)


优达学城 Udacity 由 Google 无人车之父 Sebastion Thrun 创立,与 Google、Facebook、亚马逊等名企联合打造了一系列前沿技术课程,旨在让每个人都能用远低于线下教育的成本学习硅谷前沿技术,最终成为有能力通过技术改变世界的抢手人才。2017 年 8 月,腾讯宣布将 Udacity 纳米学位项目作为内部员工学习内容。


与国内其他平台相比,Udacity 的一大优势是来自硅谷的独家特色实战项目。项目难度深入浅出,能够让学习者快速将所学运用到实际生活,并直观看到学习成果。下面的部分项目成果示例来自「机器学习工程师」和「深度学习」纳米学位的正式课程:


项目示例 1 训练机器人走迷宫

通过实现 Q-learning 算法解决走迷宫问题。同时你有机会将你的算法应用在股市中,让机器学习出高收益策略。

(来自「机器学习」纳米学位)

项目示例 2 猫狗图像识别

使用深度学习方法识别图片中是猫还是狗。

(来自「机器学习」纳米学位毕业项目)


实战项目示例 3 训练四轴飞行器学会飞行

设计一个深度强化学习系统,构建惩罚函数、强化学习模型、深度学习隐藏层帮助四轴飞行器了解每一个动作的优劣。你的四轴飞行器将从一系列动作状态中,选择最优的策略来平稳起飞和降落。

(来自「深度学习」纳米学位项目)


实战项目示例 3 风格迁移

深度学习模型可以用来完成「风格迁移」项目。神经网络会学习这些画作采用的技巧,并学会如何自己应用这些绘画技巧。

(来自「深度学习」练习项目)

除此之外,你将跟随来自硅谷的行业专家系统学习,深入掌握人工智能领域知识。实战项目经验均可写入简历,为求职面试加分


Udacity 还特别开启【7 天超值试学班】,为保证辅导质量,试学名额有限,今天开始抢完为止。本期试学班你就能够提前体验:「机器学习工程师」项目「猜猜这道菜来自哪里」和「深度学习」项目「你拍我猜”」


文末关注 Udacity 官方服务号,即可自动获得两门课程完整大纲,还能获得限量 ¥299 超值试学入口。


如果你也在寻求转行机会,或渴望突破薪资天花板,抓住人工智能人才红利,但又不确定自己是否真的适合、能不能学完,建议加入 7 天试学,让专业导师手把手带你完成项目!

长按识别二维码

了解试学班


关注 Udacity 官方服务号,即可自动获得完整课程大纲,更多干货,以及 ¥299 限量试学入口,先抢先得。


点击 阅读原文 ,添加学习规划师,获得「选课指南」一份,了解适合自己的课程
 
算法与数据结构 更多文章 你需要学好知识图谱----用AI技术连接世界 2018全球计算机与工程学科排名:清华第7,中国9个学科世界第一! 转行人工智能,哈佛博士后有话说 漫画:什么是鸡尾酒排序? 从零开始,搭建一个完善的AI应用
猜您喜欢 HBase作为在线存储解决方案的稳定性保障探讨 理解究竟什么是RESTful架构? 程序员被聘用的13个开发技能 Huawei LiteOS Workshop 北京站,开源生态使能 NB-IoT 特斯拉自动驾驶系统秘密,来自特斯拉AI总监爆料