我正在尋找在Java中的一個非常簡單的實現基於用戶的collaborative filtering。我想用movielens數據集來評估這個CF的精度和回憶。我已經看到,表現(F1)應該在20%到30%左右(Pearson相似度和KNN)。推薦系統:簡單的基於用戶的協同過濾與精度評估和召回
這是否簡單的框架與評價的精度和召回的代碼存在嗎?
我正在尋找在Java中的一個非常簡單的實現基於用戶的collaborative filtering。我想用movielens數據集來評估這個CF的精度和回憶。我已經看到,表現(F1)應該在20%到30%左右(Pearson相似度和KNN)。推薦系統:簡單的基於用戶的協同過濾與精度評估和召回
這是否簡單的框架與評價的精度和召回的代碼存在嗎?
Apache Mahout做你提到這裏的一切。它基於Java,支持基於用戶的協作過濾(其中包括GenericUserBasedRecommender
)。它是一個k近鄰算法,可以插入相似實現,如PearsonCorrelationSimilarity
等。
看那org.apache.mahout.cf.taste
包和子包。在.impl.eval
分包中找到GenericRecommenderIRStatsEvaluator
。這將運行一個測試報告精確度,召回率和F1。
最後,已經有基於在mahout-examples
GroupLens
一些工作實例。
你試過RapidMiner? 如果您有興趣嘗試諸如評估精確度和回憶而不關注編碼。這是你的工具。網上甚至有紙張和youtube視頻教程都有很好的信息來幫助你。
嗨,謝謝你的回答。然而Apache Mahout只是不可能使用,並且需要太多的包。另外,缺乏簡單的文檔(例如,如何在eclipse中使用Taste的類來製作新項目)不會有幫助... – Thomas 2011-05-19 11:27:03
不確定你的意思?這段代碼只有一些依賴...... SLF4J和Google Guava我相信。這是一個基於Maven的項目,所以如果使用Maven,您可以在Maven項目中使用幾行代碼。您還可以從項目中獲得一個簡單的.jar文件,其中包含所有內容,您可以像放入任何其他庫一樣將其放入任何Eclipse項目中。這是關於它 - 沒有太多的文件 - 但如果你有具體問題,我相信它可以在[email protected]上解決。 – 2011-05-20 07:24:25