Co-training is a semi-supervised learning technique where multiple classifiers are trained on different views of the data to leverage unlabeled data effectively. It works on the assumption that each view is sufficient to predict the class label and the views are conditionally independent given the class label.