当大数据进入厨房:让大数据教你做菜!

发布时间:2016-12-27 10:57:24来源:本站原创

        笔者爱好数据挖掘和烹饪,当数据挖掘跟厨房这两个爱好相遇了,会有什么有趣的结果吗?

        于是,笔者做了这样一个事情:从美食中国的家常菜目录下面,写了个简单的爬虫,抓取了一批菜谱数据下来,进行简单的数据分析(在此对美食中国表示衷心感谢。选择美食中国的原因是它的数据比较规范)。

        这里共收集了18209个菜谱,共包含了9700种食材(包括主料、辅料、调料,部分可能由于命名不规范等原因会重复)。当然,这个数据量相对于很多领域的大数据标准来说,实在不值一提。但是在大数据极少涉及的厨房,应该算是比较多的了。

简单的统计

        最简单可以做的,就是对材料进行统计分析。大家猜一下,出现最多的什么呢?

        不用对美食有什么研究,读者都应该可以想到,出现最多的肯定是盐!盐常被称为“百味之首”,很少有菜是不放盐的。接下来是料酒,再接下来是生抽,都是调味料、配料等,从中也可以看出,中国菜是非常讲究用料的,各种配料让人满目林立。主菜中,土豆出现在28位,五花肉出现在38位,等等。

        s1.png

Word2Vec的结果

        把每个菜谱看成一个分好词的句子,我们可以用这个“语料库”来训练一个Word2Vec模型,看看能得到什么有趣的结果?(就算没得到结果也不要紧,反正是探索嘛。)整个训练过程居然很快,几乎不到一秒钟。

        简单对不了解的读者科普一下,Word2Vec是一个可以将词语转化为实数向量的模型,词语只有转化为数字后,才能交给计算机处理。而Word2Vec得到的向量还有一些特殊性质,比如两个词向量的余弦值,代表着两个词的相似程度。

        Word2Vec的模型训练出来后,首先可以做的是比较两个词语的相似度,有些结果是很普通的,比如

        s2.png

        然而会有些让人意外的结果,比如:

        s3.png

        这里显然“鸡肉”跟“玉米”居然高度相似!这表明,它们之间肯定有不得不说的故事。

        背后的原因在哪里呢?Word2Vec模型的原理在于词的共现,因此,这个现象的原因可能是:

        1、玉米和鸡肉经常放在一起煮;

        2、玉米和鸡肉经常分别和相似的菜料一起煮。事实上稍加观察,就会发现两者均有,主要是它们经常用来熬汤,配料也类似:

        s4.png

        看来我们的玩意还确实产生了一些有趣的结果,单从我们的经验可能不容易发现“鸡肉”跟“玉米”的相关性,然而通过数据挖掘,只要有了足够多的数据,均可以发现一些有趣的结果。

        类似的结果还有:牛肉跟鱿鱼的相似性达到了96%,跟土豆的相似性有91%,等等!大家可以看着下面的数据,试图解释一下牛肉跟鱿鱼的结果:

        s5.png

Apriori关联规则

        另一个可能有意义的尝试是挖掘关联规则,由于数据量不大,这里简单地使用Apriori算法。

        在挖掘规则之前,首先对数据进行一下预处理:1、把盐去掉,因为盐数目太大,如果不去掉,挖掘出来的规则很多都包含盐的,那无外乎就是告诉我们“做菜记得放盐”,这是没有什么意义的规则;2、去掉只出现一次的材料,这些材料信息量太少,基本不会出现在规则中,如果不去掉,会增加计算量。

        这样处理之后,如果要求支持度(规则的出现比例)为0.01,置信度(规则的可信度)为0.8,那么得到以下规则:

        s6.png

        它们的意思是:出现了料酒、葱、蒜,那么也要把姜放下去;出现了糖、葱、蒜,也要记得放姜;等等。这些规则都以姜结束,告诉我们什么时候需要放姜,在做菜中,这些规则是比较有意义的(当然是对于新手来说)。这个规则也说明,中国菜中,姜是一个很重要的配料。

        可以稍微放宽一点条件,试图挖掘到更多的规则。将置信度要求降低到0.7,得到如下图的结果

        

        如果说关于姜的规则还是过于普通,那么这时候得到的规则应该就更加有意义了,比如说“桂皮--香叶--八角”、“冰糖--桂皮--八角”、“桂皮--生抽--八角”等等,这些组合应该就是卤味相关的配方,这些配方对于一般的厨房爱好者来说不一定清楚,但是通过关联规则,可以将它们挖掘出来。

        还有一些置信度更高、支持度稍低的规则:

        

        这是更加详细精准的调料配方。要注意,这是计算机自动挖掘出来的结果,大厨是我们的计算机。


公众号
返回
顶部
请关注“官方公众号”
Copyright © 2013-2017   广州泰迪智能科技有限公司   技术支持   粤ICP备14098620号