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