日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

认识Mahout下的云计算机器学习

發(fā)布時間:2023/12/2 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 认识Mahout下的云计算机器学习 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
認(rèn)識Mahout下的云計算機器學(xué)習(xí)

Apache Mahout 是 ApacheSoftware Foundation (ASF) 旗下的一個開源項目,提供一些可擴展的機器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實現(xiàn),旨在幫助開發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序,并且,在 Mahout 的最近版本中還加入了對Apache Hadoop 的支持,使這些算法可以更高效的運行在云計算環(huán)境中。

在Mahout實現(xiàn)的機器學(xué)習(xí)算法見下表:

算法類

算法名

中文名

分類算法

Logistic Regression

邏輯回歸

Bayesian

貝葉斯

SVM

支持向量機

Perceptron

感知器算法

Neural Network

神經(jīng)網(wǎng)絡(luò)

Random Forests

隨機森林

Restricted Boltzmann Machines

有限波爾茲曼機

聚類算法

Canopy Clustering

Canopy聚類

K-means Clustering

K均值算法

Fuzzy K-means

模糊K均值

Expectation Maximization

EM聚類(期望最大化聚類)

Mean Shift Clustering

均值漂移聚類

Hierarchical Clustering

層次聚類

Dirichlet Process Clustering

狄里克雷過程聚類

Latent Dirichlet Allocation

LDA聚類

Spectral Clustering

譜聚類

關(guān)聯(lián)規(guī)則挖掘

Parallel FP Growth Algorithm

并行FP Growth算法

回歸

Locally Weighted Linear Regression

局部加權(quán)線性回歸

降維/維約簡

Singular Value Decomposition

奇異值分解

Principal Components Analysis

主成分分析

Independent Component Analysis

獨立成分分析

Gaussian Discriminative Analysis

高斯判別分析

進化算法

并行化了Watchmaker框架

?

推薦/協(xié)同過濾

Non-distributed recommenders

Taste(UserCF, ItemCF, SlopeOne)

Distributed Recommenders

ItemCF

向量相似度計算

RowSimilarityJob

計算列間相似度

VectorDistanceJob

計算向量間距離

非Map-Reduce算法

Hidden Markov Models

隱馬爾科夫模型

集合方法擴展

Collections

擴展了java的Collections類

Mahout最大的優(yōu)點就是基于hadoop實現(xiàn),把很多以前運行于單機上的算法,轉(zhuǎn)化為了MapReduce模式,這樣大大提升了算法可處理的數(shù)據(jù)量和處理性能。

?

Mahout下個性化推薦引擎Taste介紹

Taste是?Apache Mahout?提供的一個個性化推薦引擎的高效實現(xiàn),該引擎基于java實現(xiàn),可擴展性強,同時在mahout中對一些推薦算法進行了MapReduce編程模式轉(zhuǎn)化,從而可以利用hadoop的分布式架構(gòu),提高推薦算法的性能。

?

在Mahout0.5版本中的Taste,?實現(xiàn)了多種推薦算法,其中有最基本的基于用戶的和基于內(nèi)容的推薦算法,也有比較高效的SlopeOne算法,以及處于研究階段的基于SVD和線性插值的算法,同時Taste還提供了擴展接口,用于定制化開發(fā)基于內(nèi)容或基于模型的個性化推薦算法。

?

Taste?不僅僅適用于?Java?應(yīng)用程序,還可以作為內(nèi)部服務(wù)器的一個組件以?HTTP?和?Web Service?的形式向外界提供推薦的邏輯。Taste?的設(shè)計使它能滿足企業(yè)對推薦引擎在性能、靈活性和可擴展性等方面的要求。

?

下圖展示了構(gòu)成Taste的核心組件:

?

?

?

從上圖可見,Taste由以下幾個主要組件組成:

?

DataModel:DataModel是用戶喜好信息的抽象接口,它的具體實現(xiàn)支持從指定類型的數(shù)據(jù)源抽取用戶喜好信息。在Mahout0.5中,Taste?提供JDBCDataModel?和?FileDataModel兩種類的實現(xiàn),分別支持從數(shù)據(jù)庫和文件文件系統(tǒng)中讀取用戶的喜好信息。對于數(shù)據(jù)庫的讀取支持,在Mahout 0.5中只提供了對MySQL和PostgreSQL的支持,如果數(shù)據(jù)存儲在其他數(shù)據(jù)庫,或者是把數(shù)據(jù)導(dǎo)入到這兩個數(shù)據(jù)庫中,或者是自行編程實現(xiàn)相應(yīng)的類。

?

??? UserSimilarit和ItemSimilarity:前者用于定義兩個用戶間的相似度,后者用于定義兩個項目之間的相似度。Mahout支持大部分駐留的相似度或相關(guān)度計算方法,針對不同的數(shù)據(jù)源,需要合理選擇相似度計算方法。

?

??? UserNeighborhood:在基于用戶的推薦方法中,推薦的內(nèi)容是基于找到與當(dāng)前用戶喜好相似的“鄰居用戶”的方式產(chǎn)生的,該組件就是用來定義與目標(biāo)用戶相鄰的“鄰居用戶”。所以,該組件只有在基于用戶的推薦算法中才會被使用。

?????Recommender:Recommender是推薦引擎的抽象接口,Taste?中的核心組件。利用該組件就可以為指定用戶生成項目推薦列表。

?

Mahout源碼目錄說明

mahout項目是由多個子項目組成的,各子項目分別位于源碼的不同目錄下,下面對mahout的組成進行介紹: 1、mahout-core:核心程序模塊,位于/core目錄下; 2、mahout-math:在核心程序中使用的一些數(shù)據(jù)通用計算模塊,位于/math目錄下; 3、mahout-utils:在核心程序中使用的一些通用的工具性模塊,位于/utils目錄下; 上述三個部分是程序的主題,存儲所有mahout項目的源碼。 另外,mahout提供了樣例程序,分別在taste-web和examples目錄下: 4、taste-web:利用mahout推薦算法而建立的基于WEB的個性化推薦系統(tǒng)demo; 5、examples:對mahout中各種機器學(xué)習(xí)算法的應(yīng)用程序; 6、bin:bin目錄下只有一個名為mahout的文件,是一個shell腳本文件,用于在hadoop平臺的命令行下調(diào)用mahout中的程序; 在buildtools、eclipse和distribution目錄下,有mahout相關(guān)的配置文件 7、buildtools目錄下是用于核心程序構(gòu)建的配置文件,以mahout-buildtools的模塊名稱在mahout的pom.xml文件中進行說明; 8、eclipse下的xml文件是對利用eclipse開發(fā)mahout的配置說明; 9、distribution目錄下有兩個配置文件:bin.xml和src.xml,進行mahou安裝時的一些配置信息。 (在開發(fā)的時候一般很少對這個目錄下的文件進行修改,所以不用太關(guān)注,知道大體什么意思就ok)
另 外,在mahout的下載地址下可以看到有個文件夾與mahout處于同一級別,它是mahout項目的分支項目—mahout- collections,用于實現(xiàn)了核心程序中使用的集合類操作,該模塊獨立于mahout進行開發(fā),是對標(biāo)準(zhǔn)jdk中關(guān)于集合類的修改,使其可以適應(yīng)數(shù) 據(jù)密集型項目的開發(fā)。

在windows xp下利用Eclipse構(gòu)建Mahout

1. Mahout構(gòu)建的先決條件

1) JDK,使用1.6版本。需要說明一下,因為要基于Eclipse構(gòu)建,所以在設(shè)置path的值之前要先定義JAVA_HOME變量。

2) Maven,使用2.0.11版本或以上。在eclipse上安裝maven插件—m2eclipse。

2. mahout源碼獲取

與其他Apache下開源項目類似,可以有兩種獲取源碼的方法:

一是通過Subversion檢出,檢出命令和地址如下

svn co http://svn.apache.org/repos/asf/mahout/trunk

二是直接下載發(fā)行版本,下載地址:http://apache.etoak.com//mahout/,打開該地址,可以看到如下目錄組織:

到發(fā)文為止mahout的發(fā)行版本到0.5,點擊進入0.5/,進入源碼頁,如下圖:

紅色框中的就是mahout的源碼壓縮文件,可以根據(jù)安裝的解壓工具選擇任意一個進行下載。

另外,下載發(fā)行版也可以到maven的在線資源庫中下載,地址如下:

http://repo2.maven.org/maven2/org/apache/mahout/

3. mahout構(gòu)建

1)解壓mahout源碼壓縮文件,了解目錄結(jié)構(gòu)

利用解壓工具把下載的壓縮包解壓到當(dāng)前目錄,點擊進入,可以看到如下目錄結(jié)構(gòu)(使用subversion檢出的可以在檢出的當(dāng)前目下看到如下目錄結(jié)構(gòu)):

2)把源碼導(dǎo)入eclipse中

打開eclipse,點擊file->import 在開打的對話框中,選擇導(dǎo)入maven項目如下圖,然后點擊next

通過瀏覽方式,確定mahout源碼的根目錄,如下圖,然后點擊finish:

至此,通過eclipse的package explore 可以查看導(dǎo)入的mahout項目的組成,如下圖:

3)運行編譯

運行時,點開mahout-distribution-0.5,選中其下的pom.xml文件,然后右鍵選擇run as項,就可以對mahout進行構(gòu)建、編譯、測試以及安裝等操作。

如果只是要對某個子項目進行操作,可以點擊子項目的pom.xml進行運行。

posted on 2011-12-22 11:16 wentingtu 閱讀(...) 評論(...) 編輯 收藏

轉(zhuǎn)載于:https://www.cnblogs.com/wentingtu/archive/2011/12/22/2297496.html

總結(jié)

以上是生活随笔為你收集整理的认识Mahout下的云计算机器学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。