Package: dpyacl
DPyACL
            Distributed Python Framework for Active Learning

                           May 2020
		    Alfredo Lorie Bernardo							

                         version 0.3.3IntroductionDPyACLis a flexible Distributed Active Learning library written in Python, aimed to make active learning experiments
simpler and faster. Its leverage Dask distributed features to execute active learning experiments computations among a
cluster of computers, allowing to speed up computation and tackle scenarios where data doesn't fit in a single computer.
It also has been developed with a modular object-oriented design to provide an intuitive, ease of use interface and
to allow reuse, modification, and extensibility. It also offers full compatibility with libraries like NumPy, SciPy,
Pandas, Scikit-learn and  Keras. This library is available in PyPI and distributed under the GNU license.4Up to date, DPyACL heavily uses Dask library to implement in a distributed and parallel fashion the the most significant
strategies strategies that have appeared on the single_label-label.
For future releases, we hope to include strategies strategies related with  multi-label learning paradigms.DownloadGitHub:https://github.com/a24lorie/DPyACLUsing DPyACLThe fastest way to useDPyACLis from a Jupyter Notebook.Preparing an experimentWhen defining an Active Learning experimentDPyACLoffers set pre-defined components that can be configured and
combined by the user to better fit its needs. The required components to setup and experiment are listed belowThe DatasetLabelled and unlabelled sets: Optional - The experiment might be configured to randomly choose an initial labeled and unlabeled setsAn Experiment: HoldOut and KFold experiments are providedThe AL scenario: The current release provides a Pool Based ScenarioThe Machine Learning Technique: It can be a machine learning technique from any library that provides an API compatible with thefit,predictandpredict_probadefinitions. Sklearn, Dask-ML, Keras are compatibleThe Evaluation Method(s)The Query StrategyThe Stopping CriteriaThe Oracle: The current release provides a Simulated OracleConfiguring the experimentml_technique=LogisticRegression(solver='liblinear')stopping_criteria=MaxIteration(50)query_strategy=QueryMarginSampling()performance_metrics=[Accuracy(),F1(average='macro'),Precision(average='macro'),Recall(average='macro')]experiment=HoldOutExperiment(client=None,X=_X,Y=_y,scenario_type=PoolBasedSamplingScenario,train_idx=train_idx,test_idx=test_idx,label_idx=label_idx,unlabel_idx=unlabel_idx,ml_technique=ml_technique,performance_metrics=performance_metrics,query_strategy=query_strategy,oracle=SimulatedOracle(labels=_y),stopping_criteria=stopping_criteria,self_partition=False)Execute the experimentresult=experiment.evaluate(verbose=True)Analyze the experiment resultsquery_analyser=ExperimentAnalyserFactory.experiment_analyser(performance_metrics=[metric.metric_nameformetricinperformance_metrics],method_name=query_strategy.query_function_name,method_results=result,type="queries")# get a brief description of the experimentquery_analyser.plot_learning_curves(title='Active Learning experiment results')ContributionIf you find a bug, send apull requestand we'll discuss things. If you are not familiar with "pull request" term I recommend reading the followingarticlefor better understanding