Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is DES applicable for Graph convolutional Networks (GCNs) #270

Open
qm-intel opened this issue Aug 4, 2022 · 2 comments
Open

Is DES applicable for Graph convolutional Networks (GCNs) #270

qm-intel opened this issue Aug 4, 2022 · 2 comments

Comments

@qm-intel
Copy link

qm-intel commented Aug 4, 2022

Hi,
Thank you for your great contribution to science.
I have a question and wondering if DESlib can be applied for GCNs or is there any other library similar to DESlib algorithms that they have extended DESlib for dynamic selection of GCNs?

@Menelau
Copy link
Collaborator

Menelau commented Aug 5, 2022

Hello,

So in your case, your data is represented by graphs (training/testing data) instead of just a tabular matrix correct? Unfortunately, all inputs to DESlib follow the scikit-learn standard, always having real-valued feature vectors as input in a 2d matrix where each row represents a new instance: https://scikit-learn.org/stable/faq.html#will-you-add-graphical-models-or-sequence-prediction-to-scikit-learn

However, I do believe some techniques could be easily modified for allowing GCN as base models. In particular, the methods that are based on decision space for selecting the best model (KNOP) rather than the original representation as it wouldn't affect how the techniques estimate the similarity between different inputs.

Is it possible to provide an example your code? With that I could see if there are ways of applying it to your need and check what would be needed to change in the method's implementation.

@qm-intel
Copy link
Author

@Menelau Dear Dr. Cruz, thanks for responding to my question.

So in your case, your data is represented by graphs (training/testing data) instead of just a tabular matrix correct?

yes, these are few samples from the training set that I have listed here with their dimension. For example, the first graph has 104 nodes and each node has 79 features, edge_index is the adjacency matrix, which means there is 108 connection (edges) between nodes. Each edge can have attributes or not, then edge_attr represents the edge features (10 features ). The last one y represents the graph-level label that can be classification discrete labels (0,1,2, or 4 for example).

Data(x=[104, 79], edge_index=[2, 208], edge_attr=[208, 10], y=[1]),
 Data(x=[100, 79], edge_index=[2, 208], edge_attr=[208, 10], y=[1]),
 Data(x=[212, 79], edge_index=[2, 434], edge_attr=[434, 10], y=[1]),
 Data(x=[216, 79], edge_index=[2, 440], edge_attr=[440, 10], y=[1]),
 Data(x=[203, 79], edge_index=[2, 420], edge_attr=[420, 10], y=[1]),
 Data(x=[110, 79], edge_index=[2, 222], edge_attr=[222, 10], y=[1]),
 Data(x=[210, 79], edge_index=[2, 426], edge_attr=[426, 10], y=[1]),
 Data(x=[150, 79], edge_index=[2, 302], edge_attr=[302, 10], y=[1]),
 Data(x=[106, 79], edge_index=[2, 214], edge_attr=[214, 10], y=[1]),
 .
.
.
Data(x=[80, 79], edge_index=[2, 162], edge_attr=[162, 10], y=[1]),
 Data(x=[193, 79], edge_index=[2, 416], edge_attr=[416, 10], y=[1]),
 Data(x=[103, 79], edge_index=[2, 208], edge_attr=[208, 10], y=[1]),
 Data(x=[343, 79], edge_index=[2, 688], edge_attr=[688, 10], y=[1]),

Is it possible to provide an example of your code? With that, I could see if there are ways of applying it to your need and check what would be needed to change in the method's implementation.

I do not have any code currently to share with you, but I am thinking of an idea, and I would like to have your opinion on that (either through email or here). If we can measure the similarity between the test sample graph and validation set of each GNN model, can we extend the concept of DES to GNN models?

Thank you in advance

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants