使用mahout做海量資料關聯規則挖掘

2021-09-02 03:27:06 字數 2284 閱讀 5124

mahout是乙個基於hadoop的分布式資料探勘開源專案(mahout本來是指乙個騎在大象上的人)。掌握了關聯規則的基本演算法和使用,加上分布式關聯規則挖掘後,就可以處理基本的關聯規則挖掘工作了,實踐中只需要把握業務,理解資料便可游刃有餘。

安裝mahout

騎在大象上的俠士必然需要一頭雄糾糾的大象,不過本文不解紹大象hadoop,所以我假定已經安裝好了hadoop,關於hadoop的安裝,請google。

解壓

tar -zxvf mahout-distribution-0.8.tar.gz

移動

sudo mv tar mahout-distribution-0.8 /usr/local/mahout-8

配置

sudo gedit /etc/profile

輸入以下內容:

export mahout_home=/usr/local/mahout-8

export path=$mahout_home/bin:$path

export hadoop_home=/usr/local/hadoop

export path=$hadoop_home/bin:$path

退出使用者重新登入,使配置檔案生效。輸入mahout -version測試是否安裝成功。

資料準備

上傳到hadoop檔案系統 

hadoop fs -mkdir  /user/hadoop/mahoutdata #建立目錄

hadoop fs -put ~/data/retail.dat /user/hadoop/mahoutdata

呼叫fpgrowth演算法

mahout fpg -i /user/hadoop/mahoutdata/retail.dat -o patterns -method mapreduce -s 1000 -regex '[ ]'

-i表示input,-o表示-output,-s表示最小支援度,'[ ]'表示以行內的資料以空格分開。

一兩分鐘後執行完畢,生成的檔案被序列化了,直接檢視會是亂碼,因此需要用mahout還原回來:

mahout seqdumper -i /user/hadoop/patterns/fpgrowth/part-r-00000 -o ~/data/patterns.txt

輸出結果:

key: 39: value: ([39],50675)

key: 48: value: ([48],42135), ([39, 48],29142)

key: 38: value: ([38],15596), ([39, 38],10345), ([48, 38],7944), ([39, 48, 38],6102)

key: 32: value: ([32],15167), ([39, 32],8455), ([48, 32],8034), ([39, 48, 32],5402), ([38, 32],2833), ([39, 38, 32],1840), ([48, 38, 32],1646), ([39, 48, 38, 32],1236)

key: 41: value: ([41],14945), ([39, 41],11414), ([48, 41],9018), ([39, 48, 41],7366), ([38, 41],3897), ([32, 41],3196), ([39, 38, 41],3051), ([48, 38, 41],2374), ([39, 32, 41],2359), ([48, 32, 41],2063), ([39, 48, 38, 41],1991), ([39, 48, 32, 41],1646)

key: 65: value: ([65],4472), ([39, 65],2787), ([48, 65],2529), ([39, 48, 65],1797)

key: 89: value: ([89],3837), ([48, 89],2798), ([39, 89],2749), ([39, 48, 89],2125)

key: 225: value: ([225],3257), ([39, 225],2351), ([48, 225],1736), ([39, 48, 225],1400)

這裡輸出的只是頻繁項集,但在此基礎上提取關聯規則已經不是難事。

出處:www.cnblogs.com/fengfenggirl

如何使用jmeter做關聯

1 適用場景 2 新增json extractor 在需求提取的引數上新增 後置處理器 json extractor 從登入介面的返回值中取userid,傳遞給下乙個介面使用 json path tester 代表 根 代表 根下面想找哪乙個 result 代表找到result裡面的所有資料 在jo...

使用postman做動態引數關聯

在介面測試中常常遇到上乙個請求的響應資訊作為下乙個請求的入參,這就是動態引數關聯,postman這個工具是怎麼做到動態引數關聯的呢?首先,新增環境 其次,把需要動態關聯的資料賦值給乙個環境變數 最後,在後乙個請求中引用這個變數 1 新增環境資訊 選擇environments,點選 按鈕新增一套環境。...

基於海量資料的關聯規則挖掘(五)

2.1基於hash的方法 首先是基於雜湊的演算法。基於雜湊的演算法仍是將所有所有資料放入記憶體的方法。只要在計算的過程中能夠滿足演算法對記憶體的大量需求,apriori 演算法能夠很好的執行。但在計算候選項集時特別是在計算候選項對 c2時需要消耗大量記憶體。針對 c2候選項對過大,一些演算法提出用來...