吃飯的時候會見到很多奇怪的菜名,很多店常常會取一些奇怪的名字來吸引眼球,吃飯的時候基本靠猜,或者……通過食材預(yù)估一下彩色和口味是否符合自己的要求。其實通過食材預(yù)測菜系,用 python 也可以做到!
可以用機器學(xué)習(xí)的方法搭建、訓(xùn)練和測試模型,并通過評估矩陣來選擇最優(yōu)模型,實現(xiàn)原材料與菜系的映射。為了實現(xiàn)預(yù)期的功能,我們需要進行以下三個步驟。
1.加載并分析數(shù)據(jù)
2.建立模型
3.模型預(yù)測
加載并分析數(shù)據(jù)
以意大利菜系為例,我們準(zhǔn)備好以下格式的樣例數(shù)據(jù)。其中“id”代表不同的菜肴種類,“cuisine”則代表菜系名稱。
拿到數(shù)據(jù)后,首先對數(shù)據(jù)進行提取,其中配方節(jié)點如下。其中包含了食譜 id,菜肴類型和成分列表的訓(xùn)練集。
之后將 features 與 target 分別賦值到 train_ingredients 和 train_targets。通過統(tǒng)計分析等操作,可以計算出使用最頻繁的前 10 種原料,并將原料名和出現(xiàn)次數(shù)賦值到 sum_ingredients 字典中。通過樣例數(shù)據(jù),還能計算出意大利菜系中使用最頻繁的前 10 種原料,并將原料名和出現(xiàn)次數(shù)賦值到 italian_ingredients 字典中。
得到的結(jié)果可以通過 matplotlib 進行可視化。通過數(shù)據(jù)分析,可以得出許多有意思的信息,比如,巴西菜用的最多的食材有洋蔥、橄欖油、檸檬等。而在中國,檸檬顯然不是家常飯的???。我們用的最多的食材有醬、芝麻油、玉米淀粉等。小編猜測,老干媽一定對中國排名第一的食材有巨大貢獻!
日本比較有特色的清酒和醬油也都榜上有名。而在寒冷的俄羅斯,黃油則成為餐桌上必不可少的食材,成為戰(zhàn)斗民族每天所需能量的重要來源。英國更不必多說,如果你熱愛黃油、奶油、土豆和牛奶,去英國就是了!
建立模型
建立模型的過程可能稍微有點復(fù)雜,主要分以下四步進行:
1、單詞清洗
2、特征提?。ㄊ褂?a target="_blank">TF_IDF)
3、數(shù)據(jù)分割與重排
調(diào)用 train_test_split 函數(shù)將訓(xùn)練集劃分為新的訓(xùn)練集和驗證集。
4、訓(xùn)練模型
在訓(xùn)練模型的過程中,需要嘗試不同的參數(shù),挑選出泛化力最好的模型。通過訓(xùn)練模型,可以計算得出驗證集上的得分。得分越高,說明分類準(zhǔn)確度(正確分類的菜肴百分比)越高。這樣,一個優(yōu)秀的模型就大功告成啦!
模型預(yù)測
在測試文件 test.json 中,配方的格式與 train.json 相同,只刪除了美食類型,因為它是我們要預(yù)測的目標(biāo)變量。
總的來說,要實現(xiàn)通過食材預(yù)測菜系的過程并不復(fù)雜,但是如何完善代碼、優(yōu)化模型,使分類體系和匹配程度更高,才是我們要完成的關(guān)鍵目標(biāo)。如果不能做到數(shù)據(jù)的有效清洗和分類,就會出現(xiàn)很多法國菜被誤分為意大利菜這樣的情況。
至于能不能分清川菜和湘菜……可以自己來試一試!這個項目其實來自優(yōu)達學(xué)城 Udacity 的「機器學(xué)習(xí)工程師」納米學(xué)位。
優(yōu)達學(xué)城 Udacity由Google 無人車之父Sebastion Thrun創(chuàng)立,與Google、Facebook、亞馬遜等名企聯(lián)合打造了一系列前沿技術(shù)課程,旨在讓每個人都能用遠低于線下教育的成本學(xué)習(xí)硅谷前沿技術(shù),最終成為有能力通過技術(shù)改變世界的搶手人才。2017 年8 月,騰訊宣布將 Udacity 納米學(xué)位項目作為內(nèi)部員工學(xué)習(xí)內(nèi)容。
與國內(nèi)其他平臺相比,Udacity 的一大優(yōu)勢是來自硅谷的獨家特色實戰(zhàn)項目。項目難度深入淺出,能夠讓學(xué)習(xí)者快速將所學(xué)運用到實際生活,并直觀看到學(xué)習(xí)成果。下面的部分項目成果示例來自「機器學(xué)習(xí)工程師」和「深度學(xué)習(xí)」納米學(xué)位的正式課程:
項目示例 1訓(xùn)練機器人走迷宮
通過實現(xiàn) Q-learning 算法解決走迷宮問題。同時你有機會將你的算法應(yīng)用在股市中,讓機器學(xué)習(xí)出高收益策略。
項目示例 2貓狗圖像識別
使用深度學(xué)習(xí)方法識別圖片中是貓還是狗。
實戰(zhàn)項目示例 3訓(xùn)練四軸飛行器學(xué)會飛行
設(shè)計一個深度強化學(xué)習(xí)系統(tǒng),構(gòu)建懲罰函數(shù)、強化學(xué)習(xí)模型、深度學(xué)習(xí)隱藏層幫助四軸飛行器了解每一個動作的優(yōu)劣。你的四軸飛行器將從一系列動作狀態(tài)中,選擇最優(yōu)的策略來平穩(wěn)起飛和降落。
實戰(zhàn)項目示例 3風(fēng)格遷移
深度學(xué)習(xí)模型可以用來完成「風(fēng)格遷移」項目。神經(jīng)網(wǎng)絡(luò)會學(xué)習(xí)這些畫作采用的技巧,并學(xué)會如何自己應(yīng)用這些繪畫技巧。
-
機器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8428瀏覽量
132850 -
python
+關(guān)注
關(guān)注
56文章
4802瀏覽量
84885
原文標(biāo)題:機器學(xué)習(xí)模型,能分清川菜和湘菜嗎?
文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論