使用路易社的資料進行聚類測試

2021-07-11 18:32:09 字數 2351 閱讀 5236

mahout是直接使用hadoop集群的,引數比較多,具體可以參考書籍或doc,這裡記錄初略的使用

一.# 文字向量化(以路易社的資料為例)

mahout org.apache.lucene.benchmark.utils.extractreuters ./reuters-sgm ./reuters-out

hadoop fs -put ./reuters-out /test/reuters-out

mahout seqdirectory -i /test/reuters-out/ -o /test/reuters-seq/ -c utf-8 -chunk 64 -xm sequential

mahout seq2sparse -i /test/reuters-seq -o /test/reuters-sparse -ow --weight tfidf --maxdfpercent 85 --namedvector

hadoop dfs -ls /test/reuters-sparse

mahout vectordump -i /test/reuters-sparse/tfidf-vectors -n 5

二.1.

# kmeans聚類

mahout kmeans -i /test/reuters-sparse/tfidf-vectors -c /test/reuters-kmeans-clusters -o /test/reuters-kmeans -k 20 -dm org.apache.mahout.common.distance.cosinedistancemeasure -x 200 -ow --clustering

# 隨機選擇中心

hadoop dfs -ls /test/reuters-kmeans-clusters

# 聚類結果

hadoop dfs -ls /test/reuters-kmeans

# 檢視簇結果

# 聚類結果中重要的是文件被聚到了哪個類(看了很多資料,都沒怎麼提及)

mahout seqdumper -i /test/reuters-kmeans/clusteredpoints/

2.# fuzzy-kmeans聚類(文字處理我們優先使用余弦測距)

mahout fkmeans -i /test/reuters-sparse/tfidf-vectors -c /test/reuters-fkmeans-clusters -o /test/reuters-fkmeans -k 20 -dm org.apache.mahout.common.distance.cosinedistancemeasure -m 1.05 -x 200 -ow --clustering --convergencedelta 0.01

# 檢視聚類結果

mahout seqdumper -i /test/reuters-fkmeans/clusteredpoints/

3.# canopy聚類

mahout canopy -i /test/reuters-sparse/tfidf-vectors -o /test/reuters-canopy-centroids -dm org.apache.mahout.common.distance.cosinedistancemeasure -t1 140 -t2 80 -ow

# 檢視結果

mahout clusterdump -i /test/reuters-canopy-centroids/clusters-0-final -d /test/reuters-sparse/dictionary.file-0 -dt sequencefile -n 20 | vim -

4.# lda聚類(lda使用tf) 概率模型

mahout seq2sparse -i /test/reuters-seq -o /test/reuters-sparse -ow --weight tf --maxdfpercent 50 --namedvector

# mahout的lda實現中tf的vector詞必須是ingeter型別,即要我們把word轉換成wordid

mahout rowid -i /test/reuters-sparse/tf-vectors -o /test/reuters-cvb-vectoers

#mahout cvb -i /test/reuters-cvb-vectoers/matrix -dict /test/reuters-sparse/dictionary.file-0 -dt /test/reuters-lda-documents -o /test/reuters-lda -k 20 -x 100 -ow -nt 41807

mahout seqdumper -i /test/reuters-lda-documents

mahout seqdumper -i /test/reuters-lda

使用matlab進行K means聚類

使用matlab對輸入資料進行k means聚類。演算法的思想來自基於密度方法的聚類 生成資料 mu1 20 20 s1 100 010 data1 mvnrnd mu1,s1,100 mu2 80 80 s2 200 030 data2 mvnrnd mu2,s2,200 mu3 20 80 s3...

基於KMeans聚類演算法進行簡單的資料分類

以二維陣列 鳶尾花和中國城市經緯度為例項先簡單了解下kmeans聚類演算法。聚類演算法屬於無監督學習,其中的kmeans演算法是將一組有n個樣本的資料劃分成k個不相交的 clusters 簇 c。means 均值 通常被稱為 cluster 簇 的 centroids 質心 注意,它們一般不是從 x...

使用k means聚類演算法對矩陣元素進行分類

實驗目的 實驗內容 假設把樣本集分為k個類別,演算法描述如下 import sklearn import numpy as np import pandas as pd from matplotlib import pyplot as plt randomdata.py a np.random.ra...