婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 如何建立一個超圖詳解

如何建立一個超圖詳解

熱門標簽:京華圖書館地圖標注 電話外呼系統招商代理 打印谷歌地圖標注 蘇州人工外呼系統軟件 電話機器人貸款詐騙 看懂地圖標注方法 淮安呼叫中心外呼系統如何 廣東旅游地圖標注 佛山通用400電話申請

1.圖和超圖

圖作為一種數據結構,由節點和邊組成,可由下圖表示。其中一個邊只能鏈接兩個節點。一個圖可表示為G=(v,e,w)

其中v表示節點,e表示邊,w表示節點的特征。關于圖的表示可參考,本文不再詳述。

對于超圖,其與圖結構最主要的區別就是一條邊可以連接多個節點,因此我們可以認為圖是一種特殊的超圖。超圖結構如下圖所示。

超圖可表示為G=(υ,ε,ω)。其中υ為節點集合,ε為超邊集合,ω為超邊權重的對稱矩陣。超圖G可以關聯矩陣H來表示,其詞條定義為:

改公式可解釋為如果某個節點屬于某個超邊,則關聯矩陣H的值為1,否則為0。

對于單個節點v可定義為:

可解釋為連接該節點的所有邊乘上權重向量的和。

Dₑ和Dᵥ由d(v)和s(e)分別表示為超邊和節點的對角矩陣。

單個邊可定義為:

可以理解為該邊包含的所有節點之和。

2.實例

下面舉出一個具體實例幫助理解超圖的構建。以該圖為例

圖中有8個節點,3個超邊。超邊的細化圖如下:

假設權重W為全1矩陣,因為它對構建超圖數據結果無影響,那么H為一個3行8列的矩陣,表示為:

h(1,1) = 0

h(2,1) = 1

h(3,1) = 0

h(4,1) = 1

h(5,1) = 0

h(6,1) = 0

h(7,1) = 0

h(8,1) = 1

h(1,2) = 1

h(2,2) = 0

h(3,2) = 0

h(4,2) = 0

h(5,2) = 0

h(6,2) = 1

h(7,2) = 1

h(8,2) = 0

h(1,3) = 0

h(2,3) = 0

h(3,3) = 1

h(4,3) = 0

h(5,3) = 1

h(6,3) = 0

h(7,3) = 1

h(8,3) = 0

De​表示為:

d(1) = 1

d(2) = 1

d(3) = 1

d(4) = 1

d(5) = 1

d(6) = 1

d(7) = 2

d(8) = 1

Dv​表示為:

s(1) = 3

s(2) = 3

s(3) = 3

3.代碼實現

下面我們用python代碼進行編程,我們的目標是在知道節點的特征W通過特征的距離來生成 G \mathcal{G} G矩陣。路線為:W,H, G \mathcal{G} G。主要代碼如下:

import numpy as np
#KNN生成H
x = np.array([[1,0,0,0,1,0,1,0,0,0],
        [1,1,1,0,0,0,1,1,1,0],
       [1,1,1,0,0,1,1,1,1,0],
       [0,1,0,0,0,0,1,0,1,0],
       [1,1,1,1,0,0,1,1,0,1],
       [1,0,1,0,0,1,0,1,1,0],
       [0,1,0,0,1,0,1,1,1,0],
       [0,1,1,0,1,0,1,0,1,1]])
def Eu_dis(x):
    """
    Calculate the distance among each raw of x
    :param x: N X D
                N: the object number
                D: Dimension of the feature
    :return: N X N distance matrix
    """
    x = np.mat(x)
    aa = np.sum(np.multiply(x, x), 1)
    ab = x * x.T
    dist_mat = aa + aa.T - 2 * ab
    dist_mat[dist_mat  0] = 0
    dist_mat = np.sqrt(dist_mat)
    dist_mat = np.maximum(dist_mat, dist_mat.T)
    return dist_mat
def hyperedge_concat(*H_list):
    """
    Concatenate hyperedge group in H_list
    :param H_list: Hyperedge groups which contain two or more hypergraph incidence matrix
    :return: Fused hypergraph incidence matrix
    """
    H = None
    for h in H_list:
        if h is not None and h != []:
            # for the first H appended to fused hypergraph incidence matrix
            if H is None:
                H = h
            else:
                if type(h) != list:
                    H = np.hstack((H, h))
                else:
                    tmp = []
                    for a, b in zip(H, h):
                        tmp.append(np.hstack((a, b)))
                    H = tmp
    return H
def construct_H_with_KNN_from_distance(dis_mat, k_neig, is_probH=True, m_prob=1):
    """
    construct hypregraph incidence matrix from hypergraph node distance matrix
    :param dis_mat: node distance matrix
    :param k_neig: K nearest neighbor
    :param is_probH: prob Vertex-Edge matrix or binary
    :param m_prob: prob
    :return: N_object X N_hyperedge
    """
    n_obj = dis_mat.shape[0]
    # construct hyperedge from the central feature space of each node
    n_edge = n_obj
    H = np.zeros((n_obj, n_edge))
    for center_idx in range(n_obj):
        dis_mat[center_idx, center_idx] = 0
        dis_vec = dis_mat[center_idx]
        nearest_idx = np.array(np.argsort(dis_vec)).squeeze()
        avg_dis = np.average(dis_vec)
        if not np.any(nearest_idx[:k_neig] == center_idx):
            nearest_idx[k_neig - 1] = center_idx
        for node_idx in nearest_idx[:k_neig]:
            if is_probH:
                H[node_idx, center_idx] = np.exp(-dis_vec[0, node_idx] ** 2 / (m_prob * avg_dis) ** 2)
            else:
                H[node_idx, center_idx] = 1.0
    return H
def construct_H_with_KNN(X, K_neigs=[10], split_diff_scale=False, is_probH=True, m_prob=1):
    """
    init multi-scale hypergraph Vertex-Edge matrix from original node feature matrix
    :param X: N_object x feature_number
    :param K_neigs: the number of neighbor expansion
    :param split_diff_scale: whether split hyperedge group at different neighbor scale
    :param is_probH: prob Vertex-Edge matrix or binary
    :param m_prob: prob
    :return: N_object x N_hyperedge
    """
    if len(X.shape) != 2:
        X = X.reshape(-1, X.shape[-1])
    if type(K_neigs) == int:
        K_neigs = [K_neigs]
    dis_mat = Eu_dis(X)
    H = []
    for k_neig in K_neigs:
        H_tmp = construct_H_with_KNN_from_distance(dis_mat, k_neig, is_probH, m_prob)
        if not split_diff_scale:
            H = hyperedge_concat(H, H_tmp)
        else:
            H.append(H_tmp)
    return H
H = construct_H_with_KNN(x)
#生成G
def generate_G_from_H(H, variable_weight=False):
    """
    calculate G from hypgraph incidence matrix H
    :param H: hypergraph incidence matrix H
    :param variable_weight: whether the weight of hyperedge is variable
    :return: G
    """
    if type(H) != list:
        return _generate_G_from_H(H, variable_weight)
    else:
        G = []
        for sub_H in H:
            G.append(generate_G_from_H(sub_H, variable_weight))
        return G
def _generate_G_from_H(H, variable_weight=False):
    """
    calculate G from hypgraph incidence matrix H
    :param H: hypergraph incidence matrix H
    :param variable_weight: whether the weight of hyperedge is variable
    :return: G
    """
    H = np.array(H)
    n_edge = H.shape[1]
    # the weight of the hyperedge
    W = np.ones(n_edge)
    # the degree of the node
    DV = np.sum(H * W, axis=1)
    # the degree of the hyperedge
    DE = np.sum(H, axis=0)
    invDE = np.mat(np.diag(np.power(DE, -1)))
    DV2 = np.mat(np.diag(np.power(DV, -0.5)))
    W = np.mat(np.diag(W))
    H = np.mat(H)
    HT = H.T
    if variable_weight:
        DV2_H = DV2 * H
        invDE_HT_DV2 = invDE * HT * DV2
        return DV2_H, W, invDE_HT_DV2
    else:
        G = DV2 * H * W * invDE * HT * DV2
        return G
G = generate_G_from_H(H)

實驗結果:

H

G

到此這篇關于如何建立一個超圖的文章就介紹到這了,希望對你有幫助,更多相關超圖內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python opencv圖像處理(素描、懷舊、光照、流年、濾鏡 原理及實現)
  • Python+OpenCV圖像處理——實現輪廓發現
  • 解決python圖像處理圖像賦值后變為白色的問題
  • 基于python的opencv圖像處理實現對斑馬線的檢測示例

標簽:股票 駐馬店 中山 畢節 湖州 衡水 江蘇 呼和浩特

巨人網絡通訊聲明:本文標題《如何建立一個超圖詳解》,本文關鍵詞  如何,建立,一個,超圖,詳解,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《如何建立一個超圖詳解》相關的同類信息!
  • 本頁收集關于如何建立一個超圖詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产激情视频一区二区在线观看| 色婷婷一区二区| 日韩一区二区精品在线观看| 欧美日本一区二区三区四区| 91国内精品野花午夜精品| 色88888久久久久久影院野外| 99精品久久久久久| 7777女厕盗摄久久久| 狠狠久久亚洲欧美| 91麻豆精品国产自产在线观看一区 | 日韩精品一区第一页| 91亚洲精品久久久蜜桃网站| 中文字幕中文在线不卡住| 国产一区美女在线| 久久午夜色播影院免费高清| 国产精品一区二区在线播放| 国产精品女主播在线观看| 色网站国产精品| 亚洲精选视频在线| 91精选在线观看| 日本亚洲免费观看| 精品三级在线观看| 岛国一区二区在线观看| 亚洲欧美中日韩| 777精品伊人久久久久大香线蕉| 蜜臀国产一区二区三区在线播放| 911精品产国品一二三产区| 精久久久久久久久久久| 国产精品久久久久久久久果冻传媒| 精品美女在线播放| 99久久99久久精品免费看蜜桃| 亚洲精品少妇30p| 精品女同一区二区| 色先锋aa成人| 国产成人啪免费观看软件| 洋洋成人永久网站入口| 国产午夜精品福利| 欧美在线你懂得| 成人综合激情网| 丝袜诱惑制服诱惑色一区在线观看| 久久久91精品国产一区二区三区| 日本电影欧美片| 国产一区二区三区久久久| 日韩美女久久久| 久久亚洲免费视频| 欧美精品三级日韩久久| 99精品久久99久久久久| 天天色图综合网| 中文字幕一区二区三区四区不卡 | 国产黄色成人av| 亚洲成人动漫在线免费观看| 欧美日韩久久久| 99久久综合99久久综合网站| 亚洲女人的天堂| 精品国产91乱码一区二区三区| 国产一区二区三区不卡在线观看| 国产精品电影一区二区三区| 99精品视频中文字幕| 久久99久久久欧美国产| 极品销魂美女一区二区三区| 欧美一级生活片| 色综合久久综合中文综合网| 男女性色大片免费观看一区二区 | 亚洲激情图片一区| 日韩毛片在线免费观看| 国产视频一区在线观看| 色国产综合视频| 天天免费综合色| av电影一区二区| 国产精品视频看| 一区二区在线观看不卡| 亚洲丝袜精品丝袜在线| 亚洲一区二区3| 国产精品久久精品日日| 精品国产污污免费网站入口 | 不卡av免费在线观看| 国产在线播精品第三| 奇米精品一区二区三区在线观看一| 亚洲观看高清完整版在线观看| 午夜精品一区二区三区三上悠亚| 亚洲亚洲人成综合网络| 五月激情六月综合| 久久精品国产久精国产| 狠狠色狠狠色综合系列| 韩国三级中文字幕hd久久精品| 精品国产乱码久久久久久久久| 国产欧美中文在线| 亚洲乱码国产乱码精品精小说 | 国内精品伊人久久久久影院对白| 久久se这里有精品| 成人国产精品免费观看| 久久久久99精品国产片| 中文成人av在线| 夜夜亚洲天天久久| 精品一区二区在线观看| 成人免费精品视频| 欧美日韩三级一区二区| 久久夜色精品国产噜噜av| 国产精品国产自产拍高清av| 三级欧美在线一区| 成人高清av在线| 欧美精品在线一区二区三区| 久久九九久久九九| 亚洲第一会所有码转帖| 国产精品一二三区在线| 色婷婷av一区二区三区gif| 欧美一区永久视频免费观看| 专区另类欧美日韩| 久久爱www久久做| 欧美日韩国产综合草草| 国产精品久久综合| 青娱乐精品在线视频| 色婷婷精品久久二区二区蜜臂av | 捆绑调教美女网站视频一区| 成年人网站91| 精品日产卡一卡二卡麻豆| 一级特黄大欧美久久久| 国产成人免费视频网站高清观看视频 | 久久综合给合久久狠狠狠97色69| 亚洲精品中文在线| 国产精品1区2区3区| 欧美精品在线观看一区二区| 亚洲欧洲性图库| 国产一区不卡在线| 欧美三级电影一区| 日韩一区二区三区观看| 亚洲国产精品一区二区久久恐怖片 | 欧美一二区视频| 亚洲另类一区二区| 不卡电影免费在线播放一区| 欧美一区二区免费视频| 亚洲成人免费影院| 在线中文字幕一区| 亚洲天堂网中文字| 国产欧美综合在线观看第十页 | 亚洲综合一区二区三区| av一区二区三区四区| 久久精品一区二区三区av| 免费成人在线播放| 欧美女孩性生活视频| 亚洲天堂中文字幕| 91美女蜜桃在线| 日本一区二区动态图| 国产精品亚洲午夜一区二区三区| 精品国产污网站| 天天色图综合网| 欧美视频在线观看一区| 一片黄亚洲嫩模| 69久久夜色精品国产69蝌蚪网| 亚洲午夜久久久久久久久久久 | 欧美日韩欧美一区二区| 亚洲成在线观看| 4hu四虎永久在线影院成人| 亚洲成人av福利| 欧美丰满少妇xxxxx高潮对白| 亚洲成av人片在线观看| 91精品久久久久久蜜臀| 免费精品视频在线| 日韩欧美成人一区| 国产高清精品在线| 亚洲免费电影在线| 欧美日韩精品三区| 国产一区二区精品久久91| 国产精品第一页第二页第三页| 在线亚洲免费视频| 日本vs亚洲vs韩国一区三区二区| 久久美女艺术照精彩视频福利播放 | 精品中文字幕一区二区小辣椒| 国产婷婷色一区二区三区在线| 成年人午夜久久久| 五月天视频一区| 欧美国产日产图区| 精品视频色一区| 麻豆精品一区二区三区| 国产拍揄自揄精品视频麻豆| 专区另类欧美日韩| 视频一区中文字幕国产| 成人激情视频网站| 国产精品国产馆在线真实露脸| 亚洲1区2区3区视频| 粉嫩13p一区二区三区| 国产精品不卡一区| 日本视频一区二区| 日韩一区二区三区电影| 亚洲色图一区二区三区| 久热成人在线视频| 欧美日韩色综合| 久久日韩粉嫩一区二区三区| 亚洲图片另类小说| 国产乱淫av一区二区三区| 久久久精品tv| 欧美伊人精品成人久久综合97| 日韩无一区二区| 亚洲欧洲一区二区三区| 婷婷综合五月天| jlzzjlzz亚洲女人18| 成人美女视频在线观看| 成人激情动漫在线观看| 国产成人精品aa毛片| 色婷婷av一区二区|