(type)
| 88 | return adj |
| 89 | |
| 90 | def fetch_normalization(type): |
| 91 | switcher = { |
| 92 | 'NormLap': normalized_laplacian, # A' = I - D^-1/2 * A * D^-1/2 |
| 93 | 'Lap': laplacian, # A' = D - A |
| 94 | 'RWalkLap': random_walk_laplacian, # A' = I - D^-1 * A |
| 95 | 'FirstOrderGCN': gcn, # A' = I + D^-1/2 * A * D^-1/2 |
| 96 | 'AugNormAdj': aug_normalized_adjacency, # A' = (D + I)^-1/2 * ( A + I ) * (D + I)^-1/2 |
| 97 | 'BingGeNormAdj': bingge_norm_adjacency, # A' = I + (D + I)^-1/2 * (A + I) * (D + I)^-1/2 |
| 98 | 'NormAdj': normalized_adjacency, # D^-1/2 * A * D^-1/2 |
| 99 | 'RWalk': random_walk, # A' = D^-1*A |
| 100 | 'AugRWalk': aug_random_walk, # A' = (D + I)^-1*(A + I) |
| 101 | 'NoNorm': no_norm, # A' = A |
| 102 | 'INorm': i_norm, # A' = A + I |
| 103 | } |
| 104 | func = switcher.get(type, lambda: "Invalid normalization technique.") |
| 105 | return func |
| 106 | |
| 107 | def row_normalize(mx): |
| 108 | """Row-normalize sparse matrix""" |
no outgoing calls
no test coverage detected