ALiPy: Active Learning in Python is an active learning python toolbox, which allows users to conveniently evaluate, compare and analyze the performance of active learning methods.
pip install --upgrade alipy
This is a bug-fix release with robustness improvements.
pip install --upgrade alipy
examples/AL_settings/query_instance.py
.time.clock()
method no longer exists in higher version of python.This is a bug-fix release with robustness improvements.
pip install --upgrade alipy
np.log()
to aviod NaN in query_labels.py
.query_labels.py
.@
operator for matrix multiplying to adapt the new version of cvxpy in SPAL and BMDR methods.Fix bugs when calculating fp/tp related metrics through toolbox object.
This is a bug-fix release with robustness improvements.
pip install --upgrade alipy
ALiPy v1.2.0: This is a bug-fix release with api changes of AURO and AUDI.
pip install --upgrade alipy
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
alipy.query_strategy.multi_label.LabelRankingModel
alipy.index.multi_label_tools.py
alipy.query_strategy.cost_sensitive.py
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.
pip install --upgrade alipy
alipy.query_strategy.QueryMultiLabelAdaptive
Fix
Fix a bug in the implementation of QueryMultiLabelAdaptive
class. # 12 by ppnmanalipy.query_strategy.QueryRandom
amd alipy.query_strategy.QureyExpectedErrorReduction
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 ZMK112alipy.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
Optimize code and update comments.
Add __all__
to each file to expose the API
This is a bug-fix release with changes of experiment analyser API.
pip install --upgrade alipy
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 xuehuachunshengalipy.experiment.AlExperiment
Fix
Add available strategy QueryInstanceRandom
in set_query_strategy()
. # 10 by xuehuachunshengalipy.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
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
alipy.utils.multi_thread.aceThreading
class, or set multi_thread=True
in alipy.experiment.AlExperiment.start_query()
, it will raise an error. # 9 by xuehuachunshengalipy.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 ztonoalipy.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