`
run_xiao
  • 浏览: 195401 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

mahout之1-Canopy聚类

阅读更多

1.Canopy聚类

Canopy聚类是一种简单、快速、但不太准确的聚类方法。
该算法需一种快速的近似距离度量方法和两个距离阈值T1>T2。

while(没有标记的数据点){
    选择一个没有强标记的数据点p
    把p看作一个新Canopy c的中心
    离p距离<T1的所有点都认为在c中,给这些点做上弱标记
    离p距离<T2的所有点都认为在c中,给这些点做上强标记
}

Canopy聚类常作为更强聚类方法的初始步骤。

mahout Canopy聚类实现 ,采用了两个map-reduce job
第一个Job org.apache.mahout.clustering.canopy.CanopyDriver:
mapper:org.apache.mahout.clustering.canopy.CanopyMapper
对划分到每个mapper的点根据阈值T1,T2标记Canopy,输出在该mapper上所有Canopy的中心;
mahout实现对原算法略做改动,而避免需先保存所有的点
修改后的算法org.apache.mahout.clustering.canopy.addPointToCanopies

对于一个数据点,遍历已有Canopy{
    该点到某Canopy距离<T1,则加入该Canopy;
    若点到某Canopy距离<T2,则标记该点已于该Canopy强关联;
}
若该点不存在强关联的Canopy,则为其创建一个新Canopy
   

reducer:org.apache.mahout.clustering.canopy.CanopyReducer
整个Job就一个reduce任务,对mapper输出的所有点再次使用Canopy聚类,并输出中心点


第二个Job org.apache.mahout.clustering.canopy.ClusterDriver
使用第一个Job输出的中心点,采用最近距离原则对原数据点进行聚类
用Canopy聚类作为其他方法的初始步骤时,通常不执行该Job


参数调整:
当T1过大时,会使许多点属于多个Canopy,可能会造成各个簇的中心点间距离较近,各簇
间区别不明显;
当T2过大时,增加强标记数据点的数量,会减少簇个个数;T2过小,会增加簇的个数,同时
增加计算时间

 

另外:mahout提供了几种常见距离计算的实现 ,均实现org.apache.mahout.common.distance.DistanceMeasure接口
CosineDistanceMeasure:计算两向量间的夹角
SquaredEuclideanDistanceMeasure:计算欧式距离的平方
EuclideanDistanceMeasure:计算欧式距离
ManhattanDistanceMeasure:马氏距离,貌似图像处理中用得比较多
TanimotoDistanceMeasure:Jaccard相似度,T(a, b) = a.b / (|a|^2 + |b|^2 - a.b)
以及带权重的欧式距离和马氏距离。

2
0
分享到:
评论

相关推荐

    mahout-distribution-0.9.tar.gz

    3. **聚类**:包括K-Means、Fuzzy K-Means、Canopy Clustering、DBSCAN等算法,可用于将相似的数据点分组到一起,常用于市场细分、用户分群等场景。 4. **频繁项集挖掘**:通过Apriori、FP-Growth等算法发现数据...

    mahout聚类算法

    Canopy 聚类算法是一种常用的 Mahout 聚类算法,它可以对数据进行快速的聚类。Canopy 聚类算法的参数有 input、output、distanceMeasure、T1、T2、clusterFilter 等。KMeans 聚类算法是另一种常用的 Mahout 聚类算法...

    mahout-distribution-0.9含jar包

    1. **推荐系统**:Mahout提供了多种协同过滤算法,如User-Based和Item-Based,用于实现个性化推荐。这些算法能够分析用户的历史行为数据,预测他们可能感兴趣的新内容,从而提升用户体验。 2. **分类**:Mahout支持...

    mahout-distribution-0.8-src

    1. **协同过滤(Collaborative Filtering)**:Mahout 提供了基于用户的协同过滤(User-Based Collaborative Filtering)和基于物品的协同过滤(Item-Based Collaborative Filtering)算法,用于推荐系统。...

    mahout-distribution-0.7-src.zip

    2. 聚类(Clustering):包括K-Means、Fuzzy K-Means、Canopy Clustering等算法,用于将数据点自动分组到相似的集合中。 3. 分类(Classification):支持基于概率的朴素贝叶斯分类器(NaiveBayesTrainer)和其他...

    mahout-distribution-0.5.tar.gz + 源码

    1. **推荐系统**:Mahout提供了多种协同过滤算法,如User-Based和Item-Based推荐,用于根据用户的历史行为预测他们可能感兴趣的新项目。这些算法在电商、媒体流服务等领域有广泛应用。 2. **分类与回归**:包括朴素...

    Mahout-0.9-jar包

    1. **推荐系统**:Mahout提供了协同过滤和其他推荐算法,用于根据用户的历史行为和偏好预测其可能感兴趣的物品。例如,电影推荐、商品推荐等。 2. **聚类**:包括K-Means、Fuzzy K-Means和Canopy Clustering等算法...

    apache-mahout-distribution-0.10.2

    1. **分类(Classification)**:Mahout支持决策树、随机森林、朴素贝叶斯等算法,用于将数据点分配到预定义的类别中,常用于文本分类和垃圾邮件过滤。 2. **聚类(Clustering)**:如K-Means、Fuzzy K-Means和...

    mahout canopy+kmeans测试数据

    Canopy聚类算法是一种预聚类技术,常被用作K-means或其它更复杂的聚类算法的预处理步骤。Canopy算法的主要优点在于其速度和效率,尤其适用于大规模数据集。Canopy算法通过定义两个阈值T1和T2(T1&gt;T2)来快速将数据...

    mahout 0.5

    Mahout 0.5中的聚类算法包括K-Means、Fuzzy K-Means、Canopy Clustering等。这些算法用于发现数据集中的自然群体或模式,如在用户行为分析、市场细分等领域。 **5. 数学与统计工具:** Mahout提供了基础的数学和...

    mahout-0.3.tar

    1. **推荐系统**:Mahout提供了多种协同过滤算法,如User-Based和Item-Based,用于根据用户的历史行为预测他们可能感兴趣的新物品。这些算法在电商、媒体推荐等领域有着广泛的应用。 2. **分类算法**:包括朴素...

    mahout-0.3.zip

    1. **聚类**:Mahout提供了多种聚类算法,如K-means,Fuzzy K-means,和Canopy Clustering等。这些算法用于将数据集中的对象分成不同的组或簇,使得同一簇内的对象相似度较高,而不同簇之间的对象相似度较低。这对于...

    Mahout in Action(2012)

    Mahout的设计原则之一是高效利用分布式计算环境,如Apache Hadoop。 #### 四、Mahout中的核心组件 - **推荐系统**:Mahout提供了一系列推荐算法,包括基于用户的协同过滤、基于物品的协同过滤等。 - **聚类算法**:...

    mahout canopy算法仿造代码源码

    Canopy 算法是 Mahout 中的一种快速聚类方法,适用于大数据集。Canopy 算法是为了解决层次聚类(如 K-Means)在处理大规模数据时计算效率低下的问题而设计的。它通过设定两个较大的半径 T1 和 T2 来快速过滤数据点,...

    mahout数据挖掘

    例如,可以随机选择 K 个点作为聚类中心,或者使用 Canopy 聚类的结果作为初始聚类中心。 2. **分配样本**:计算每个数据点到各个聚类中心的距离,将其归入距离最近的聚类。 3. **更新中心**:重新计算每个聚类的新...

    mahout-0.9 jar包

    1. **推荐系统**:Mahout提供了基于用户行为和历史数据的推荐算法,例如基于物品的协同过滤和基于用户的协同过滤。这些算法能够帮助预测用户可能感兴趣的项,广泛应用于电子商务和媒体推荐。 2. **分类与回归**:...

Global site tag (gtag.js) - Google Analytics