graspologic-org / graspologic

Python package for graph statistics
https://graspologic-org.github.io/graspologic/
MIT License
827 stars 144 forks source link

Add more configuration options to automatic layouts #612

Open daxpryce opened 3 years ago

daxpryce commented 3 years ago

The automatic layout functions in #611 have limited configurability. Only a few of the parameters for either down projection are available, and none of them are available on the node2vec portion. We should consider exposing these, either by exhaustively listing all of the parameters available on node2vec, umap, and tsne, or by accepting a dictionary of named parameters for each call so someone who wants to try other configurations can try them by passing in the appropriate dict that we kwarg out to the functions.

rajpratyush commented 3 years ago

@dwaynepryce is this issue still open for work?

daxpryce commented 3 years ago

@dwaynepryce is this issue still open for work?

I would maybe instead say it's "open for thinking".

There are so many parameters to each phase of the process, all of them very reasonably a parameter we want to provide configurable access to. But we're also quickly getting to the point where ... if you want that much configuration, you can just make your own CLI and call it with that.

Otherwise we'll have some crazy number of arguments in this CLI tool and I'm not sure we want to do that.

I'm going to start flagging tickets with "Needs Grooming" when they're tickets we create that are "we should noodle on this a while" vs. "we should definitely implement this" - that way you can quickly see what kind each is.

rajpratyush commented 3 years ago

I m not an expert in this but I do think adding too many parameter will not be a justice to it as one will have to implement it as and if some parameters are missed or misplaced, it can create whole another world of errors. I would go for building your own CLI and i suggest we could add instructions on how to build your own CLI.

another solution is also there in my mind as well but since I don't have much idea on it i don't know if it can be implemented or not

daxpryce commented 3 years ago

I think we can probably add some more configuration options, like adding random seed to the cli and a few other odds. I'm just going to leave this open to stew and collect specific ideas and at a certain point we can enact them and close it out