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

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

作为一名合格的“吃货”,看到“米、海苔、三文鱼”就想到日本寿司,看到“鸡蛋、火腿、面包、沙拉酱”就想到三明治……通过食材预测菜系,用 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 的一大优势是来自硅谷的独家特色实战项目。仅靠看视频或者啃厚厚的教材很难零基础入门人工智能领域。学习者也很难在动辄几十 G+ 的免费视频教程中,高效快速地筛选出真正有用的东西。优达学城(Udacity)的项目难度深入浅出,能够让学习者快速将所学运用到实际生活,也能够直观的看到学习成果。下面的部分项目成果示例来自「机器学习工程师」和「深度学习」纳米学位的正式课程:

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

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

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

项目示例 2 猫狗图像识别

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

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


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

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

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

实战项目示例 3 风格迁移

深度学习模型可以用来完成「风格迁移」项目,你可以按照著名的画作重新创建风格一样的图片!神经网络会学习这些画作采用的技巧,并学会如何自己应用这些绘画技巧。

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

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

Udacity 还特别开启【7 天超值试学班】,为保证辅导质量,试学名额有限,今天开始抢完为止。本期试学班能够提前体验的项目有:

猜猜这道菜来自哪里” 使用分类模型通过原料的不同组合预测所属的世界菜系。

来自「机器学习工程师」7天试学班

“你拍我猜” 利用神经网络来分类照片中是狗狗,是猫猫,还是人。

来自「深度学习」7天试学班

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

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

长按识别二维码

了解试学班

Udacity 【机器学习工程师】与【深度学习】纳米学位试学班开放限量体验席位,报满即止。关注 Udacity 官方服务号,即可自动获得完整课程大纲,以及 ¥299 限量试学入口,先抢先得。

点击阅读原文,添加学习规划师,获得「选课测试」一份,了解适合自己的课程

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

  1. sklearn库安装_没有依赖库也能跑机器学习模型!推荐一个强大工具m2cgen

    晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI m2cgen(Model 2 Code Generator)是一个轻量级代码生成器,它可以将训练好的机器学习模型转换成无需依赖库的本地代码. ...

  2. python 加载动图_在浏览器中使用TensorFlow.js和Python构建机器学习模型(附代码)...

    大数据文摘授权转载自数据派THU 作者:MOHD SANAD ZAKI RIZVI 本文主要介绍了: TensorFlow.js (deeplearn.js)使我们能够在浏览器中构建机器学习和深度学习 ...

  3. 你的机器学习模型为什么会出错?奉上四大原因解析及五条改进措施

    对开发者来说,目前有一系列的机器学习模型可供选择.雷锋网(公众号:雷锋网)了解,可以用线性回归模型预测具体的数值,用逻辑回归模型对不同的运算结果进行归类,以及用神经网络模型处理非线性的问题等等. 不论 ...

  4. 机器学习模型的超参数优化 | 原力计划

    作者 | deephub 责编 | 王晓曼 出品 | CSDN博客 头图 | CSDN付费下载自东方IC 引言 模型优化是机器学习算法实现中最困难的挑战之一.机器学习和深度学习理论的所有分支都致力于模 ...

  5. 如何更新你的机器学习模型?手把手带你设计一个可持续的预测模型!

    作者 | CloudFactory 译者 | 天道酬勤 责编 | 徐威龙 出品 | AI科技大本营(ID:rgznai100) 高效的机器学习模型需要高质量的数据.训练你的机器学习模型并不是过程中的单 ...

  6. Google重磅发布开源库TFQ,快速建立量子机器学习模型

    整理 | 弯月 编辑 | 郭芮 出品 | AI科技大本营(ID:rgznai100) 近日,Google 与滑铁卢大学.大众汽车等联合发布 TensorFlow Quantum(TFQ),一个可快速建 ...

  7. 机器学习模型五花八门不知道怎么选?这份指南告诉你

    作者 | LAVANYA 译者 | 陆离 编辑 | 夕颜 出品 | AI科技大本营(ID: rgznai100) [导读]在本文中,我们将探讨不同的机器学习模型,以及每个模型合理的使用场景. 一般来说 ...

  8. 手把手教你使用Flask轻松部署机器学习模型(附代码链接) | CSDN博文精选

    作者 | Abhinav Sagar 翻译 | 申利彬 校对 | 吴金笛 来源 | 数据派THU(ID:DatapiTHU) 本文旨在让您把训练好的机器学习模型通过Flask API 投入到生产环境  ...

  9. 分析Booking的150种机器学习模型,我总结了六条成功经验

    (图片付费下载自视觉中国) 作者 | Adrian Colyer 译者 | Monanfei 出品 | AI科技大本营(ID:rgznai100) 本文是一篇有趣的论文(150 successful ...

最新文章

  1. WCF中Service Configuration Editor的使用方法(转)
  2. Net平台下的分布式缓存设计
  3. flash时间轴控制命令
  4. 爬虫-大招-自动化测试工具上演
  5. 严重的 iOS 漏洞可导致拒绝服务或任意代码执行,苹果已修复
  6. Qt-Qt Creator的下载、安装与配置(Windows)
  7. System level Programming study(1)
  8. NSIS中文乱码问题
  9. 离散数学 06.04 子群及其陪集
  10. SpringBoot RabbitMQ 异步激活_注册邮箱
  11. 仿ios相机apk_iCamera摄像头下载|iCamera仿苹果相机安卓版v4.0下载 _当游网
  12. 云更新网吧系统服务器,云更新网吧无盘
  13. [Jzoj]3457. 沙耶的玩偶
  14. 处理器后面的字母含义_笔记本处理器型号认识
  15. Part 2 如何进行埋点(内附埋点文档模板)
  16. 关于ucore实验一的资料查找
  17. Dango 之认证组件Auth模块
  18. 筱筱看博客(git 冲突解决)
  19. 超火购车平台易车到底怎么样,为您解答
  20. 软件工程心得之——产品经理与项目经理的区别

热门文章

  1. python安装出错0xc00006b_Python安装时我遇到的一些问题
  2. 搜索推荐系统根据用户搜索频率(热搜)排序
  3. 简单的html渲染模板引擎
  4. 数据库查找出list数据,进行处理
  5. C/C++隐式类型转换导致的若干问题
  6. mysql 事务 视图 存储过程 触发器
  7. js中的错误missing ( before function parameter
  8. r语言 整理、处理数据步骤_R语言之数据处理(一)
  9. 代码讲解java_主要代码的讲解
  10. matlab三维feather,matlab高维图形,别地方抄来的