def fit_sub(sub_inds, X_L, y_L, X_U, est):
    """ Fits a particular subspace and predicts unlabeled observations
    :param sub_inds: feature inds to create subspace
    :param X_L: feature corresponding to labeled observations
    :param y_L: targets of labeled observations
    :param X_U: features of unlabeled observations
    :param est: estimator to use
    :return: prediction probabilities of unlabeled observations
    """
    X_L_sub = X_L[:, sub_inds]
    est.fit(X_L_sub, y_L)
    probs_pred = est.predict_proba(X_U[:, sub_inds])
    return probs_pred