【问题标题】:Generating a feature vector for nodes and edges in networkx为networkx中的节点和边生成特征向量
【发布时间】:2014-08-03 19:49:00
【问题描述】:

我想创建一个networkx 图表,其中我有节点和边的属性。我知道对于每个节点和边缘,可以创建一个属性映射/字典。但是我需要为每个节点和每个边创建一个特征向量,以便将它们与scikit-learn 一起使用来训练分类器。我不想创建一个显式特征矩阵,其中每一行代表一个节点的特征。相反,我想将特征向量合并到networkx 图形本身中。所以我想要这样的东西:

node = Graph.get_node(i)
feature_vec = node.get_features_vector()

有没有一种快速/pythonic 的方法可以在不编写“包装器”的情况下做到这一点?

【问题讨论】:

  • 您可以通过将特征向量设置为您提到的节点属性字典中的属性之一来做到这一点。但是,我认为您仍然需要将其转换为 scikit 的矩阵,因为 scikit 希望其输入为 numpy 数组。所以我不确定你首先不是把它变成一个矩阵,你会得到什么。

标签: python networkx


【解决方案1】:

您可以添加一个 numpy 数组作为节点属性。类似的,

In [1]: import networkx as nx

In [2]: import numpy as np

In [3]: G = nx.Graph()

In [4]: feature_vector=np.array([1,7,22])

In [5]: G.add_node(1,v=feature_vector)

In [6]: G.node[1]['v']
Out[6]: array([ 1,  7, 22])

【讨论】:

    猜你喜欢
    • 2022-06-14
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 2023-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多