Label Propagation
Anonymous contributor
Published Oct 20, 2024
Contribute to Docs
Label Propagation is a semi-supervised learning algorithm used in classification problems where a small portion of the data is labeled, and the remaining data is unlabeled. The algorithm spreads the label information from the labeled instances to the unlabeled ones by propagating labels across the graph built from the input data. In Scikit-learn, this is implemented as part of the sklearn.semi_supervised
module.
Scikit-learn provides two closely related semi-supervised algorithms:
- Label Propagation: Propagates labels through the graph using a probabilistic transition matrix.
- Label Spreading: A variant of Label Propagation that uses a normalized graph Laplacian to reduce noise sensitivity.
Syntax
from sklearn.semi_supervised import LabelPropagation
# Create a LabelPropagation object with desired parameters
model = LabelPropagation(kernel='rbf', gamma=1, max_iter=1000)
# Fit the model to your data
model.fit(X, y)
# Predict labels for unlabeled data
y_pred = model.predict(X_unlabeled)
kernel
: The kernel function used for label propagation. Common options arerbf
(radial basis function),knn
(k-nearest neighbors), andpoly
(polynomial).gamma
: The kernel coefficient for therbf
kernel.max_iter
: The maximum number of iterations for the label propagation algorithm.X
: The input data, where each row is a sample and each column is a feature.y
: The corresponding labels for the labeled samples.X_unlabeled
: The input data for the unlabeled samples.
Example
In the following example, a small set of labeled points (y = 0, 1
) and unlabeled points (y = -1
) is given. The Label Propagation algorithm spreads the known labels to the unlabeled data points based on their proximity.
import numpy as npfrom sklearn.semi_supervised import LabelPropagationimport matplotlib.pyplot as plt# Create synthetic dataX = np.array([[1, 1], [2, 1], [3, 2], [5, 5], [6, 5], [7, 6]])y = np.array([0, 0, 1, -1, -1, -1]) # -1 represents unlabeled data# Initialize Label Propagation modelmodel = LabelPropagation()model.fit(X, y)# Predict labels for unlabeled datapredicted_labels = model.transduction_print("Predicted labels:", predicted_labels)# Plotting the dataplt.scatter(X[:, 0], X[:, 1], c=predicted_labels, cmap='viridis', s=100)plt.show()
The output of the above code will be:
Predicted labels: [0 0 1 1 1 1]
All contributors
- Anonymous contributor
Contribute to Docs
- Learn more about how to get involved.
- Edit this page on GitHub to fix an error or make an improvement.
- Submit feedback to let us know how we can improve Docs.
Learn Python:Sklearn on Codecademy
- Career path
Data Scientist: Machine Learning Specialist
Machine Learning Data Scientists solve problems at scale, make predictions, find patterns, and more! They use Python, SQL, and algorithms.Includes 27 CoursesWith Professional CertificationBeginner Friendly95 hours - Course
Learn Python 3
Learn the basics of Python 3.12, one of the most powerful, versatile, and in-demand programming languages today.With CertificateBeginner Friendly23 hours