日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

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

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

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

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

算法類

算法名

中文名

分類算法

Logistic Regression

邏輯回歸

Bayesian

貝葉斯

SVM

支持向量機(jī)

Perceptron

感知器算法

Neural Network

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

Random Forests

隨機(jī)森林

Restricted Boltzmann Machines

有限波爾茲曼機(jī)

聚類算法

Canopy Clustering

Canopy聚類

K-means Clustering

K均值算法

Fuzzy K-means

模糊K均值

Expectation Maximization

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

Mean Shift Clustering

均值漂移聚類

Hierarchical Clustering

層次聚類

Dirichlet Process Clustering

狄里克雷過(guò)程聚類

Latent Dirichlet Allocation

LDA聚類

Spectral Clustering

譜聚類

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

Parallel FP Growth Algorithm

并行FP Growth算法

回歸

Locally Weighted Linear Regression

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

降維/維約簡(jiǎn)

Singular Value Decomposition

奇異值分解

Principal Components Analysis

主成分分析

Independent Component Analysis

獨(dú)立成分分析

Gaussian Discriminative Analysis

高斯判別分析

進(jìn)化算法

并行化了Watchmaker框架

?

推薦/協(xié)同過(guò)濾

Non-distributed recommenders

Taste(UserCF, ItemCF, SlopeOne)

Distributed Recommenders

ItemCF

向量相似度計(jì)算

RowSimilarityJob

計(jì)算列間相似度

VectorDistanceJob

計(jì)算向量間距離

非Map-Reduce算法

Hidden Markov Models

隱馬爾科夫模型

集合方法擴(kuò)展

Collections

擴(kuò)展了java的Collections類

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

?

Mahout下個(gè)性化推薦引擎Taste介紹

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

?

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

?

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

?

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

?

?

?

從上圖可見(jiàn),Taste由以下幾個(gè)主要組件組成:

?

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

?

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

?

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

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

?

Mahout源碼目錄說(shuō)明

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

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

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

1) JDK,使用1.6版本。需要說(shuō)明一下,因?yàn)橐贓clipse構(gòu)建,所以在設(shè)置path的值之前要先定義JAVA_HOME變量。

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

2. mahout源碼獲取

與其他Apache下開(kāi)源項(xiàng)目類似,可以有兩種獲取源碼的方法:

一是通過(guò)Subversion檢出,檢出命令和地址如下

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

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

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

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

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

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

3. mahout構(gòu)建

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

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

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

打開(kāi)eclipse,點(diǎn)擊file->import 在開(kāi)打的對(duì)話框中,選擇導(dǎo)入maven項(xiàng)目如下圖,然后點(diǎn)擊next

通過(guò)瀏覽方式,確定mahout源碼的根目錄,如下圖,然后點(diǎn)擊finish:

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

3)運(yùn)行編譯

運(yùn)行時(shí),點(diǎn)開(kāi)mahout-distribution-0.5,選中其下的pom.xml文件,然后右鍵選擇run as項(xiàng),就可以對(duì)mahout進(jìn)行構(gòu)建、編譯、測(cè)試以及安裝等操作。

如果只是要對(duì)某個(gè)子項(xiàng)目進(jìn)行操作,可以點(diǎn)擊子項(xiàng)目的pom.xml進(jìn)行運(yùn)行。

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

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

總結(jié)

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

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