*Click to learn more about author Paolo Tamagnini.*

The Guided Labeling series of blog posts began by looking at when labeling is needed — i.e., in the field of machine learning when most algorithms and models require huge amounts of data with quite a few specific requirements. These large masses of data need to be labeled to make them usable. Data that is structured and labeled properly can then be used to train and deploy models.

In the first episode of our Guided Labeling series, *An Introduction to Active Learning*, we looked at the human-in-the-loop cycle of active learning. In that cycle, the system starts by picking examples it deems most valuable for learning, and the human labels them. Based on these initially labeled pieces of data, a first model is trained. With this trained model, we score all the rows for which we still have missing labels and then start active learning sampling. This is about selecting or re-ranking what the human-in-the-loop should be labeling next to best improve the model.

There are different active learning sampling strategies, and in today’s blog post, we want to look at the label density technique.

**Label Density**

When labeling data points, the user might wonder about any of these questions:

- “Is this row of my dataset representative of the distribution?”
- “How many other still unlabeled data points are similar to this one that I’ve already labeled?”
- “Is this row unique in the dataset — is it an outlier?”

The above are all fair questions. For example, if you only label outliers, then your labeled training set won’t be as representative as if you had labeled the most common cases. On the other hand, if you label only common cases of your dataset, then your model would perform badly whenever it sees something just a bit exceptional to what you have labeled.

The idea behind the *Label
Density *strategy is that when labeling a dataset, you want to
label where the feature space has a dense cluster of data points. What is the
feature space?

**Feature Space**

The feature space represents all the possible combinations of column values (features) you have in the dataset. For example, if you had a dataset with only people’s *weight *and *height, *you would have a 2-dimensional Cartesian plane. Most of your data points here will probably be around 170 cm and 70 kg. So, around these values, there will be a high density in the 2-dimensional distribution. To visualize this example, we can use a 2D density plot.

In Figure 1, density is not simply concentrical to the center of the plot. There is more than one dense area in this feature space. For example, in the picture, there is one dense area featuring a high number of people around 62 kg and 163 cm and another area with people who are around 80 kg and 172 cm. How do we make sure we label in both dense areas, and how would this work if we had dozens of columns and not just two?

The idea would be to explore and move in the dataset n-dimensional feature space from dense area to dense area until we have prioritized all the most common feature combinations in the data. To measure the density of the feature space, we compute a distance measure between a given data point and all the others surrounding it using a certain radius.

**Euclidean Distance Measure**

In this example, we use the Euclidean distance measure on top of the weighted mean subtractive clustering approach (Formula 1 below), but other distance measures can be used too. By means of this average distance measure to data points in the proximity, we can rank each data point by density. If we take the example in Figure 1 again, we can now locate which data point is in a dark blue area of the plot simply by using Formula 1. This is powerful because it will also work no matter how many columns you have.

This ranking, however, has to be changed each time we add more labels. We want to avoid always labeling in the same dense areas and continue exploring for new ones. Once a data point is labeled, we don’t want the other data points in its dense neighborhood to be labeled as well, in future iterations. To enforce this, we reduce the rank for data points within the radius of the labeled one (Formula 2 below).

Once the density rank is updated, we can retrain the model and move to the next iteration of the active learning loop. In the next iteration, we explore new dense areas of the feature space thanks to the updated rank, and we show new samples to the human-in-the-loop in exchange of labels (Figure 2 below).

**Wrapping Up**

In this episode, we’ve looked at:

- Label density as an active sampling strategy
- Labeling in all dense areas of feature space
- Measuring the density of features space with the Euclidean distance measure and the weighted mean subtractive clustering approach

In the next blog article in this series, we’ll be looking at model uncertainty. This is an active sampling technique based on the prediction probabilities of the model on still unlabeled rows. Coming soon!