# icook recommandation ## 專案目的 建立超越前個禮拜的rule-base方法,且實作content based filtering ## 推薦思路 * 建立rule based方法 * 使用不同時間維度並搭配 * 依據過往使用頻率推薦不同熱門食譜 * 針對高頻率用戶使用collabrative filtering方法推薦,以期利用較豐富的歷史資料找到用戶可能偏好的食譜 ## 實際推薦方法 * rule base * 1. 使用全部資料,計算favorites_df中最多人收藏的前k個食譜 * 2. 使用特定月份,計算favorites_df中最多人收藏的前k個食譜 * 3. 使用特定月份,計算favorites_df中最多(高/低頻率)使用者收藏的前k個食譜 * 5. 使用特定月份,計算recipes_df中最多人跟著做的前k個食譜 * 4. 使用特定月份,計算recipes_df中最多(高/低頻率)使用者跟著做的前k個食譜 * collabrative filtering * 使用surprise實作 collabrative filtering 針對高頻用戶推薦商品 ## 結果 * 有依據設想規則產生推薦結果,但實際效果跟預想中不同。 * 最後選用12月發布的recipe_df中,最多人跟著做的前k個食譜做為此次baseline,此推薦分數為0.0067591 * 使用collabrative filtering對12月有使用紀錄的高頻率用戶推薦食譜後,一般用戶推薦baseline方法後,推薦分數降為0.0057459 ## 反思 * 此次專案有遇到surprise套件因為記憶體爆掉,計算不完相似度的狀況,因此有些參數組合並沒有加入最後的變量,算是比較可惜的一點 * 有嘗試將使用者區分高低頻率,推薦不同食譜,但效果似乎不佳,或許這不是個好的變數 * 沒有使用到ingredients做為推薦參數的一環 * 此次測試資料的用戶皆是有收藏食譜紀錄的用戶,但完全套用collabrative filtering與content based filtering 最後的分數會比rule base方法來的差,可以想見這是在利用測試資料的狀況印證演算法會發生的事,因為實際應用應該是根據使用者使用時點選的食譜,接著推薦content base或collabrative filtering方法所篩選出的食譜。 * 測試資料與評量方式如果有該用戶此次搜尋的食譜名或材料,或許能更好評量推薦系統的成效
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up