精华内容
下载资源
问答
  • 什么是聚类分析聚类分析方法的类别

    万次阅读 多人点赞 2019-07-03 21:09:55
    聚类分析是指将数据对象的集合分组为由类似的对象组成的多个类的分析过程。 基本概念 聚类(Clustering)就是一种寻找数据之间内在结构的技术。聚类把全体数据实例组织成一些相似组,而这些相似组被称作簇。处于...

    聚类分析是指将数据对象的集合分组为由类似的对象组成的多个类的分析过程。

    基本概念

    聚类(Clustering)就是一种寻找数据之间内在结构的技术。聚类把全体数据实例组织成一些相似组,而这些相似组被称作簇。处于相同簇中的数据实例彼此相同,处于不同簇中的实例彼此不同。

    聚类技术通常又被称为无监督学习,与监督学习不同的是,在簇中那些表示数据类别的分类或者分组信息是没有的。

    数据之间的相似性是通过定义一个距离或者相似性系数来判别的。图 1 显示了一个按照数据对象之间的距离进行聚类的示例,距离相近的数据对象被划分为一个簇。

    聚类分析示意
    图 1  聚类分析示意

    聚类分析可以应用在数据预处理过程中,对于复杂结构的多维数据可以通过聚类分析的方法对数据进行聚集,使复杂结构数据标准化。

    聚类分析还可以用来发现数据项之间的依赖关系,从而去除或合并有密切依赖关系的数据项。聚类分析也可以为某些数据挖掘方法(如关联规则、粗糙集方法),提供预处理功能。

    在商业上,聚类分析是细分市场的有效工具,被用来发现不同的客户群,并且它通过对不同的客户群的特征的刻画,被用于研究消费者行为,寻找新的潜在市场。

    在生物上,聚类分析被用来对动植物和基因进行分类,以获取对种群固有结构的认识。

    在保险行业上,聚类分析可以通过平均消费来鉴定汽车保险单持有者的分组,同时可以根据住宅类型、价值、地理位置来鉴定城市的房产分组。

    在互联网应用上,聚类分析被用来在网上进行文档归类。

    在电子商务上,聚类分析通过分组聚类出具有相似浏览行为的客户,并分析客户的共同特征,从而帮助电子商务企业了解自己的客户,向客户提供更合适的服务。

    聚类分析方法的类别

    目前存在大量的聚类算法,算法的选择取决于数据的类型、聚类的目的和具体应用。聚类算法主要分为 5 大类:基于划分的聚类方法、基于层次的聚类方法、基于密度的聚类方法、基于网格的聚类方法和基于模型的聚类方法。

    1. 基于划分的聚类方法

    基于划分的聚类方法是一种自顶向下的方法,对于给定的 n 个数据对象的数据集 D,将数据对象组织成 k(k≤n) 个分区,其中,每个分区代表一个簇。图 2 就是基于划分的聚类方法的示意图。

    层次聚类算法示意
    图 2  层次聚类算法示意

    基于划分的聚类方法中,最经典的就是k-平均(k-means)算法和 k-中心(k-medoids)算法,很多算法都是由这两个算法改进而来的。

    基于划分的聚类方法的优点是,收敛速度快,缺点是,它要求类别数目 k 可以合理地估计,并且初始中心的选择和噪声会对聚类结果产生很大影响。

    2. 基于层次的聚类方法

    基于层次的聚类方法是指对给定的数据进行层次分解,直到满足某种条件为止。该算法根据层次分解的顺序分为自底向上法和自顶向下法,即凝聚式层次聚类算法和分裂式层次聚类算法。

    1)自底向上法。

    首先,每个数据对象都是一个簇,计算数据对象之间的距离,每次将距离最近的点合并到同一个簇。然后,计算簇与簇之间的距离,将距离最近的簇合并为一个大簇。不停地合并,直到合成了一个簇,或者达到某个终止条件为止。

    簇与簇的距离的计算方法有最短距离法、中间距离法、类平均法等,其中,最短距离法是将簇与簇的距离定义为簇与簇之间数据对象的最短距离。自底向上法的代表算法是AGNES(AGglomerativeNESing)算法。

    2)自顶向下法。

    该方法在一开始所有个体都属于一个簇,然后逐渐细分为更小的簇,直到最终每个数据对象都在不同的簇中,或者达到某个终止条件为止。自顶向下法的代表算法是 DIANA(DivisiveANAlysis)算法。

    基于层次的聚类算法的主要优点包括,距离和规则的相似度容易定义,限制少,不需要预先制定簇的个数,可以发现簇的层次关系。基于层次的聚类算法的主要缺点包括,计算复杂度太高,奇异值也能产生很大影响,算法很可能聚类成链状。

    3. 基于密度的聚类方法

    基于密度的聚类方法的主要目标是寻找被低密度区域分离的高密度区域。与基于距离的聚类算法不同的是,基于距离的聚类算法的聚类结果是球状的簇,而基于密度的聚类算法可以发现任意形状的簇。

    基于密度的聚类方法是从数据对象分布区域的密度着手的。如果给定类中的数据对象在给定的范围区域中,则数据对象的密度超过某一阈值就继续聚类。

    这种方法通过连接密度较大的区域,能够形成不同形状的簇,而且可以消除孤立点和噪声对聚类质量的影响,以及发现任意形状的簇,如图 3 所示。

    基于密度的聚类方法中最具代表性的是 DBSAN 算法、OPTICS 算法和 DENCLUE 算法。 图 2 是基于层次的聚类算法的示意图,上方是显示的是 AGNES 算法的步骤,下方是 DIANA 算法的步骤。这两种方法没有优劣之分,只是在实际应用的时候要根据数据特点及想要的簇的个数,来考虑是自底而上更快还是自顶而下更快。

    密度聚类算法示意
    图 3  密度聚类算法示意

    4. 基于网格的聚类方法

    基于网格的聚类方法将空间量化为有限数目的单元,可以形成一个网格结构,所有聚类都在网格上进行。基本思想就是将每个属性的可能值分割成许多相邻的区间,并创建网格单元的集合。每个对象落入一个网格单元,网格单元对应的属性空间包含该对象的值,如图 4 所示。

    基于网格的聚类算法示意
    图 4  基于网格的聚类算法示意

    基于网格的聚类方法的主要优点是处理速度快,其处理时间独立于数据对象数,而仅依赖于量化空间中的每一维的单元数。这类算法的缺点是只能发现边界是水平或垂直的簇,而不能检测到斜边界。另外,在处理高维数据时,网格单元的数目会随着属性维数的增长而成指数级增长。

    5. 基于模型的聚类方法

    基于模型的聚类方法是试图优化给定的数据和某些数学模型之间的适应性的。该方法给每一个簇假定了一个模型,然后寻找数据对给定模型的最佳拟合。假定的模型可能是代表数据对象在空间分布情况的密度函数或者其他函数。这种方法的基本原理就是假定目标数据集是由一系列潜在的概率分布所决定的。

    图 5 对基于划分的聚类方法和基于模型的聚类方法进行了对比。左侧给出的结果是基于距离的聚类方法,核心原则就是将距离近的点聚在一起。右侧给出的基于概率分布模型的聚类方法,这里采用的概率分布模型是有一定弧度的椭圆。

    图 5 中标出了两个实心的点,这两点的距离很近,在基于距离的聚类方法中,它们聚在一个簇中,但基于概率分布模型的聚类方法则将它们分在不同的簇中,这是为了满足特定的概率分布模型。

    聚类方法对比示意
    图 5  聚类方法对比示意

    在基于模型的聚类方法中,簇的数目是基于标准的统计数字自动决定的,噪声或孤立点也是通过统计数字来分析的。基于模型的聚类方法试图优化给定的数据和某些数据模型之间的适应性。

    推荐学习目录:54.聚类分析简介
    55.k-means聚类算法

    展开全文
  • 基于k-means聚类分析房价问题(昆明房价)(源码+实验报告)。其中包含爬虫、聚类分析、数据可视化等源码,以及实验报告。采用python进行编程,对链家网资源进行爬取和分析
  • 可以用于做不基因组学 转录组学和 蛋白组学 等的聚类分析,热图
  • 基于网格聚类方法中使用离散小波变换对数据聚类进行聚类分析 聚类
  • 聚类分析

    2021-01-07 15:21:35
    聚类分析一、聚类的关键:距离二、K-means聚类算法三、聚类的注意事项聚类好坏的评估方法1、技术上的方法2、业务上的方法连续型数据标准化分类型数据标准化 一、聚类的关键:距离 二、K-means聚类算法 三、聚类的...
  • 聚类分析方法

    2018-07-30 14:52:37
    聚类分析方法,聚类分析方法,聚类分析方法,聚类分析方法,聚类分析方法,
  • 运用scikit-learn库进行聚类分析

    千次阅读 2019-02-21 21:28:18
    运用scikit-learn库进行聚类分析一、 k-means聚类算法(一)k-means算法(二)使用肘方法确定簇的最佳数量(三)使用轮廓图定量分析聚类质量二、层次聚类(一) 普通层次聚类步骤(二)通过scikit-learn 进行层次...


    聚类分析常用的方法有 k-means聚类算法、 层次聚类算法、DBSCAN(基于空间密度的聚类算法)等,本文就这三种方法对聚类分析进行简单介绍。

    一、 k-means聚类算法

    (一)k-means算法

    # 创建数据集
    from sklearn.datasets import make_blobs
    # n_features = 2设置X特征数量
    X,y = make_blobs(n_samples = 150, n_features = 2, centers = 3, cluster_std = 0.5, shuffle = True, random_state = 0)
    import matplotlib.pyplot as plt
    # 使文字可以展示
    plt.rcParams['font.sans-serif'] = ['SimHei']
    # 使负号可以展示
    plt.rcParams['axes.unicode_minus'] = False
    
    plt.scatter(X[:,0], X[:,1], c = 'blue', marker = 'o',  s = 50)
    plt.grid()
    plt.show()
    
    # 使用k-means进行聚类
    from sklearn.cluster import KMeans
    # tol = 1e-04设置容忍度
    # n_clusters = 3设置的簇的数量
    km = KMeans(n_clusters = 3, init = 'random',n_init = 10, max_iter = 300, tol = 1e-04, random_state = 0)
    y_km = km.fit_predict(X)
    
    # k-means++进行聚类
    plt.scatter(X[y_km == 0, 0], X[y_km == 0, 1], s = 50, c = 'lightgreen', marker = 's', label = '簇 1')
    plt.scatter(X[y_km == 1, 0], X[y_km == 1, 1], s = 50, c = 'orange', marker = 'o', label = '簇 2')
    plt.scatter(X[y_km == 2, 0], X[y_km == 2, 1], s = 50, c = 'lightblue', marker = 'v', label = '簇 3')
    plt.scatter(km.cluster_centers_[:,0], km.cluster_centers_[:,1], s = 250, marker = '*', c = 'red', label = '中心点')
    plt.legend()
    plt.grid()
    plt.show()
    

    在这里插入图片描述

    (二)使用肘方法确定簇的最佳数量

    distortions = []
    for i in range(1,11):
        km = KMeans(n_clusters = i, init = 'k-means++', n_init = 10, max_iter = 300, random_state = 0)
        km.fit(X)
        # km.inertia_ 获取每次聚类后误差
        distortions.append(km.inertia_)
    
    plt.plot(range(1,11), distortions, marker = 'o')
    plt.xlabel('簇数量')
    plt.ylabel('误差')
    plt.show()
    

    在这里插入图片描述

    (三)使用轮廓图定量分析聚类质量

    km = KMeans(n_clusters = 3, init = 'k-means++', n_init = 10, max_iter = 300, tol = 1e-04, random_state = 0)
    y_km = km.fit_predict(X)
    
    import numpy as np
    from matplotlib import cm
    # 导入轮廓库
    from sklearn.metrics import silhouette_samples
    cluster_labels = np.unique(y_km)
    n_clusters = cluster_labels.shape[0]
    silhouette_vals = silhouette_samples(X, y_km, metric = 'euclidean')
    y_ax_lower, y_ax_upper = 0,0
    yticks = []
    for i, c in enumerate(cluster_labels):
        c_silhouette_vals = silhouette_vals[y_km==c]
        c_silhouette_vals.sort()
        y_ax_upper += len(c_silhouette_vals)
        color = cm.jet(i / n_clusters)
        plt.barh(range(y_ax_lower, y_ax_upper), c_silhouette_vals, height=1.0, 
                edgecolor='none', color=color)
    
        yticks.append((y_ax_lower + y_ax_upper) / 2)
        y_ax_lower += len(c_silhouette_vals)
        
    silhouette_avg = np.mean(silhouette_vals)
    plt.axvline(silhouette_avg, color="red", linestyle="--") 
    
    plt.yticks(yticks, cluster_labels + 1)
    plt.ylabel('簇')
    plt.xlabel('轮廓系数')
    plt.show()
    

    在这里插入图片描述

    二、层次聚类

    (一) 普通层次聚类步骤

    # 创建样本
    import pandas as pd
    import numpy as np
    np.random.seed(123)
    variables = ['X', 'Y', 'Z']
    labels = ['ID_0', 'ID_1', 'ID_2', 'ID_3', 'ID_4']
    X = np.random.random_sample([5,3])*10
    df = pd.DataFrame(X, columns = variables, index = labels)
    df
    

    在这里插入图片描述

    # 基于距离矩阵进行层次聚类
    from scipy.spatial.distance import pdist, squareform
    row_dist = pd.DataFrame(squareform(pdist(df, metric = 'euclidean')), columns = labels, index = labels)
    row_dist
    

    在这里插入图片描述

    # 聚类正确的方式-1
    from scipy.cluster.hierarchy import linkage
    row_clusters = linkage(pdist(df, metric='euclidean'), method='complete')
    pd.DataFrame(row_clusters, 
                 columns=['row label 1', 'row label 2', 'distance', 'no. of items in clust.'],
                 index=['cluster %d' %(i+1) for i in range(row_clusters.shape[0])])
    

    在这里插入图片描述

    # 聚类正确的方式-2
    row_clusters = linkage(df.values, method='complete', metric='euclidean')
    pd.DataFrame(row_clusters, 
                 columns=['row label 1', 'row label 2', 'distance', 'no. of items in clust.'],
                 index=['cluster %d' %(i+1) for i in range(row_clusters.shape[0])])
    

    在这里插入图片描述

    # 画树形图
    from scipy.cluster.hierarchy import dendrogram
    
    # make dendrogram black (part 1/2)
    # from scipy.cluster.hierarchy import set_link_color_palette
    # set_link_color_palette(['black'])
    
    row_dendr = dendrogram(row_clusters, 
                           labels=labels,
                           # make dendrogram black (part 2/2)
                           # color_threshold=np.inf
                           )
    plt.ylabel('欧氏距离')
    plt.show()
    

    在这里插入图片描述

    # 树状图与热力图关联
    # 画树状图
    fig = plt.figure(figsize = (8,8))
    # 两个图形之间的距离(宽和高)、图形本身宽和高
    axd = fig.add_axes([0.09, 0.1, 0.2, 0.6])
    row_dendr = dendrogram(row_clusters, orientation = 'left')
    # 重新排列数据
    df_rowclust = df.ix[row_dendr['leaves'][::-1]]
    # 画热力图
    axm =fig.add_axes([0.23, 0.1, 0.6, 0.6])
    cax = axm.matshow(df_rowclust, interpolation = 'nearest', cmap = 'hot_r')
    
    # # 移除树状图的轴
    axd.set_xticks([])
    axd.set_yticks([])
    for i in axd.spines.values():
            i.set_visible(False)
    # 加上颜色棒
    fig.colorbar(cax)
    # 设置热力图坐标轴
    axm.set_xticklabels([''] + list(df_rowclust.columns))
    axm.set_yticklabels([''] + list(df_rowclust.index))
    plt.show()
    

    在这里插入图片描述

    (二)通过scikit-learn 进行层次分析

    from sklearn.cluster import AgglomerativeClustering
    ac = AgglomerativeClustering(n_clusters = 2, affinity = 'euclidean', linkage = 'complete')
    labels = ac.fit_predict(X)
    print('Cluster labels: % s' % labels)
    

    三、 使用DBSCAN(基于空间密度的聚类算法)划分高密度区域

    # 创建月半形的数据集
    from sklearn.datasets import make_moons
    
    X, y = make_moons(n_samples=200, noise=0.05, random_state=0)
    # 可视化
    plt.scatter(X[:,0], X[:,1])
    plt.show()
    

    在这里插入图片描述

    # 比较k-means++聚类, 层次聚类 和 DBSCAN 的区别
    # 设置图形
    f, (ax1, ax2) = plt.subplots(1, 2, figsize=(8,3))
    # k_means++聚类
    km = KMeans(n_clusters=2, random_state=0)
    y_km = km.fit_predict(X)
    # 可视化
    ax1.scatter(X[y_km==0,0], X[y_km==0,1], c='lightblue', marker='o', s=40, label='簇 1')
    ax1.scatter(X[y_km==1,0], X[y_km==1,1], c='red', marker='s', s=40, label='簇 2')
    ax1.set_title('K-means 聚类')
    
    # 层次聚类
    ac = AgglomerativeClustering(n_clusters=2, affinity='euclidean', linkage='complete')
    y_ac = ac.fit_predict(X)
    # 可视化
    ax2.scatter(X[y_ac==0,0], X[y_ac==0,1], c='lightblue', marker='o', s=40, label='簇 1')
    ax2.scatter(X[y_ac==1,0], X[y_ac==1,1], c='red', marker='s', s=40, label='簇 2')
    ax2.set_title('层次聚类')
    
    plt.legend()
    plt.show()
    

    在这里插入图片描述

    # DBSCAN聚类
    from sklearn.cluster import DBSCAN
    
    db = DBSCAN(eps=0.2, min_samples=5, metric='euclidean')
    y_db = db.fit_predict(X)
    # 可视化
    plt.scatter(X[y_db==0,0], X[y_db==0,1], c='lightblue', marker='o', s=40, label='簇 1')
    plt.scatter(X[y_db==1,0], X[y_db==1,1], c='red', marker='s', s=40, label='簇 2')
    plt.legend()
    plt.show()
    

    在这里插入图片描述

    展开全文
  • 对指定数据集进行聚类分析,选择适当的聚类算法,编写程序实现,提交程序和结果报告。 数据集: Iris Data Set(见附件一) ,根据花的属性进行聚类。 数据包括四个属性:sepal length花萼长度,sepal width花萼宽度...
  • 使用mclust进行聚类分析

    千次阅读 2019-11-09 16:05:46
    mclust(Model-based clustering) 能够基于高斯有限混合模型进行聚类...还提供了一类函数,整合了基于模型的层次聚类,混合估计的EM算法,用于聚类、密度估计和判别分析中综合性策略的贝叶斯信息判别标准。最后还有一...

    mclust(Model-based clustering) 能够基于高斯有限混合模型进行聚类,分类以及密度估计(density estimation)。对于具有各种协方差结构的高斯混合模型,它提供了根据EM算法的参数预测函数。它也提供了根据模型进行模拟的函数。还提供了一类函数,整合了基于模型的层次聚类,混合估计的EM算法,用于聚类、密度估计和判别分析中综合性策略的贝叶斯信息判别标准。最后还有一类函数能够对聚类,分类和密度估计结果中的拟合模型进行可视化展示。

    简而言之,mclust在R语言上实现了基于高斯有限混合模型聚类分类密度估计分析,并且还有专门的可视化函数展示分析结果。

    mclust功能相似的其他R包: 'Rmixmod', 'mixture', 'EMCluster', 'mixtools', 'bgmm', 'flexmix'

    安装和加载

    在已有的R语言的基础上,只需要运行如下代码即可

    # 安装
    install.packages("mclust")
    # 加载
    library(mclust)

    聚类实战

    以一个例子来介绍一下如何使用mclust进行聚类分析。我们得要先加载一个来自于R包'gclus'的数据集'wine',该数据集有178行,分别是不同区域的品种葡萄, 14列,其中后13列是化学分析的测量值。我们的目标是将其进行分类。

    第一步: 加载数据集

    install.packages("gclus")
    data("wine", package = "gclus")
    dim(wine)

    第二步 : 使用Mclust做聚类分析. Mclust主要功能就是分析当前的提供的数据是由什么统计模型

    # 第一列和聚类无关
    X <- data.matrix(wine[,-1])
    mod <- Mclust(X)

    直接在交互行输入mod会得到如下信息

    'Mclust' model object: (VVE,3) 
    
    Available components: 
     [1] "call"           "data"           "modelName"     
     [4] "n"              "d"              "G"             
     [7] "BIC"            "bic"            "loglik"        
    [10] "df"             "hypvol"         "parameters"    
    [13] "z"              "classification" "uncertainty" 

    这里需要对结果稍作解释,第一行告诉我们'Mclust'以VVE模型将数据分为3类。第3行开始,它告诉我们'Mclust'的输出结果中包含了如下内容,我们可以通过$来提取。举个例子,我们提取Mclust的聚类结果和已知结果进行比较

    table(wine$Class, mod$classification)
    # 如下是输出信息
         1  2  3
      1 59  0  0
      2  0 69  2
      3  0  0 48
    # adjustedRandIndex:评估聚类效果
    adjustedRandIndex(wine$Class, mod$classification)

    从结果中,我们发现仅有2例没有正确聚类,说明Mclust的效果很好。但是随之而来的问题是,Mclust如何挑选模型以及它为什么认为聚成3类比较合适呢?我们可以根据什么信息进行模型选择呢?

    模型选择

    为了解答上面的问题,我们需要稍微了解点Mclust的原理。和其他基于模型的方法类似,Mclust假设观测数据是一个或多个混合高斯分布的抽样结果,Mclust就需要根据现有数据去推断最优可能的模型参数,以及是由 q几组分布抽样而成。mclust一共提供了14种模型(见下表),可以用?mclustModelNames可以查看mclust提供的所有模型。

    模型总结

    为了对模型有一个直观的理解,mclust提供了这些模型数据分为三组前提下在二维中的形状。

    二维的模型形状

    继续回到之前的问题,Mclust如何确定模型和确定分组数目。之前我们调用Mclust时,除了必须设置的输入参数,没有修改其他参数。其实Mclust可以设置的参数不少,和问题直接相关的是如下两个参数

    • G: 分组数,默认情况下是1:9
    • modelNames: 待拟合的模型,默认使用所有14种。

    也就是,Mclust默认得到14种模型1到9组的分析结果,然后根据一定的标准选择最终的模型和分组数。

    Mclust提供了两种方法用于评估不同模型在不同分组下的可能性

    • BIC( Bayesian Information Criterion ): 贝叶斯信息判别标准
    • ICL( integrated complete-data likelihood ): 综合完全数据可能性

    Mclust默认用的就是BIC,因此我们可以用plot.Mclust绘制其中BIC变化曲线

    plot.Mclust(mod, what = "BIC", 
         ylim = range(mod$BIC[,-(1:2)], na.rm = TRUE), 
         legendArgs = list(x = "bottomleft", cex =0.7))

    BIC曲线

    Mclucst会选择其中BIC最大的模型和分组作为最终的结果。

    此外我们可以用MclustBICMclustICL分别进行计算

    par(mfrow=c(1,2))
    BIC <- mclustBIC(X)
    ICL <- mclustICL(X)

    从中选择最佳的模型分组和模型作为输入

    mod2 <- Mclust(X, G = 3, modelNames = "VVE", x=BIC)

    可视化展示

    mclust为不同的输出都提供了对应的泛型函数用于可视化,你需要用plot就能得到结果。例如对之前的聚类结果在二维空间展示

    drmod <- MclustDR(mod, lambda = 1)
    plot(drmod)
    # 会提供一些列选项让你选择, 展示不同的结果
    # Dimension reduction for model-based clustering and classification plots: 
    
    1: scatterplot
    2: contour
    3: classification
    4: boundaries
    5: density
    6: evalues
    # 以1为例

    plot

    mclust还有很多其他功能,例如密度估计,自举推断(Bootstrap inference),这些内容建议阅读"mclust 5: Clustering, Classification and Density Estimation Using Gaussian Finite Mixture Models "

    推荐阅读

    想要更好的学习这个R包的使用,还需要去学习如下概念

    • EM算法( expectation–maximization algorithm )
    • BIC
    • MLE(maximum likelihood estimator)

    ----

    版权声明:本博客所有文章除特别声明外,均采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。

    扫码即刻交流

    展开全文
  • 聚类分析符合“物以类聚,人以群分”的原则,它把相似性大的样本聚集为一个类型,在特征空间里占据着一个局部区域。每个局部区域都形成一个聚合中心,聚合中心代表相应类型。这里以水经注万能地图下载器下载的谷歌的...
       聚类分析符合“物以类聚,人以群分”的原则,它把相似性大的样本聚集为一个类型,在特征空间里占据着一个局部区域。每个局部区域都形成一个聚合中心,聚合中心代表相应类型。这里以水经注万能地图下载器下载的谷歌的卫星地图为例,通过Erdas介绍一下聚类分析。
      步骤
      第一步:下载谷歌卫星地图
      打开水经注万能地图下载器,切换地图到谷歌地球,框选下载需要分析的区域卫星图并将其导出为img格式(图1),为了防止使用出现问题,还是将其放置在一个英文目录下的文件夹内。



      图1
      第二步:打开分析功能
      在Erdas主菜单上点击“Interpreter”按钮,弹出“Image Interpreter”对话框,在对话框内点击“GIS Analysis”,在弹出的对话框内点击“Clump”(图2)即可打开Clump模块(图3)。



      图2

      图3
      第三步:聚类分析
      在“Clump”对话框内设置好需要聚类分析的影像(Input File)和聚类分析后保存的影像(Output File)等相关参数(图4),点击“OK”即可开始进行聚类分析。分析完成之后新建一个Viewer,将分析结果加载进来,可以看到效果如图5。



      图4

      图5
      结语
      到此就完成了使用Erdas对万能地图下载器下载的卫星地图进行聚类分析,需要注意的是,最好下载WGS84坐标的地图(比如谷歌地球卫星地图)进行分析,如果是墨卡托坐标系的地图可能会报错,有兴趣的朋友可以自己试试。
    展开全文
  • 用 Python 进行系统聚类分析

    千次阅读 2020-07-22 21:39:36
    进行机器学习时,我们往往要对数据进行聚类分析,聚类,说白了就是把相似的样品点/数据点进行归类,相似度高的样品点会放在一起,这样一个样本就会被分成几类。而聚类分析也有很多种方法,比如分解...
  • 使用Python进行聚类分析

    万次阅读 2016-04-22 16:03:19
    1、我们使用Scipy中的聚类包进行聚类分析,下面是一个小例子: 找出谁是学霸,谁不是,也就是聚成两类,下面是实验结果: 由结果可以看出大明、小明、大朋、大萌是学霸! 详细说明可参见点击...
  • R语言聚类分析-kmeans聚类分析实战

    万次阅读 多人点赞 2018-04-12 22:47:17
    这次分享的是在工作中经常用到的聚类分析,只要是工作中涉及到客户分群,哪能不用到聚类分析呢?聚类分析涉及的方法有层次聚类、kmeans聚类、密度聚类等,这里主要介绍最容易上手的kmeans聚类算法,上手就是王道!...
  • 【数据挖掘】使用R语言进行聚类分析

    万次阅读 多人点赞 2018-04-09 15:29:15
    本文主要介绍在R语言中使用k-means和K-Medoids进行聚类分析的方法。一、首先介绍下聚类分析中主要的算法:l K-均值聚类(K-Means) 十大经典算法l K-中心点聚类(K-Medoids)l 密度聚类(DBSCAN)l 系谱聚类...
  • matlab聚类分析详解-matlab聚类分析.rar 愿与大家分享 所含文件: Figure10.jpg
  • 如何对用户进行聚类分析

    千次阅读 2018-04-22 21:46:23
    如何对用户进行聚类分析? - 微调的回答 - 知乎 https://www.zhihu.com/question/19982667/answer/347473295

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 97,681
精华内容 39,072
关键字:

怎样进行聚类分析