国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

100天搞定機器學習:day54 聚類系列:層次聚類原理及案例

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-10 21:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

幾張GIF理解K-均值聚類原理
k均值聚類數學推導與python實現
前文說了k均值聚類,他是基于中心的聚類方法,通過迭代將樣本分到k個類中,使每個樣本與其所屬類的中心或均值最近。

今天我們看一下無監督學習之聚類方法的另一種算法,層次聚類:

層次聚類前提假設類別直接存在層次關系,通過計算不同類別數據點間的相似度來創建一棵有層次的嵌套聚類樹。在聚類樹中,不同類別的原始數據點是樹的最低層,樹的頂層是一個聚類的根節點。創建聚類樹有聚合聚類(自下而上合并)和分裂聚類(自上而下分裂)兩種方法,分裂聚類一般很少使用,不做介紹。

聚合聚類

聚合聚類具體過程

對于給定的樣本集合,開始將每個樣本分到一個類,然后再按照一定的規則(比如類間距最?。?,將滿足規則的類進行合并,反復進行,直到滿足停止條件。聚合聚類三要素有:

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

②合并規則(最長/短距離,中心距離,平均距離)

③停止條件(類個數或類直徑達到或超過閾值)

聚合聚類算法

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

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

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

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

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

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

動畫表示:

python實現及案例

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: 該節點的數值,合并節點時等于原來節點值的平均值
    id:節點的id,包含該節點下的所有單個元素
    left和right:合并得到該節點的兩個子節點
    distance:兩個子節點的距離
    count:該節點所包含的單個元素個數
    check:標識符,用于遍歷時記錄該節點是否被遍歷過
    '''
    self.value = value
    self.id = id
    self.left = left
    self.right = right
    self.distance = distance
    self.count = count
    self.check = check

def show(self):
    #顯示節點相關屬性
    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):
    #計算兩個節點的距離,可以換成別的距離
    return math.sqrt(pow((x.value-y.value),2))

def minDist(self,dataset):
    #計算所有節點中距離最小的節點對
    mindist = 1000
    for i in range(len(dataset)-1):
        if dataset[i].check == 1:
            #略過合并過的節點
            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
    #返回最小距離、距離最小的兩個節點的索引

def fit(self,data):
    dataset = [clusterNode(value=item,id=[(chr(ord('a')+i))],count=1) for i,item in enumerate(data)]
    #將輸入的數據元素轉化成節點,并存入節點的列表
    length = len(dataset)
    Backup = copy.deepcopy(dataset)
    #備份數據
    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))
        #生成新節點
        if len(tmpid) == length:
            #當新生成的節點已經包含所有元素時,退出循環,完成聚類
            break
    for item in dataset:
        item.show()
    return dataset

def show(self,dataset,num):
    plt.figure(1)
    showqueue = queue.Queue()
    #存放節點信息的隊列
    showqueue.put(dataset[len(dataset) - 1])
    #存入根節點
    showqueue.put(num)
    #存入根節點的中心橫坐標
    while not showqueue.empty():
        index = showqueue.get()
        #當前繪制的節點
        i = showqueue.get()
        #當前繪制節點中心的橫坐標
        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個隨機數據
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)

本文由博客一文多發平臺 OpenWrite 發布!

審核編輯 黃昊宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器學習
    +關注

    關注

    66

    文章

    8553

    瀏覽量

    136948
  • 深度學習
    +關注

    關注

    73

    文章

    5599

    瀏覽量

    124398
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何分辨五網線

    分辨五與六網線的方法如下: 外皮標識 五網線外皮標注“CAT5”,六網線標注“CAT6”。這是最直觀的區分方式,標識直接表明網線的類別。 傳輸性能 五
    的頭像 發表于 01-28 10:21 ?1133次閱讀

    飛光電榮獲日本NIMS β-Sialon裝置專利許可

    近日,深圳市飛光電股份有限公司(以下簡稱“飛光電”)正式獲得日本國立材料科學研究所(National Institute for Materials Science, NIMS)頒發
    的頭像 發表于 01-15 17:06 ?1296次閱讀

    看懂C語言程序中的內和耦合

    功能而存在,共同完成一個單一的功能,模塊已不可再分。這樣的函數功能非常清晰、明確,一般出現在程序結構圖的較低被調用的層次上。 次之的是順序內,一個函數中各個處理元素和同一個功能密切相關,通常前一個
    發表于 12-08 06:37

    中微公司亮相第五屆海英才全球創新創業峰會

    近日,以“上海、創未來”為主題的第五屆“海英才”全球創新創業峰會于上海舉行。“海英才”作為上海人才工作的主品牌、城市吸引力的主名片,不斷匯集全球英才逐夢上海、施展才華。
    的頭像 發表于 12-04 15:00 ?458次閱讀

    飛光電入選2025深圳企業500強榜單

    近日,深圳市企業聯合會、深圳市企業家協會正式發布“2025深圳企業500強榜單”及《2025深圳500強企業發展報告》。飛光電連續八年登榜,位列第275位,同時入選創新能力TOP100分榜單。
    的頭像 發表于 11-02 11:49 ?1053次閱讀

    RoboSense速騰創與導遠科技達成戰略合作

    RoboSense速騰創與導遠科技(ASENSING)宣布正式達成戰略合作。此次合作,雙方將深度融合RoboSense速騰創在激光雷達感知領域的優勢與導遠科技在精密慣性導航方面的專長,共同開發
    的頭像 發表于 10-24 17:56 ?1211次閱讀

    辰EEPROM,工業、汽車、智能眼鏡全面開花

    ? 電子發燒友網綜合報道,日前,辰半導體對外談到,公司在工業、AI眼鏡、汽車以及DDR5 SPD芯片方面的產品和市場拓展進展。 ? 在工業應用市場,辰具有較深厚的積累,工業級存儲芯片現已廣泛應用
    的頭像 發表于 10-09 03:29 ?8263次閱讀
    <b class='flag-5'>聚</b>辰EEPROM,工業、汽車、智能眼鏡全面開花

    網線面板分五

    網線面板確實分五和六,這種分類主要基于其適配的網線類型及傳輸性能,以下是具體說明: 一、分類依據 適配網線類型 五面板:專為五網線(CAT5)設計,適用于百兆以太網(
    的頭像 發表于 08-08 09:46 ?4369次閱讀

    華大九“芯系列活動助力集成電路產業蓬勃發展

    華大九希望通過“芯系列活動,打造一個行業精英與企業應用通暢交流的專業平臺,營造以“開放、合作、創新”為主體的產業生態圈,促進技術交流、行業合作及成長共享,讓每一位參與者都能在
    的頭像 發表于 07-22 09:57 ?1044次閱讀

    飛光電總部大廈正式啟用

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

    機器人與地瓜機器人達成戰略合作,聯合發布Aelos Embodied具身智能

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

    網線超6與6的區別

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

    **【技術干貨】Nordic nRF54系列芯片:傳感器數據采集與AI機器學習的完美結合**

    【技術干貨】nRF54系列芯片:傳感器數據采集與AI機器學習的完美結合 近期收到不少伙伴咨詢nRF54
    發表于 04-01 00:00

    買水晶頭如何匹配超5 67

    購買與超5、6、7網線匹配的水晶頭時,需遵循以下原則,以確保傳輸性能、穩定性和兼容性: 一、匹配原則 超5網線 推薦搭配:超5水晶
    的頭像 發表于 03-26 10:05 ?6720次閱讀

    速騰創第100萬臺激光雷達下線,用于人形機器人?

    電子發燒友網綜合報道 數日前,RoboSense 速騰創成功交付了其第 100 萬臺激光雷達,訂單接收方為人形機器人(上海)有限公司。速騰創由此成為全球首家實現百萬臺高線數激光雷達
    發表于 03-16 01:00 ?1099次閱讀