zoukankan      html  css  js  c++  java
  • Python 实现分层聚类算法

    '''
    1.将所有样本都看作各自一类
    2.定义类间距离计算公式
    3.选择距离最小的一堆元素合并成一个新的类
    4.重新计算各类之间的距离并重复上面的步骤
    5.直到所有的原始元素划分成指定数量的类
    
    程序要点:
    1.生成测试数据
        sklearn.datasets.make_blobs
    2.系统聚类算法
        sklearn.cluster.AgglomerativeClustering
    3.必须满足该条件不然会报错(自定义函数中的参数)
        assert 1 <= n_clusters <= 4
    4.颜色,红绿蓝黄
    r g b y
    5. o * v +
        散点图的形状
    6.[] 内可以为条件表达式,输出数组中满足条件的数据
        data[predictResult == i]
    7.访问 x 轴,y 轴坐标
        subData[:,0] subData[:,1]
    8.plt.scatter(x轴,y轴,c,marker,s=40)
        colors = "rgby"
        markers = "o*v+"
        c 颜色 c=colors[i]
        marker 形状 marker=markers[i]
    9.生成随机数据并返回样本点及标签
    data,labels = make_blobs(n_samples=200,centers=4)
        make_blobs 为 sklearn.datasets.make_blobs 库
        n_samples 为需要的样本数量
        centers 为标签数
    '''
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.datasets import make_blobs
    from sklearn.cluster import AgglomerativeClustering
    def AgglomerativeTest(n_clusters):
        assert 1 <= n_clusters <= 4
        predictResult = AgglomerativeClustering(
            n_clusters=n_clusters,
            affinity='euclidean',
            linkage='ward'
        ).fit_predict(data)
        # 定义绘制散点图时使用的颜色和散点符号
        colors = "rgby"
        markers = "o*v+"
        # 依次使用不同的颜色和符号绘制每个类的散点图
        for i in range(n_clusters):
            subData = data[predictResult == i]
            plt.scatter(
                subData[:,0],
                subData[:,1],
                c = colors[i],
                marker = markers[i],
                s = 40
            )
        plt.show()
    # 生成随机数据,200个点,4类标签,返回样本及标签
    data , labels = make_blobs(n_samples=200,centers=4)
    print(data)
    AgglomerativeTest(2)

    2020-04-10

  • 相关阅读:
    Spring MVC异常处理
    Spring MVC 数据校验
    Spring MVC 拦截器(Interceptor)
    Spring MVC 表单标签库
    Spring MVC 数据格式化(Formatter)
    Spring MVC 类型转换器(Converter)
    Spring MVC @ModelAttribute注解
    Spring MVC @Autowired和@Service注解
    如何在Storyboard中使用Scroll view
    学好Python的五本书
  • 原文地址:https://www.cnblogs.com/hany-postq473111315/p/12671890.html
Copyright © 2011-2022 走看看