判菜系、調眾囗、打分數,這一回,我們用大資料燒菜?
大資料文摘投稿作品
作者:blmoistawinde
年前,文摘菌曾經扒下了全網所有“年夜飯”菜譜,找到了最有年味的一道菜的一文,對於菜譜資料分析產生了濃厚的興趣,遂自己也寫了個爬蟲爬取了某美食網站的一些精選菜譜和食材資訊。
當看到這些美味佳餚的資料來源源不斷入庫時,我旺盛的好奇心一下子被激發了起來:
世界菜系琳琅滿目,能不能從資料中挖掘出它們的特色?
能不能從大資料中得到大家對美食口味的特別偏好?
若是我自己找到甚至做了一道菜,能不能自動判斷它的菜系,甚至給它打分?
我相信豐富的資料探勘和機器學習方法將能夠滿足我的好奇心,現在就動手進行探索吧。
菜系特色
我認為菜系的特色食材應該是一個菜系能夠用來區別於其他菜系的特殊食材。
我想到,機器學習中的分類方法正好可以幫助我們挖掘出這些區分性的特徵!
川菜可能是中國最為人津津樂道的菜系之一了,於是我把每道菜的食材當成特徵,先訓練了一個區分是否川菜的邏輯迴歸模型,模型的引數就能夠揭示川菜的特色了,讓我們看看:
上半部分是川菜的特色食材,大名鼎鼎的郫縣豆瓣位列榜首想必是眾望所歸。而看著後面的那些食材,草魚、剁椒、雞爪、花椒…水煮魚、泡椒鳳爪這些菜餚的辛香是不是已經飄入鼻腔了呢?
下半部分則是川菜相對於其他菜系來說不喜使用的食材(排斥食材)。番茄醬、冰糖、蜂蜜等甜味食材榜上有名,是因為習慣了重辣,清甜已經不如法眼了嗎?另外,作為上海人的筆者還注意到,自己身邊十分普遍的雞蛋在川菜中似乎並不常用,莫不是蜀道難,難於養母雞?看來這些資料中確實有頗多內涵,值得我們細細探究哈。
用同樣的方法,我得到了22種菜系的特色食材和排斥食材:
看著這張有味道的表格,筆者的腦袋裡已經自動冒出了意麵、壽司、菠蘿飯;夾饃、羊排、揚州飯,種種美食的畫面了。不知道來自五湖四海的大家又會想到什麼美食呢?
菜譜評分
要給菜譜打分,實際上就可以看成一個迴歸問題。給出人類對菜品的評分,然後再讓模型去學習人的評分標準即可。不過當下有一個問題,就是我的資料中並沒有標準的人類評分。
為了解決這個問題,我構造了一個屬性,令評分=log(菜譜收藏數)/log(瀏覽量),這是基於一個直覺——一道菜越好,看到這個菜譜的人就越可能收藏它,也就是收藏的比例會更高。利用這種“評分”,我訓練了一個xgboost的迴歸模型。
有了訓練出的模型,我嘗試了用它來給幾道菜打打分:
或許這個模型比較喜歡重口味?
xgboost模型也有很好的解釋性,我們可以透過它輸出的特徵重要性瞭解到影響菜譜評分的重要食材。
油鹽糖、蔥薑蒜等家常食材和調味料位列前茅,看來能把家常的食材駕馭好對於菜品的質量就很重要了,平平淡淡即是真。
各人口味
若是要承辦一頓盛宴款待來自五湖四海的朋友,那麼眾口難調可能就是一個要考慮的重要問題了。再好的一道菜也未必能夠合所有人的口味,但是,如果能夠讓菜桌上菜品的分佈與各人的喜好相適應,每個人也就都能吃上自己喜歡的食物了。接下來,我正是要從這裡的資料中找到大家的口味偏好。
資料中沒有直接的口味資訊,不過,我們可以從菜譜的名稱、原料、簡介等文字資訊中粗略的估計其口味。我選取了“酸 辣 鹹 甜 香 鮮 清淡”作為7種基本口味,若是它們出現在一道菜的文字資訊中,就認為這道菜有這種滋味。一道菜可以有多重口味,比如加辣椒的酸菜魚至少就有“酸、辣”兩種滋味。
下面,以收藏數佔比為標準,看看網站上大家的總體口味偏好都是怎樣的吧:
看來大家對美食的首要要求就是要香(畢竟真香!),其次鮮、辣也是非常流行的要素。這樣看來,理想的一桌宴席,應當是滿桌的菜品都香飄四溢,有殷紅的辣菜讓人食指大動,鮮美的湯品讓人久久回味,還有酸、甜、鹹味的小菜點心更增胃口。
雖然總體的喜好有很參考價值,但是每個人都有自己好的一口,不能一概而論。不過,要是知道一個人的故鄉,就能夠大致猜到他的口味愛好了。那麼我們怎麼了解各地人們的口味愛好呢?
資料中有著各地的菜系資訊,若是能夠統計各種菜系的口味分佈,不就能夠估計出這個地方人們的愛好了嗎?下面的動圖就展示了13種菜系的相對口味偏好。
圖中數值為菜系間的相對比較值,而非絕對值。絕對值資料及本視覺化程式碼在後面提供。
所以,若是能夠了解宴會上客人的故鄉,我們就能夠更準確地選擇我們的菜品。就比如辣味雖好,若是有江浙地區的客人,也要記得留一些清淡的菜品哦。
那麼,我們就大資料燒菜吧?
現在,我們已經可以用資料估計人群的口味偏好,用模型給我們的菜品打分了,那麼後面似乎我們就可以用大資料投其所好,擇優燒菜?
或許有能力的同仁真的可以做這樣的嘗試,不過在筆者自己的小家中似乎還沒有能與大資料相匹配的豐富食材。這不,一天家裡面準備燒意麵,正可以在美食網站上查好的燒法,比如我就看中了"羅勒番茄意麵",然而,家中並沒有羅勒這種東西。
羅勒是一種香草,青翠的綠色又為菜餚增色不少……這時,我的目光投向冰箱中的香菜,它說不定也能收到類似的奇效呢?
於是,在我的巧思,和家人的巧手下,一道香菜番茄醬意麵就這麼誕生了,色香味也都不錯!
不知道大資料會給我這道奇葩的菜(離群值)打出幾分?不過我想,充分發揮創意,開拓現有資料中不存在的全新可能性,似乎是一件更享受的事情呢!
注:
1、本文結論,僅供娛樂。如有吻合,不勝榮幸。歡迎大家提出意見、指出問題。由於程式碼較多較雜不及整理,我把部分程式碼(動態視覺化和原料標準化)和處理後的資料檔案開源在我的Github上,有興趣不妨看看和star一下~
2、在正式訓練模型前需要進行特徵工程,篩選掉不重要的特徵。而這裡我們又要用大量不規範的食材名來做特徵,比如說光是豆瓣醬,就有[‘豆瓣醬’, ‘郫縣豆瓣醬’, ‘正宗郫縣豆瓣醬’, ‘六月香豆瓣醬’, ‘豆瓣醬鹽糖雞精香菜’, ‘辣豆瓣醬’, ‘老乾媽和豆瓣醬可以二選一’]這麼多種說法,所以這裡我們就要合併這些冗餘的特徵。我把網上採集得到的食材作為標準實體,利用它們的本名和別名把各種描述與這些實體連結(原始碼見上),就完成了這一步。還可能存在一些少量的不規範描述,我使用低頻詞過濾消除了它們。
3、分類模型的效果很不錯,能夠達到96.6%的準確率。但迴歸模型的R方=0.156,實際上效果並不是很好,所以這一部分的結論可能會有些問題,或許需要更好的評分標準,這裡僅作為一種可能性的探索。
注:本原載於作者的CSDN部落格:
https://blog.csdn.net/blmoistawinde/article/details/87884777
希望交流的可以到部落格處或上面的Github聯絡。
本文為投稿作品,僅代表個人觀點。
作者介紹:
上海西南某高校學森一枚,資料玩家,喜歡有趣有意義的資料探勘分析。目前興趣方向在NLP,社交網路分析和知識圖譜等。 嚮往風一般自由,希望拂過之處給世界帶來些清新與滋潤~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31562039/viewspace-2637824/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 有些大資料,我們們床上說……大資料
- 大資料時代,我們如此赤裸大資料
- 大眾點評:2015年中國燒烤大資料包告大資料
- 我們 : 站在大資料金字塔尖的人大資料
- 大資料引領我們走向資料智慧化時代大資料
- 白話大資料 | 從買菜這件小事來聊聊資料倉儲大資料
- 大程式猿們用啥手機啊,我瞅瞅做個調查。
- 大資料時代,我們應該怎麼保護個人資料?大資料
- 大資料時代我們是否還需要資料庫設計?VG大資料資料庫
- 資料市場觀察(一)我們為什麼要大資料?大資料
- 使用者調研資料是如何欺騙我們的
- 用大資料分析《私人訂製》觀眾群像大資料
- 癌症的大資料時代告訴我們什麼?大資料
- 大資料叢集核心引數調優大資料
- 大資料培訓學習後,我們可以掌握哪些大資料技術呢?大資料
- 請教資料庫高手(我們這沒有SQL版阿)資料庫SQL
- 清洗資料,我習慣用這 7 步!
- 在大資料時代,我們真的沒有隱私嗎?大資料
- 大資料對我們生活中的影響有哪些?大資料
- 大資料究竟能幹什麼,值得我們好好思考大資料
- 程式正在成為我們大腦中的資料庫資料庫
- 大資料如何改善我們周圍的生存環境大資料
- 大資料,小資料,哪道才是你的菜大資料
- 從小眾到火爆,圖資料庫能為我們解決什麼問題?資料庫
- 大資料學習—Kafka的核心調優引數大資料Kafka
- 關於資料科學家,我們應該知道的這些事資料科學
- 【2024-07-10】我們的過夜菜
- “大資料”將全面進入人們生活我的資訊保安嗎大資料
- 我們常說的“資料治理”主要有什麼用?
- 從2021分散式資料庫開發者大會里,我們找出了這8個關鍵詞分散式資料庫
- 從2021分散式資料庫開發者大會裡,我們找出了這8個關鍵詞分散式資料庫
- 父親節 | 這份資料一定要看,致這世上最愛我們的男人
- 入門大資料---大資料調優彙總大資料
- 我們需要更多資料還是精確資料?
- Google 開發者大會,這一次,我們再見未來Go
- 資料偏移、分割槽陷阱……我們這樣避開DynamoDB的5個坑
- Sora竟是用這些資料訓練的?OpenAI CTO坦白惹眾怒SoraOpenAI
- 巧用大資料:華為“眾包”小基站大資料