You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

feature_tutorial.py 2.4 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import argparse
  2. parser=argparse.ArgumentParser()
  3. parser.add_argument('-t',type=int)
  4. args=parser.parse_args()
  5. t=args.t
  6. if t==0:
  7. # 1. Choose a dataset.
  8. from autogl.datasets import build_dataset_from_name
  9. data = build_dataset_from_name('cora')
  10. # 2. Compose a preprocessing pipeline
  11. from autogl.module.preprocessing import DataPreprocessor
  12. from autogl.module.preprocessing.feature_engineering import AutoFeatureEngineer
  13. from autogl.module.preprocessing.feature_engineering._generators import OneHotFeatureGenerator
  14. from autogl.module.preprocessing.feature_engineering._selectors import GBDTFeatureSelector
  15. from autogl.module.preprocessing.feature_engineering._graph import NXLargeCliqueSize
  16. # you may compose preprocessing bases through operator &
  17. fe = OneHotFeatureGenerator() & GBDTFeatureSelector(fixlen=100) & NXLargeCliqueSize()
  18. # 3. Fit and transform the data
  19. fe.fit(data)
  20. data1=fe.transform(data,inplace=False)
  21. elif t==1:
  22. import torch
  23. # 1. Choose a dataset.
  24. from autogl.datasets import build_dataset_from_name
  25. data = build_dataset_from_name('cora')
  26. from autogl.module.preprocessing.feature_engineering._generators._basic import BaseFeatureGenerator
  27. import numpy as np
  28. class GeOnehot(BaseFeatureGenerator):
  29. def _extract_nodes_feature(self, data):
  30. num_nodes: int = (
  31. data.x.size(0)
  32. if data.x is not None and isinstance(data.x, torch.Tensor)
  33. else (data.edge_index.max().item() + 1)
  34. )
  35. return torch.eye(num_nodes)
  36. fe=GeOnehot()
  37. fe.fit(data)
  38. data1=fe.transform(data,inplace=False)
  39. elif t==2:
  40. import torch
  41. # 1. Choose a dataset.
  42. from autogl.datasets import build_dataset_from_name
  43. data = build_dataset_from_name('cora')
  44. from autogl.module.preprocessing.structure_engineering import *
  45. from autogl.module.preprocessing.structure_engineering._structure_engineer import *
  46. from torch_geometric.utils import add_self_loops
  47. class AddSelfLoop(StructureEngineer):
  48. def _transform(self,data):
  49. adj = get_edges(data) # edge list
  50. modified_adj=add_self_loops(adj)
  51. set_edges(data,modified_adj)
  52. return data
  53. fe=AddSelfLoop()
  54. fe.fit(data)
  55. data1=fe.transform(data,inplace=False)