微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

networkx 决策树分类器网络

如何解决networkx 决策树分类器网络

我假设我是网络分析和 networkx 的新手。我有一个包含 300 个我不知道类型(小世界、常规等)的火车网络和 48 个存储为 .edgelist 的测试网络的列表。 我要做的是构建一个用训练网络和训练标签训练的决策树分类器,并根据测试网络和测试标签测试模型的结果,所以这是监督学习中的分类问题:但我收到错误关于我如何将实体传递给模型,甚至在我将网络转换为 numpy 数组之前。

训练和测试网络具有此边缘列表的形式:

0 52 {}
0 95 {}
0 377 {}
0 470 {}
1 27 {}
..

所以所有的权重都不存在。 训练和测试标签数组具有以下形式:

[0 0 0 1 1 0 0 0 2 0 0 0 0 0 0 1 2 0 0 0 0 0 0 2 0 0 2 0 0 0 2 1 1 0 0 0
 0 0 0 0 0 ...]

我正在使用这个创建一系列网络:

# pick up one just to set the type of the array's content
train_network = nx.read_edgelist("path/train_0.edgelist")

train_s = 300

train_networks = np.zeros(train_s,dtype=type(train_network))

for i in range(0,train_s):
    train_networks[i] = nx.read_edgelist("path/train_{i}.edgelist".format(i=i),create_using=nx.DiGraph)

我使用了 create_using=nx.DiGraph、MultiDiGraph 和认的一个 Graph 请记住,图形也可能断开连接。

在将网络传递给决策树之前,我将网络转换为 numpy 数组,但在那里我遇到了以下错误

_train_networks = np.zeros(train_s)
for i in range(0,train_s):
  _train_networks[i] = nx.to_numpy_array(train_networks[i]._adj)

甚至将邻接列表传递给我收到此错误方法,表示图中没有属性“is_directed”。

AttributeError                            Traceback (most recent call last)
<ipython-input-11-2c4e025e0332> in <module>()
      3   print(i)
      4   print(train_networks[i].__dict__)
----> 5   _train_networks[i] = nx.to_numpy_array(train_networks[i]._adj)
      6 
      7 _test_networks = np.zeros(train_s)

/usr/local/lib/python3.7/dist-packages/networkx/convert_matrix.py in to_numpy_array(G,nodelist,dtype,order,multigraph_weight,weight,nonedge)
   1201 
   1202     nlen = len(nodelist)
-> 1203     undirected = not G.is_directed()
   1204     index = dict(zip(nodelist,range(nlen)))
   1205 

AttributeError: 'dict' object has no attribute 'is_directed'

如何有效地转换 numpy 数组中的网络,然后将其传递给模型?或转换为适合 DecisionTreeClassifier 的另一种类型?

from sklearn.tree import DecisionTreeClassifier

names = ["Decision Tree"]
classifiers = [DecisionTreeClassifier(max_depth=5)]

for name,clf in zip(names,classifiers):
  clf.fit(train_networks,train_labels)
  score = clf.score(test_networks,test_labels)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。