国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python基础教程 > python聚类算法是什么

python聚类算法是什么

python聚类算法

头像

小妮浅浅

2021-09-03 10:33:135091浏览 · 0收藏 · 0评论

说明

1、聚类常用于数据探索或挖掘前期,在没有先验经验的背景下进行探索性分析。

也适用于样本量大的数据预处理。

2、常用的聚类算法分为基于划分、层次、密度、网格、统计、模型等类型的算法。典型算法包括K均值(经典聚类算法)、DBSCAN、两步聚类等。

聚类分析可以解决的问题包括:数据集可以分为几类,每个类别有多少样本,不同类别中每个变量的强弱关系,不同类别的典型特征是什么。

聚类算法之K均值实例

import numpy as np
import matplotlib.pyplot as plt
 
# 两点距离
def distance(e1, e2):
    return np.sqrt((e1[0]-e2[0])**2+(e1[1]-e2[1])**2)
 
# 集合中心
def means(arr):
    return np.array([np.mean([e[0] for e in arr]), np.mean([e[1] for e in arr])])
 
# arr中距离a最远的元素,用于初始化聚类中心
def farthest(k_arr, arr):
    f = [0, 0]
    max_d = 0
    for e in arr:
        d = 0
        for i in range(k_arr.__len__()):
            d = d + np.sqrt(distance(k_arr[i], e))
        if d > max_d:
            max_d = d
            f = e
    return f
 
# arr中距离a最近的元素,用于聚类
def closest(a, arr):
    c = arr[1]
    min_d = distance(a, arr[1])
    arr = arr[1:]
    for e in arr:
        d = distance(a, e)
        if d < min_d:
            min_d = d
            c = e
    return c
 
 
if __name__=="__main__":
    ## 生成二维随机坐标,手上有数据集的朋友注意,理解arr改起来就很容易了
    ## arr是一个数组,每个元素都是一个二元组,代表着一个坐标
    ## arr形如:[ (x1, y1), (x2, y2), (x3, y3) ... ]
    arr = np.random.randint(100, size=(100, 1, 2))[:, 0, :]
 
    ## 初始化聚类中心和聚类容器
    m = 5
    r = np.random.randint(arr.__len__() - 1)
    k_arr = np.array([arr[r]])
    cla_arr = [[]]
    for i in range(m-1):
        k = farthest(k_arr, arr)
        k_arr = np.concatenate([k_arr, np.array([k])])
        cla_arr.append([])
 
    ## 迭代聚类
    n = 20
    cla_temp = cla_arr
    for i in range(n):    # 迭代n次
        for e in arr:    # 把集合里每一个元素聚到最近的类
            ki = 0        # 假定距离第一个中心最近
            min_d = distance(e, k_arr[ki])
            for j in range(1, k_arr.__len__()):
                if distance(e, k_arr[j]) < min_d:    # 找到更近的聚类中心
                    min_d = distance(e, k_arr[j])
                    ki = j
            cla_temp[ki].append(e)
        # 迭代更新聚类中心
        for k in range(k_arr.__len__()):
            if n - 1 == i:
                break
            k_arr[k] = means(cla_temp[k])
            cla_temp[k] = []
 
    ## 可视化展示
    col = ['HotPink', 'Aqua', 'Chartreuse', 'yellow', 'LightSalmon']
    for i in range(m):
        plt.scatter(k_arr[i][0], k_arr[i][1], linewidth=10, color=col[i])
        plt.scatter([e[0] for e in cla_temp[i]], [e[1] for e in cla_temp[i]], color=col[i])
    plt.show()

以上就是python聚类算法的介绍,希望对大家有所帮助。更多Python学习指路:python基础教程

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

二人努力生猴子免费观看| 公交车上双乳被老汉揉搓玩下载| 女孩发育图片(真人)| 日剧《轮流取珠》| 美国禁忌结局1-4| .公与媳2电视剧免费| 国产成人久久爽AAA影视| 人狗大战6免费观看正版| 《吃入铃铛》双男主全文免费阅读| 《魅魔之耻》1~4集免费看| 《女教师的味道3》在线观看| 成都私人情侣免费看电视剧的软件 | 妈妈与儿子高清免费版电视剧| 孤男寡女免费观看高清电视剧狂飙| 茄子视频| 妈妈がだけの心に漂う| 高压监狱在线观看完整免费高清满.| 暴躁少女CSGO高清大图特点| 斗破苍穹年番免费高清观看| 宝贝别忍着喷出来嗯啊哦漫画| 原声吻戏视频| 汆肉的日常视频| 他的大手在秘密花园小说免费阅读 | 日本双人xX00吃奶视频| 两人一起做AJ的视频教程| 《玉尺经》完整版| 《瞒着丈夫说在公司加班》中字| 黄金网站软件APP| 把她日出水了好紧大爽了视频| 学长让我夹跳D上课不能掉| 不扣钮的女孩| 坤坤寒进桃子里在线看歌词| 荫蒂被三个男人添| 《警花交换做爰》| 二人生猴子全程免费| 打扑克不盖被子| 小辣椒3美国伦理| 美女热舞| 少女的秘密24集| 小婕子太紧了太深了| 《男医生的特殊治疗》