對于程序員而言,把自己的技術學以致用,是讓他們最有「成就感」的技能點之一。
于是,面對這么一大桌子菜,技術大神們又有了新的騷操作:用機器學習模型辨別菜系。
特別是在不熟悉的國家/地區(qū)旅游時,遭遇餐廳取一些奇怪的名字來吸引眼球,導致點菜的時候經(jīng)常觸雷。
「喪茶」菜單(圖片來自網(wǎng)絡)
有技術達人就把機器學習模型,實踐在了辨別菜這件大事上。
他們是怎么做到的呢?其實實現(xiàn)起來并不難,只要用機器學習的方法搭建、訓練和測試模型,并通過評估矩陣來選擇最優(yōu)模型,就能實現(xiàn)原材料與菜系的映射。為了實現(xiàn)預期的功能,我們需要進行以下三個步驟。
1. 加載并分析數(shù)據(jù)
2. 建立模型
3. 模型預測
1. 加載并分析數(shù)據(jù)
以意大利菜系為例,我們準備好以下格式的樣例數(shù)據(jù)。其中 id 代表不同的菜肴種類,cuisine 則代表菜系名稱。
拿到數(shù)據(jù)后,首先對數(shù)據(jù)進行提取,其中配方節(jié)點如下。其中包含了食譜 id,菜肴類型和成分列表的訓練集。
之后將 features 與 target 分別賦值到 train_ingredients 和 train_targets。通過統(tǒng)計分析等操作,可以計算出使用最頻繁的前 10 種原料,并將原料名和出現(xiàn)次數(shù)賦值到 sum_ingredients 字典中。通過樣例數(shù)據(jù),還能計算出意大利菜系中使用最頻繁的前 10 種原料,并將原料名和出現(xiàn)次數(shù)賦值到 italian_ingredients 字典中。
得到的結果可以通過 matplotlib 進行可視化。通過數(shù)據(jù)分析,可以得出許多有意思的信息,比如,巴西菜用的最多的食材有洋蔥、橄欖油、檸檬等。而在中國,檸檬顯然不是家常飯的常客。我們用的最多的食材有醬、芝麻油、玉米淀粉等。offer 君猜測,老干媽一定對中國排名第一的食材有巨大貢獻!
日本比較有特色的清酒和醬油也都榜上有名。而在寒冷的俄羅斯,黃油則成為餐桌上必不可少的食材,成為戰(zhàn)斗民族每天所需能量的重要來源。英國更不必多說,如果你熱愛黃油、奶油、土豆和牛奶,去英國就是了!
2. 建立模型
建立模型的過程可能稍微有點復雜,主要分以下四步進行:
a) 單詞清洗
b) 特征提取(使用 TF_IDF)
c) 數(shù)據(jù)分割與重排
調用 train_test_split 函數(shù)將訓練集劃分為新的訓練集和驗證集。
d) 訓練模型
在訓練模型的過程中,需要嘗試不同的參數(shù),挑選出泛化力最好的模型。通過訓練模型,可以計算得出驗證集上的得分。得分越高,說明分類準確度(正確分類的菜肴百分比)越高。這樣,一個優(yōu)秀的模型就大功告成啦!
3. 模型預測
在測試文件 test.json 中,配方的格式與 train.json 相同,只刪除了美食類型,因為它是我們要預測的目標變量。
總的來說,要實現(xiàn)通過食材預測菜系的過程并不復雜,但是如何完善代碼、優(yōu)化模型,使分類體系和匹配程度更高,才是我們要完成的關鍵目標。如果不能做到數(shù)據(jù)的有效清洗和分類,就會出現(xiàn)很多法國菜被誤分為意大利菜這樣的情況。
至于能不能分清川菜和湘菜……可以自己來試一試!這個項目其實來自 100offer 的小伙伴——優(yōu)達學城 Udacity 的「機器學習工程師」納米學位。
(該項目現(xiàn)提供超值限量試學班,詳情見文末)
優(yōu)達學城 Udacity 由 Google 無人車之父 Sebastion Thrun 創(chuàng)立,與 Google、Facebook、亞馬遜等名企聯(lián)合打造了一系列前沿技術課程。2017 年 8 月,騰訊宣布將 Udacity 納米學位項目作為內部員工學習內容。
一分鐘了解什么是「納米學位」
與國內其他平臺相比,Udacity 的一大優(yōu)勢是來自硅谷的獨家特色實戰(zhàn)項目。項目難度深入淺出,結合實際,學員能夠直觀看到學習成果。以下項目成果示例來自「機器學習工程師」和「深度學習」納米學位的正式課程:
項目示例 1 訓練機器人走迷宮
通過實現(xiàn) Q-learning 算法解決走迷宮問題。同時你有機會將你的算法應用在股市中,讓機器學習出高收益策略。
(來自「機器學習」納米學位)
項目示例 2 貓狗圖像識別
使用深度學習方法識別圖片中是貓還是狗。
(來自「機器學習」納米學位畢業(yè)項目)
項目示例 3 訓練四軸飛行器學會飛行
設計一個深度強化學習系統(tǒng),構建懲罰函數(shù)、強化學習模型、深度學習隱藏層幫助四軸飛行器了解每一個動作的優(yōu)劣。你的四軸飛行器將從一系列動作狀態(tài)中,選擇最優(yōu)的策略來平穩(wěn)起飛和降落。
(來自「深度學習」納米學位項目)
項目示例 4 風格遷移
深度學習模型可以用來完成「風格遷移」項目。神經(jīng)網(wǎng)絡會學習這些畫作采用的技巧,并學會如何自己應用這些繪畫技巧。
(來自「深度學習」練習項目)
除此之外,你將跟隨來自硅谷的行業(yè)專家系統(tǒng)學習,深入掌握人工智能領域知識。實戰(zhàn)項目經(jīng)驗均可寫入簡歷,為求職面試加分。
如果你也在尋求轉行機會,或渴望突破薪資天花板,抓住人工智能人才紅利,Udacity 為你特別開啟了【7 天超值試學班】,名額有限,今天開始搶完為止。本期試學班能夠提前體驗:機器學習工程師項目「猜猜這道菜來自哪里」和深度學習項目「你拍我猜」。