1)Apache Mahout 理論介紹
目錄
Apache Mahout
1)Mahout(訓象人) 是 Apache Software Foundation(Apache軟體基金會)旗下的一級開源專案,提供了可擴充套件的機器學習領域經典演算法的實現,旨在幫助開發人員更加方便快捷地建立智慧應用程式。
2)Mahout 包含許多實現,包括 聚類、分類、頻繁子項挖掘、推薦過濾。
3)通過使用 Apache Hadoop 庫,Mahout 可以有效地擴充套件到 Hadoop 叢集。
4)For Creating Scalable Performant Machine Learning Applications(用於建立可伸縮的效能機器學習應用)
Mahout 官網地址:http://mahout.apache.org/
Maven中央倉庫地址:https://mvnrepository.com/search?q=Mahout
二進位制開發包下載地址:https://mirrors.tuna.tsinghua.edu.cn/apache/mahout/
GitHub開源地址:https://github.com/apache/mahout
Mahout 主要用途
1)聚類:Google news 使用聚類技術通過標題把新聞文章進行分組,從而按照邏輯線索來顯示新聞,而並非給出所有新聞的原始列表。
2)分類:雅虎郵箱基於使用者以往對正常郵件和垃圾郵件的報告,以及 Email 自身的特徵,來判別接收的郵件是否是垃圾郵件。
3)推薦引擎:服務商或網站會根據使用者過去的行為為你推薦書籍、電影或文章、產品等資料。
協同過濾演算法
1)Mahout 使用 Taste 來提高協同過濾演算法的實現,它是一個基於 Java 實現的可擴充套件的,高效的推薦引擎。
2)Taste 既實現了最基本的基於使用者的和基於內容的推薦演算法,同時也提供了擴充套件介面,使使用者可以方便的定義和實現自己的推薦演算法。
3)Taste 不僅僅只適用於 Java 應用程式,它可以作為內部伺服器的一個元件以 HTTP 和 Web Service 的形式向外界提供推薦的邏輯。Taste 的設計使它能滿足企業對推薦引擎在效能、靈活性和可擴充套件性等方面的要求。
Taste 主要包括以下幾個介面:
1、DataModel:使用者喜好資訊抽象介面,它的具體實現支援從任意型別的資料來源抽取使用者喜好資訊。Taste 預設提供 JDBCDataModel 和 FileDataModel,分別支援從資料庫和檔案中讀取使用者的喜好資訊。
2、UserSimilarity 和 ItemSimilarity :UserSimilarity 用於定義兩個使用者間的相似度,它是基於協同過濾的推薦引擎的核心部分,可以用來計算使用者是否是“鄰居”,將與當前使用者口味相似的使用者稱為他的鄰居。ItemSimilarity 與之類似,計算 Item 之間的相似度。
3、UserNeighborhood :用於基於使用者相似度的推薦方法中,推薦的內容是基於找到與當前使用者喜好相似的鄰居使用者的方式產生的。UserNeighborhood 定義了確定鄰居使用者的方法,具體實現一般是基於 UserSimilarity 計算得到的。
4、Recommender :推薦引擎的抽象介面,Taste 中的核心元件。程式中,為它提供一個 DataModel,它可以計算出對不同使用者的推薦內容。實際應用中,主要使用它的實現類 GenericUserBasedRecommender 或者 GenericItemBasedRecommender,分別實現基於使用者相似度的推薦引擎或者基於內容的推薦引擎。
5、RecommenderEvaluator :評分器。
6、RecommenderIRStatsEvaluator :蒐集推薦效能相關的指標,包括準確率、召回率等等。