# Label Algorithms

## Unbalanced labels

1. 1.
imbalance learn - is an open-source, MIT-licensed library that provides tools when dealing with classification with imbalanced classes.
2. 2.
Classifying Job Titles With Noisy Labels Using REINFORCE this article has a very nice trick in adding a reward component to the loss function in order to mitigate for unbalanced class label problem, instead of the usual balancing.
Imbalance Learn comparison

Note: very much related to weakly and semi supervision, i.e., we have small amounts of labels and we want to generalize the labels to other samples, see also weak supervision methods.
1. 1.
Step 1: build a laplacian graph using KNN, distance metric is minkowski with p=2, i.e. euclidean distance.
2. 3.
Spreading (propagation upgrade), Essentially a community graph algorithm, however it resembles KNN in its nature, using semi supervised data set (i.e., labeled and unlabeled data) to spread or propagate labels to unlabeled data, with small incrementations in the algorithm, using KNN-like methodology, each unlabeled sample will be given a label based on its 1st order friends, if there is a tie, a random label is chosen. Nodes are connected by using a euclidean distance.
3. 4.
Difference between propagation and spreading is a laplacian matrix, vs normalized LM
4. 9.
5. 10.
Medium,
6. 11.
Sklearn, 1, 2, 3, 4, 5,
1. 2.
Git2
1. 1.
Harmonic Function (HMN) [Zhu+, ICML03]
2. 2.
Local and Global Consistency (LGC) [Zhou+, NIPS04]
3. 3.
Partially Absorbing Random Walk (PARW) [Wu+, NIPS12]
4. 4.
OMNI-Prop (OMNIProp) [Yamaguchi+, AAAI15]
5. 5.
Confidence-Aware Modulated Label Propagation (CAMLP) [Yamaguchi+, SDM16]
2. 3.
1. 1.
Presentation 1,2
Neo4j 1, 2, 3,

## Label Noise

1. 1.
clean lab - "`cleanlab` is the data-centric ML ops package for machine learning with noisy labels. `cleanlab` `clean`s `lab`els and supports finding, quantifying, and learning with label errors in datasets. See datasets cleaned with `cleanlab` at labelerrors.com. Check out the: cleanlab code documentation. `cleanlab` is powered by confident learning, published in this paper | blog."
1. 3.
can be used for positive unlabeled learning
2. 2.
PULearn - "Positive-unlabeled learning (aka PU-learning) is a machine learning scenario for binary classification where the training set consists of a set of positively-labeled examples and an additional unlabeled set that contains positive and negative examples in unknown proportions (so no training example is explicitly labeled as negative). Positive-unlabeled learning methods aim to incorporate the unique structure of this scenario into the learning process, in a way that improves generalization of the learned notion of the positive class, when compared to simply treating all unlabeled examples as negative examples, or alternatively discarding them and training a one-class classifier over only the positive samples."
3. 3.
PUMML, Medium - "Positive and Unlabeled Materials Machine Learning (pumml) is a code that uses semi-supervised machine learning to classify materials from only positive and unlabeled examples."