Releases: NUAA-AL/ALiPy
ALiPy v1.2.5
Upgrade from pypi
pip install --upgrade alipy
Change log
- 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.
- fix and close #33 that the labels of the dataset will sometimes be modified if BMDR or SPAL methods are used.
- fix a bug in batch-mode Coreset strategy (#32)
ALiPy v1.2.4
This is a bug-fix release with robustness improvements.
Upgrade from pypi
pip install --upgrade alipy
Change log
- Fix a bug in
examples/AL_settings/query_instance.py
. - Add examples of coreset and density weighted methods.
- When initializing a Toolbox object, it will try to load existed ToolBox object if there is one in the saving_path.
- fix the issue that
time.clock()
method no longer exists in higher version of python.
ALiPy v1.2.3
This is a bug-fix release with robustness improvements.
Upgrade from pypi
pip install --upgrade alipy
Change log
- Add a small number in
np.log()
to aviod NaN inquery_labels.py
. - Add coreset greedy (ICLR18) and density weighted query strategies to
query_labels.py
. - Update the example codes of query labels to save the results of different strategies with different names.
- Use
@
operator for matrix multiplying to adapt the new version of cvxpy in SPAL and BMDR methods. - Fix bugs in SPAL and BMDR methods which will occasionally misuse the ground-truth labels.
ALiPy v1.2.2
Fix bugs when calculating fp/tp related metrics through toolbox object.
ALiPy v1.2.1
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
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 parametermodel
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.
Upgrade from pypi
pip install --upgrade alipy
Changelog
alipy.query_strategy.QueryMultiLabelAdaptive
Fix
Fix a bug in the implementation ofQueryMultiLabelAdaptive
class. # 12 by ppnman
alipy.query_strategy.QueryRandom
amd alipy.query_strategy.QureyExpectedErrorReduction
- Add deprecated warning to
QueryRandom
andQureyExpectedErrorReduction
methods. Please useQueryInstanceRandom
andQueryExpectedErrorReduction
instead.
alipy.experiment.ExperimentAnalyser
Fix
Fix a bug in the plot function which may raise an error in the old version ofmatplotlib
.
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 parameteris_incremental=False
toalipy.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
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 strategyQueryInstanceRandom
inset_query_strategy()
. # 10 by xuehuachunsheng
alipy.experiment.ExperimentAnalyser
-
Feature
Add a parameterplot_interval
to theplot_learning_curves()
function. You can specify the interval (x_axis) between each two data points in the figure now. -
Feature
Add a parametershow=False
to theplot_learning_curves()
function to provide an option that whether to show the image immediately. IfFalse
is given, it will return thematplotlib.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)
witha.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 setmulti_thread=True
inalipy.experiment.AlExperiment.start_query()
, it will raise an error. # 9 by xuehuachunsheng
v1.0.2
Changelog
alipy.query_strategy.QueryRandom
-
API change
alipy.query_strategy.QueryRandom
has been renamed toalipy.query_strategy.QueryInstanceRandom
. Andalipy.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 toalipy.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 parameterbatch_size
theselect()
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 toalipy.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 functionget_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