Actually I want to do regression using PyG, could you please help me with this error. I am having my data in excel sheet with three columns as Feature1,Feature2 and Feature3 and forth col as Target value. I am writing the script as give below:
import pandas as pd
import torch
import torch.nn as nn
import torch.optim as optim
import torch_geometric
from torch_geometric.data import Data, DataLoader
from torch_geometric.nn import GCNConv
from sklearn.model_selection import train_test_split
from torch.utils.data import TensorDataset
# Load your dataset
data = pd.read_excel('/..../Data_GCN.xlsx')
features = data.iloc[:, 0:3].values # Assuming the first three columns are your features
target = data.iloc[:, 3].values # Assuming the fourth column is your target
#%%
# Create a cyclic graph
num_nodes = features.shape[0]
edge_index = torch.tensor([(i, (i + 1) % num_nodes) for i in range(num_nodes)], dtype=torch.long).t().contiguous()
#%%
# Convert features and target to PyTorch tensors
x = torch.tensor(features, dtype=torch.float32)
y = torch.tensor(target, dtype=torch.float32).view(-1, 1)
#%%
# Create a PyTorch Geometric Data object
data = Data(x=x, edge_index=edge_index, y=y)
#%%
# Split your data into training and validation sets
train_data, val_data = train_test_split(data, test_size=0.2, random_state=42)
After this last line I am getting error : Traceback (most recent call last):
File ~/anaconda3/envs/…lib/python3.11/site-packages/spyder_kernels/py3compat.py:356 in compat_exec
exec(code, globals, locals)
File ~/Documents/…/Codes/IITK/gcn_reg.py:30
train_data, val_data = train_test_split(data, test_size=0.2, random_state=42)
File ~/anaconda3/envs/,/lib/python3.11/site-packages/sklearn/utils/_param_validation.py:211 in wrapper
return func(*args, **kwargs)
File ~/anaconda3/envs/,/lib/python3.11/site-packages/sklearn/model_selection/_split.py:2640 in train_test_split
return list(
File ~/anaconda3/envs/…/lib/python3.11/site-packages/sklearn/model_selection/_split.py:2642 in
(_safe_indexing(a, train), _safe_indexing(a, test)) for a in arrays
File ~/anaconda3/envs/…/lib/python3.11/site-packages/sklearn/utils/init.py:357 in _safe_indexing
return _list_indexing(X, indices, indices_dtype)
File ~/anaconda3/envs/Krishna/lib/python3.11/site-packages/sklearn/utils/init.py:211 in _list_indexing
return [X[idx] for idx in key]
File ~/anaconda3/envs/…/lib/python3.11/site-packages/sklearn/utils/init.py:211 in
return [X[idx] for idx in key]
File ~/anaconda3/envs/,/lib/python3.11/site-packages/torch_geometric/data/data.py:457 in getitem
return self._store[key]
File ~/anaconda3/envs/…/lib/python3.11/site-packages/torch_geometric/data/storage.py:104 in getitem
return self._mapping[key]
KeyError: 1
You can assume data in excel and please guide what to do in this case. My Adj matrix is created above, Actually in my case it is a cyclic graph each node is connected to its next node and last one to first node, as it is a time series data.