2

我正在 为GraphConvolution模型使用Deepchem包装器,如下所示。我有我的微笑数据,其中包含 5 个分子,它们的微笑表示和各自的活动。可以直接从这里访问数据。.csv

导入库:

from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
import numpy as np
import tensorflow as tf
import deepchem as dc
from deepchem.models.tensorgraph.models.graph_models import GraphConvModel

加载数据并以适合图形卷积的方式对其进行特征化。

graph_featurizer = dc.feat.graph_features.ConvMolFeaturizer()
loader_train = dc.data.data_loader.CSVLoader( tasks=['Activity'], smiles_field="smiles",featurizer=graph_featurizer)
dataset_train = loader_train.featurize( './train_smiles_data.csv')

分析加载和特征化的数据(我的尝试)

dataset_train.X

array([<deepchem.feat.mol_graphs.ConvMol object at 0x7f8bfc3ad748>,
       <deepchem.feat.mol_graphs.ConvMol object at 0x7f8bfc367828>,
       <deepchem.feat.mol_graphs.ConvMol object at 0x7f8bfc367208>,
       <deepchem.feat.mol_graphs.ConvMol object at 0x7f8bfc369c50>],
      dtype=object)


dataset_train.y

array([[2.71],
       [4.41],
       [3.77],
       [4.2 ]])

for x, y, w, id in dataset_train.itersamples():
    print(x, y, w, id)

<deepchem.feat.mol_graphs.ConvMol object at 0x7f8bfc3ad6a0> [2.71] [1.] CC1=C(O)C=CC=C1
<deepchem.feat.mol_graphs.ConvMol object at 0x7f8bfc30f518> [4.41] [1.] [O-][N+](=O)C1=CC=C(Br)S1
<deepchem.feat.mol_graphs.ConvMol object at 0x7f8bfc30f748> [3.77] [1.] CCC/C=C/C=O
<deepchem.feat.mol_graphs.ConvMol object at 0x7f8bfc30f940> [4.2] [1.] CCCCCC1=CC=CS1

我想要的是?

从上面的代码中可以看出,dataset_train.X给出了diskobjectlike<deepchem.feat.mol_graphs.ConvMol object at 0x7f8bfc3ad6a0>而不是numpy arraylike dataset_train.y

我怎么知道存储在什么类型的数据中dataset_train.X?如何查看存储的数据dataset_train.X?或者换句话说,我怎样才能将它转换dataset_train.X成可以检查其中数据的格式?

我相信应该有一些方法可以做到这一点。

4

1 回答 1

2

根据您之前的问题dataset_train.X 是一个 ConvMol 对象数组。这些 ConvMol 对象是每个输入分子特征的容器。这些特征不像您的目标“train_dataset.y”那样表示,因为它们是更复杂的图形特征。再次查看 ConvMol 对象的源代码,并查看 ConvMolFeaturizer的代码。然后,您可以确定如何解释这些特征:

# Inspect features for molecule 0
conv_feature = dataset_train.X[0]
# Print the atom features
print(conv_feature.get_atom_features())
# Print the adjacency list
print(conv_feature.get_adjancency_list())
于 2019-10-09T16:39:37.147 回答