91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

100天搞定機(jī)器學(xué)習(xí):day54 聚類系列:層次聚類原理及案例

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-10 21:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

幾張GIF理解K-均值聚類原理
k均值聚類數(shù)學(xué)推導(dǎo)與python實(shí)現(xiàn)
前文說(shuō)了k均值聚類,他是基于中心的聚類方法,通過(guò)迭代將樣本分到k個(gè)類中,使每個(gè)樣本與其所屬類的中心或均值最近。

今天我們看一下無(wú)監(jiān)督學(xué)習(xí)之聚類方法的另一種算法,層次聚類:

層次聚類前提假設(shè)類別直接存在層次關(guān)系,通過(guò)計(jì)算不同類別數(shù)據(jù)點(diǎn)間的相似度來(lái)創(chuàng)建一棵有層次的嵌套聚類樹(shù)。在聚類樹(shù)中,不同類別的原始數(shù)據(jù)點(diǎn)是樹(shù)的最低層,樹(shù)的頂層是一個(gè)聚類的根節(jié)點(diǎn)。創(chuàng)建聚類樹(shù)有聚合聚類(自下而上合并)和分裂聚類(自上而下分裂)兩種方法,分裂聚類一般很少使用,不做介紹。

聚合聚類

聚合聚類具體過(guò)程

對(duì)于給定的樣本集合,開(kāi)始將每個(gè)樣本分到一個(gè)類,然后再按照一定的規(guī)則(比如類間距最小),將滿足規(guī)則的類進(jìn)行合并,反復(fù)進(jìn)行,直到滿足停止條件。聚合聚類三要素有:

①距離或相似度(閔可夫斯基距離,相關(guān)系數(shù)、夾角余弦)

②合并規(guī)則(最長(zhǎng)/短距離,中心距離,平均距離)

③停止條件(類個(gè)數(shù)或類直徑達(dá)到或超過(guò)閾值)

聚合聚類算法

輸入:n個(gè)樣本組成的樣本集合及樣本間距離

輸出:樣本集合的層次化聚類

(1)計(jì)算n個(gè)樣本兩兩之間歐氏距離{dij}

(2)構(gòu)造n個(gè)類,每個(gè)類只包含一個(gè)樣本

(3)合并類間距最小的兩個(gè)類,構(gòu)造一個(gè)新類

(4)計(jì)算新類與其他各類的距離,若類的個(gè)數(shù)為1,終止計(jì)算,否則回到(3)

動(dòng)畫表示:

python實(shí)現(xiàn)及案例

import queue
import math
import copy
import numpy as np
import matplotlib.pyplot as plt

class clusterNode:

def __init__(self, value, id=[],left=None, right=None, distance=-1,  count=-1, check = 0):
    '''
    value: 該節(jié)點(diǎn)的數(shù)值,合并節(jié)點(diǎn)時(shí)等于原來(lái)節(jié)點(diǎn)值的平均值
    id:節(jié)點(diǎn)的id,包含該節(jié)點(diǎn)下的所有單個(gè)元素
    left和right:合并得到該節(jié)點(diǎn)的兩個(gè)子節(jié)點(diǎn)
    distance:兩個(gè)子節(jié)點(diǎn)的距離
    count:該節(jié)點(diǎn)所包含的單個(gè)元素個(gè)數(shù)
    check:標(biāo)識(shí)符,用于遍歷時(shí)記錄該節(jié)點(diǎn)是否被遍歷過(guò)
    '''
    self.value = value
    self.id = id
    self.left = left
    self.right = right
    self.distance = distance
    self.count = count
    self.check = check

def show(self):
    #顯示節(jié)點(diǎn)相關(guān)屬性
    print(self.value,' ',self.left.id if self.left!=None else None,' ',/
        self.right.id if self.right!=None else None,' ',self.distance,' ',self.count)

class hcluster:

def distance(self,x,y):
    #計(jì)算兩個(gè)節(jié)點(diǎn)的距離,可以換成別的距離
    return math.sqrt(pow((x.value-y.value),2))

def minDist(self,dataset):
    #計(jì)算所有節(jié)點(diǎn)中距離最小的節(jié)點(diǎn)對(duì)
    mindist = 1000
    for i in range(len(dataset)-1):
        if dataset[i].check == 1:
            #略過(guò)合并過(guò)的節(jié)點(diǎn)
            continue
        for j in range(i+1,len(dataset)):
            if dataset[j].check == 1:
                continue
            dist = self.distance(dataset[i],dataset[j])
            if dist < mindist:
                mindist = dist
                x, y = i, j
    return mindist, x, y
    #返回最小距離、距離最小的兩個(gè)節(jié)點(diǎn)的索引

def fit(self,data):
    dataset = [clusterNode(value=item,id=[(chr(ord('a')+i))],count=1) for i,item in enumerate(data)]
    #將輸入的數(shù)據(jù)元素轉(zhuǎn)化成節(jié)點(diǎn),并存入節(jié)點(diǎn)的列表
    length = len(dataset)
    Backup = copy.deepcopy(dataset)
    #備份數(shù)據(jù)
    while(True):
        mindist, x, y = self.minDist(dataset)
        dataset[x].check = 1
        dataset[y].check = 1
        tmpid = copy.deepcopy(dataset[x].id)
        tmpid.extend(dataset[y].id)
        dataset.append(clusterNode(value=(dataset[x].value+dataset[y].value)/2,id=tmpid,/
            left=dataset[x],right=dataset[y],distance=mindist,count=dataset[x].count+dataset[y].count))
        #生成新節(jié)點(diǎn)
        if len(tmpid) == length:
            #當(dāng)新生成的節(jié)點(diǎn)已經(jīng)包含所有元素時(shí),退出循環(huán),完成聚類
            break
    for item in dataset:
        item.show()
    return dataset

def show(self,dataset,num):
    plt.figure(1)
    showqueue = queue.Queue()
    #存放節(jié)點(diǎn)信息的隊(duì)列
    showqueue.put(dataset[len(dataset) - 1])
    #存入根節(jié)點(diǎn)
    showqueue.put(num)
    #存入根節(jié)點(diǎn)的中心橫坐標(biāo)
    while not showqueue.empty():
        index = showqueue.get()
        #當(dāng)前繪制的節(jié)點(diǎn)
        i = showqueue.get()
        #當(dāng)前繪制節(jié)點(diǎn)中心的橫坐標(biāo)
        left = i - (index.count)/2
        right = i + (index.count)/2
        if index.left != None:
            x = [left,right]
            y = [index.distance,index.distance]
            plt.plot(x,y)
            x = [left,left]
            y = [index.distance,index.left.distance]
            plt.plot(x,y)
            showqueue.put(index.left)
            showqueue.put(left)
        if index.right != None:
            x = [right,right]
            y = [index.distance,index.right.distance]
            plt.plot(x,y)
            showqueue.put(index.right)
            showqueue.put(right)
    plt.show()

def setData(num):

#生成num個(gè)隨機(jī)數(shù)據(jù)
Data = list(np.random.randint(1,100,size=num))
return Data

if name == '__main__':

num = 20
dataset = setData(num)
h = hcluster()
resultset = h.fit(dataset)
h.show(resultset,num)

本文由博客一文多發(fā)平臺(tái) OpenWrite 發(fā)布!

審核編輯 黃昊宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    飛光電總部大廈正式啟用

    飛光電大廈位于平湖金融與現(xiàn)代服務(wù)業(yè)基地核心商圈,占地面積4,186平方米,總建筑面積40,519平方米,樓高99米,是面向未來(lái)的企業(yè)總部,集綜合辦公、總部運(yùn)營(yíng)、技術(shù)研發(fā)、商業(yè)配套等功能于一身
    的頭像 發(fā)表于 06-06 15:26 ?490次閱讀

    樂(lè)機(jī)器人與地瓜機(jī)器人達(dá)成戰(zhàn)略合作,聯(lián)合發(fā)布Aelos Embodied具身智能

    要聞4月19日,在CCF人形機(jī)器人與人工智能技術(shù)巡回研討會(huì)(武漢站)上,樂(lè)機(jī)器人與地瓜機(jī)器人達(dá)成戰(zhàn)略合作,雙方將基于RDKX5、RDKS100
    的頭像 發(fā)表于 04-24 22:07 ?575次閱讀
    樂(lè)<b class='flag-5'>聚</b><b class='flag-5'>機(jī)器</b>人與地瓜<b class='flag-5'>機(jī)器</b>人達(dá)成戰(zhàn)略合作,聯(lián)合發(fā)布Aelos Embodied具身智能

    網(wǎng)線超6與6的區(qū)別

    網(wǎng)線超6(Cat 6a)與6(Cat 6)的主要區(qū)別如下: 1. 傳輸性能 6網(wǎng)線(Cat 6): 支持最高250 MHz的帶寬。 適用于千兆以太網(wǎng)(1 Gbps),最大傳輸距離100
    的頭像 發(fā)表于 04-16 10:04 ?3492次閱讀

    **【技術(shù)干貨】Nordic nRF54系列芯片:傳感器數(shù)據(jù)采集與AI機(jī)器學(xué)習(xí)的完美結(jié)合**

    【技術(shù)干貨】nRF54系列芯片:傳感器數(shù)據(jù)采集與AI機(jī)器學(xué)習(xí)的完美結(jié)合 近期收到不少伙伴咨詢nRF54
    發(fā)表于 04-01 00:00

    速騰創(chuàng)第100萬(wàn)臺(tái)激光雷達(dá)下線,用于人形機(jī)器人?

    電子發(fā)燒友網(wǎng)綜合報(bào)道 數(shù)日前,RoboSense 速騰創(chuàng)成功交付了其第 100 萬(wàn)臺(tái)激光雷達(dá),訂單接收方為人形機(jī)器人(上海)有限公司。速騰創(chuàng)由此成為全球首家實(shí)現(xiàn)百萬(wàn)臺(tái)高線數(shù)激光雷達(dá)
    發(fā)表于 03-16 01:00 ?683次閱讀

    數(shù)據(jù)降維工具介紹——SpatialPCA

    現(xiàn)有常用的空間轉(zhuǎn)錄組降維方法,如主成分分析(principal component analysis,PCA)、非負(fù)矩陣分解(non-negative matrix factorization
    的頭像 發(fā)表于 02-07 11:19 ?625次閱讀
    數(shù)據(jù)降維<b class='flag-5'>聚</b><b class='flag-5'>類</b>工具介紹——SpatialPCA

    輝貿(mào)易”獲千萬(wàn)天使輪融資

    近日,“輝貿(mào)易”成功完成了1000萬(wàn)人民幣的天使輪融資,本輪融資由深圳市風(fēng)投創(chuàng)業(yè)投資有限公司領(lǐng)投。這一輪融資的注入,為“輝貿(mào)易”的未來(lái)發(fā)展注入了強(qiáng)勁的動(dòng)力。 據(jù)“輝貿(mào)易”相關(guān)負(fù)責(zé)人介紹,此次
    的頭像 發(fā)表于 01-02 11:15 ?735次閱讀

    超五網(wǎng)線與五網(wǎng)線區(qū)別

    100BASE-TX網(wǎng)絡(luò),即支持最大傳輸速率為100Mbps的快速以太網(wǎng)。 超五網(wǎng)線(Cat 5e) : 超五網(wǎng)線是
    的頭像 發(fā)表于 12-28 11:37 ?5237次閱讀

    樂(lè)機(jī)器人回應(yīng)華為合作傳聞

    近日,有關(guān)“華為特別選擇樂(lè)機(jī)器人作為人形機(jī)器人領(lǐng)域的本地生態(tài)合作伙伴,并計(jì)劃于2025年發(fā)布并實(shí)現(xiàn)一定規(guī)模量產(chǎn)”的消息在業(yè)界流傳。針對(duì)這一傳聞,樂(lè)
    的頭像 發(fā)表于 12-05 13:53 ?851次閱讀

    樂(lè)機(jī)器人回應(yīng)與華為合作傳聞:未發(fā)布相關(guān)信息

    近期,有傳聞稱華為特別選擇了樂(lè)機(jī)器人作為其人形機(jī)器人領(lǐng)域的本地生態(tài)合作伙伴,并計(jì)劃于2025年發(fā)布并實(shí)現(xiàn)一定規(guī)模的量產(chǎn)。然而,對(duì)于這一傳聞,樂(lè)機(jī)
    的頭像 發(fā)表于 12-04 11:21 ?1007次閱讀

    Java 枚舉與策略模式、函數(shù)式接口的結(jié)合:實(shí)現(xiàn)高內(nèi)低耦合的設(shè)計(jì)

    作者:京東物流 楊唯一 一、Java 枚舉 Java 枚舉是一個(gè)特殊的,一般表示一組常量,比如一年的 4 個(gè)季節(jié),一年的 12 個(gè)月份,一個(gè)星期的 7 ,方向有東南西北等。 我們?cè)跇I(yè)務(wù)需求開(kāi)發(fā)
    的頭像 發(fā)表于 11-21 14:06 ?640次閱讀

    使用CUDA-Q實(shí)現(xiàn)量子算法

    量子計(jì)算機(jī)能夠利用疊加、糾纏和干涉等量子特性,從數(shù)據(jù)中歸納出知識(shí)點(diǎn)并獲得洞察。這些量子機(jī)器學(xué)習(xí)(QML)技術(shù)最終將在量子加速的超級(jí)計(jì)算機(jī)上運(yùn)行,這種超級(jí)計(jì)算機(jī)結(jié)合了 CPU、GPU 和 QPU 的處理能力,能夠解決一些世界上最復(fù)雜的難題。
    的頭像 發(fā)表于 11-20 10:14 ?725次閱讀
    使用CUDA-Q實(shí)現(xiàn)量子<b class='flag-5'>聚</b><b class='flag-5'>類</b>算法

    【《時(shí)間序列與機(jī)器學(xué)習(xí)》閱讀體驗(yàn)】+ 了解時(shí)間序列

    收到《時(shí)間序列與機(jī)器學(xué)習(xí)》一書,彩色印刷,公式代碼清晰,非常精美。感謝作者,感謝電子發(fā)燒友提供了一個(gè)讓我學(xué)習(xí)時(shí)間序列及應(yīng)用的機(jī)會(huì)! 前言第一段描述了編寫背景: 由此可知,這是一本關(guān)于時(shí)間序列進(jìn)行大數(shù)
    發(fā)表于 08-11 17:55

    【「時(shí)間序列與機(jī)器學(xué)習(xí)」閱讀體驗(yàn)】全書概覽與時(shí)間序列概述

    本帖最后由 1653149838.791300 于 2024-8-12 20:18 編輯 [/td] [td]收到《時(shí)間序列與機(jī)器學(xué)習(xí)》這本書,很是欣喜,書籍內(nèi)容很詳實(shí)也是自己很感興趣
    發(fā)表于 08-07 23:03

    6網(wǎng)線和5網(wǎng)線的區(qū)別

    網(wǎng)線(Cat6)和五網(wǎng)線(Cat5)是兩種不同類型的網(wǎng)絡(luò)線纜,它們?cè)诙鄠€(gè)方面存在顯著差異。以下是它們之間的主要區(qū)別: 1. 傳輸速率與帶寬 五網(wǎng)線:傳輸速率為100Mbps,帶
    的頭像 發(fā)表于 08-05 09:50 ?6244次閱讀
    主站蜘蛛池模板: 亚洲一区在线视频 | 视频一区日韩 | 性欧美长视频 | 在线小视频你懂的 | 亚洲一区二区三区免费观看 | 噜噜噜噜天天狠狠 | 特级毛片视频在线 | 亚洲精品综合网在线8050影院 | 亚洲人成77777在线观看网 | 日本三区四区免费高清不卡 | 你懂得视频在线 | 1000部啪啪未满十八勿入中国 | 国产xxxxxx久色视频在 | 色老成人精品视频在线观看 | 欧美成人三级网站 | 一区视频 | 男人日女人视频在线观看 | 视频在线色 | 一区二区免费视频 | 操黄色| 日本中文字幕在线播放 | 一二三四日本视频社区 | 在线www 天堂网在线 | 亚洲天天综合网 | 黄视频免费观看 | 久久怡红院国产精品 | 日本三级带日本三级带黄首页 | 日本色婷婷 | 免费又爽又黄的禁片1000部 | 六月丁香婷婷天天在线 | 亚洲成人在线电影 | 黄www色| 黄色网在线播放 | 综合五月天婷婷丁香 | 天堂一区二区在线观看 | 校园春色亚洲欧美 | 黄a大片| 色综合网天天综合色中文男男 | 1024国产看片在线观看 | 国产主播在线看 | 日日操夜夜爱 |