Skip to content

EvalNE v0.2.2

Compare
Choose a tag to compare
@Dru-Mara Dru-Mara released this 14 Mar 11:01
· 36 commits to master since this release

EvalNE v0.2.2

Release date: 14 Mar 2019

API changes

  • removed optional seed parameter from all methods in split_train_test.py

New features

  • added WRITE_WEIGHTS_OTHER in conf files which allows the user to specify if the input train network to the NE methods should have weights or not. If True but the original input network is unweighted, weights of 1 are given to each edge. This feature is useful for e.g. the original code of LINE which requires edges to have weights (all 1 if the graph is unweighted).
  • added WRITE_DIR_OTHER in conf files which allows the user to specify if the input train network to the NE methods should be specified with both directions of edges or a single one.
  • added SEED in the conf file which sets a general random seed for the experiment. If None the system time is used.
  • A faster method for splitting non-edges in train and test when all non-edges in the graph are required.

Documentation

  • Readme update
  • Docs update
  • Descriptions of each option in conf.ini added

Miscelaneous

  • Library is now pip installable
  • simple-example.py now checks if OpenNE is installed, if not it runs only the LP heuristics.
  • sklearn removed from requirements.txt (already satisfied by scikit-learn)
  • setup.py update. Ready for making EvalNE pip installable.
  • train/validation fraction was 50/50 which caused the train set to be excessively small and parameter validation not accurate. New value is 90/10.
  • improved warnings in evaluator code
  • general code cleaning
  • removed random seed resetting in edges split methods

Bugs

  • train/validation and train/test splits used the same random seed for generating the edge split which caused correlation between them. Now the train/validation split contains randomly selected edges.
  • Fixed a bug which would cause the evaluation of any edge embedding method to crash
  • predictions from edge embeddings were computed using LogisticRegression.predict(). This gives class labels and not class probabilities resulting in worst estimates of method performance. This has been changed to LogisticRegression.predict_proba()