通過canopy演算法實戰了解了mapreduce的coding套路,job、input、output、format、map、reduce、configuration等的設定,檔案序列化和反序列化sequencefile
理解文章要感謝mahout 原始碼解析之聚類--canopy演算法
下面大概說收canopy演算法的步驟
1、通過inputdriver將文字檔案變為seqfile
2、
path clustersout =進行聚類生成中心點他有單機和mr兩種,設定t1t2,同時還要設定閾值這要當樣本數小於該類時就去掉該canopycanopydriver
.buildclusters(
new
configuration
(), directorycontainingconvertedinput, ouput, measure, t1, t2, t1, t2, 0,
false
);
3、可以生成每個族的樣本數,將他們展示出來在這裡還沒有實現後續我再琢磨怎麼在本地檔案中檢視。其中還有乙個clusteringpoilcy分類策略
下面是最外邊的**:
private static voidrun(
path input,
path output,
distancemeasure measure,
double t1,
double t2)
throws
exception
system
.out
.println
("clusterclassificationdriver:done!!!"
);//run(conf, input, output, measure, t1, t2, t1, t2, 0, runclustering, clusterclassificationthreshold, runsequential);
canopydriver
.run(
new
configuration
(), directorycontainingconvertedinput, ouput, measure, t1, t2,
false
, 0.0d
, false
);system
.out
.println
("canopydriver done!!!!!!!!!!"
);clusterdumper clusterdumper =
new
clusterdumper
(new
path
(ouput,
"clusters-0-final"
),output2);
system
.out
.println
("clusterdumper done!!!!!!!!!!"
);clusterdumper.
printclusters
(null
);system
.out
.println
("clusterdumper printclusters done!!!!!!!!!!"
);}
canopy演算法流程 Canopy聚類演算法
一 概念 與傳統的聚類演算法 比如k means 不同,canopy聚類最大的特點是不需要事先指定k值 即clustering的個數 因此具有很大的實際應用價值。與其他聚類演算法相比,canopy聚類雖然精度較低,但其在速度上有很大優勢,因此可以使用canopy聚類先對資料進行 粗 聚類,得到k值後...
機器學習 Canopy演算法
原理 先設定兩個先驗值r1,r2,我把他們理解為內圈外圈,大家可以跟我學。將所有樣本放入乙個列表,隨機選乙個樣本拿出來作為第乙個簇的簇中心點,然後從列表中剩下的所有樣本中隨機抽取乙個,計算其與簇中心點的距離。如果大於外圈r1,則不屬於此簇,而是拿出去單獨成為一簇,並作為簇中心點,從列表中刪除此樣本 ...
Canopy聚類演算法分析
canopy聚類演算法是可以並行執行的演算法,資料並行意味著可以多執行緒進行,加快聚類速度,開源ml庫mahout 使用。一 概念 與傳統的聚類演算法 比如 k means 不同,canopy 聚類最大的特點是不需要事先指定 k 值 即 clustering 的個數 因此具有很大的實際應用價值。與其...