When semi-supervised learning meets ensemble learning