Skip to content

Releases: NUAA-AL/ALiPy

ALiPy v1.2.5

28 Jul 07:32
Compare
Choose a tag to compare

Upgrade from pypi

    pip install --upgrade alipy

Change log

  1. Raise an error if more than 2 classes are detected when BMDR, SPAL, LAL methods are used. These strategies are implemented for binary classification problems only.
  2. fix and close #33 that the labels of the dataset will sometimes be modified if BMDR or SPAL methods are used.
  3. fix a bug in batch-mode Coreset strategy (#32)

ALiPy v1.2.4

08 May 07:13
Compare
Choose a tag to compare

This is a bug-fix release with robustness improvements.

Upgrade from pypi

    pip install --upgrade alipy

Change log

  1. Fix a bug in examples/AL_settings/query_instance.py.
  2. Add examples of coreset and density weighted methods.
  3. When initializing a Toolbox object, it will try to load existed ToolBox object if there is one in the saving_path.
  4. fix the issue that time.clock() method no longer exists in higher version of python.

ALiPy v1.2.3

06 Jan 10:57
Compare
Choose a tag to compare

This is a bug-fix release with robustness improvements.

Upgrade from pypi

    pip install --upgrade alipy

Change log

  1. Add a small number in np.log() to aviod NaN in query_labels.py.
  2. Add coreset greedy (ICLR18) and density weighted query strategies to query_labels.py.
  3. Update the example codes of query labels to save the results of different strategies with different names.
  4. Use @ operator for matrix multiplying to adapt the new version of cvxpy in SPAL and BMDR methods.
  5. Fix bugs in SPAL and BMDR methods which will occasionally misuse the ground-truth labels.

ALiPy v1.2.2

25 Jun 09:36
Compare
Choose a tag to compare

Fix bugs when calculating fp/tp related metrics through toolbox object.

ALiPy v1.2.1

19 Jun 09:57
Compare
Choose a tag to compare

This is a bug-fix release with robustness improvements.

Upgrade ALiPy with pypi

pip install --upgrade alipy

Change log

  • Fix a bug that the f1_score and label_ranking_loss can not be used by ToolBox object.
  • Raise an exception if the value of percent of unlabeled data in stopping criterion is not in [0, 1].
  • Flatten the label array y if its shape is (1, -1) or (-1, 1) in ToolBox object.

ALiPy v1.2.0

06 May 07:03
Compare
Choose a tag to compare

ALiPy v1.2.0: This is a bug-fix release with api changes of AURO and AUDI.

Upgrade from pypi

pip install --upgrade alipy

Changelog

alipy.query_strategy.QueryMultiLabelAUDI and alipy.query_strategy.QueryTypeAURO

  • API change Add parameter model to AUDI and AURO algorithm who are using LabelRanking model to evaluate unlabeled data. They will train a new LabelRanking model inside the algorithm which may take a lot of time if the the labeled and unlabeled pool is large. Now, user can pass a trained LabelRanking Model to save some time if your base model is a LabelRanking model.

alipy.query_strategy.QueryTypeAURO

  • Fix Fix a bug in AURO method which will query labeled entries in the latter iteration.

alipy.query_strategy.QueryInstanceBMDR and alipy.query_strategy.QueryInstanceSPAL

  • BMDR and SPAL will relax the constraints and try to solve the QP problem again if solving the original problem is failed.

alipy.query_strategy.multi_label.LabelRankingModel

  • LabelRanking model will use the same initialization parameters instead of initializing randomly when re-training.

alipy.index.multi_label_tools.py

  • Use relative import in multi_label_tools.py.

alipy.query_strategy.cost_sensitive.py

  • Set cost to 1 instead of raising an error if cost is not provided.

Multiple modules

  • Optimize code and update comments.

  • Fix some warnings.

  • Upload the test code. exec pytest in the test folder to run the test.

  • Update example code. the labelranking model in multi label setting will be trained in an incremental way which will save a lot of time and make the performance more stable.

ALiPy v1.1.0: This is a bug-fix release with changes of LabelRankingModel API.

01 Apr 08:12
Compare
Choose a tag to compare

Upgrade from pypi

pip install --upgrade alipy

Changelog

alipy.query_strategy.QueryMultiLabelAdaptive

  • Fix Fix a bug in the implementation of QueryMultiLabelAdaptive class. # 12 by ppnman

alipy.query_strategy.QueryRandom amd alipy.query_strategy.QureyExpectedErrorReduction

  • Add deprecated warning to QueryRandom and QureyExpectedErrorReduction methods. Please use QueryInstanceRandom and QueryExpectedErrorReduction instead.

alipy.experiment.ExperimentAnalyser

  • Fix Fix a bug in the plot function which may raise an error in the old version of matplotlib.

alipy.utils.multi_thread.aceThreading

  • Fix Fix a bug that the initialization of the StateIO object in aceThreading class will raise an error when passing a multi label index. # 15 by ZMK112

alipy.query_strategy.multi_label.LabelRankingModel

  • API change Add a parameter is_incremental=False to alipy.query_strategy.multi_labels.LabelRankingModel.fit() method. You can specify whether to train the model in an incremental way now.

  • API change The default training way of label ranking method has been changed from incremental to re-initialize.

  • Update the comment of LabelRankingModel: You should normalize your data before using this model. # 14 by ppnman

Multiple modules

  • Optimize code and update comments.

  • Add __all__ to each file to expose the API

v1.0.3.1

12 Mar 01:52
Compare
Choose a tag to compare

This is a bug-fix release with changes of experiment analyser API.

Upgrade from pypi

pip install --upgrade alipy

Changelog

alipy.query_strategy.QueryInstanceBMDR and alipy.query_strategy.QueryInstanceSPAL

  • Fix Add __setstate__() and __getstate__() methods to avoid raising when pickling SPAL and BMDR object. # 9 by xuehuachunsheng

alipy.experiment.AlExperiment

  • Fix Add available strategy QueryInstanceRandom in set_query_strategy(). # 10 by xuehuachunsheng

alipy.experiment.ExperimentAnalyser

  • Feature Add a parameter plot_interval to the plot_learning_curves() function. You can specify the interval (x_axis) between each two data points in the figure now.

  • Feature Add a parameter show=False to the plot_learning_curves() function to provide an option that whether to show the image immediately. If False is given, it will return the matplotlib.pyplot object with performance data filled to let users customize some attributes of the figure. # 6 by evanzhu2013

Multiple modules

  • Add acceptable type BaseCollection of indexes.

  • Set 'liblinear' as the default solver of default model LogisticRegression.

  • Replace np.asscalar(a) with a.item() to adapt new version of numpy

  • Add an example usage of ALiPy for labeling real data. # 11 by sreevarsha

Known issues

  • If you are using a multi_thread model (e.g., RandomForest in sklearn) in the alipy.utils.multi_thread.aceThreading class, or set multi_thread=True in alipy.experiment.AlExperiment.start_query(), it will raise an error. # 9 by xuehuachunsheng

v1.0.2

26 Feb 13:49
Compare
Choose a tag to compare

Changelog

alipy.query_strategy.QueryRandom

  • API change alipy.query_strategy.QueryRandom has been renamed to alipy.query_strategy.QueryInstanceRandom. And alipy.query_strategy.QueryRandom will be deleted in the future.

  • API change alipy.query_strategy.QueryRandom.select(self, unlabel_index, batch_size=1, **kwargs) has changed to alipy.query_strategy.QueryInstanceRandom.select(self, label_index, unlabel_index, batch_size=1, **kwargs). The parameter label_index` has no effect to the algorithm. You can pass anything to it. # 1 by evanzhu2013

alipy.query_strategy.QueryInstanceQUIRE

  • API change Delete the parameter batch_size the select() function. This strategy will select only one instance at each iteration, so the parameter batch_size is actually unused. # 4 by ztono

alipy.experiment.StateIO

  • Feature You can pass a dict type to alipy.experiment.StateIO.add_state(self, state) function now. But the dict must contain the following keys: ['select_index', 'queried_info', 'performance'].

alipy.ToolBox

  • Fix Optimize the function get_query_strategy(self, strategy_name="QueryInstanceRandom", **kwargs). You can get any implemented strategies from it now. Not that, you should pass the necessary parameters to the specific strategy in a keyword-argument way (e.g., the train_idx). # 3 by Arshita27