# An Auto-Adjustable Semi-Supervised Self-Training Algorithm
## 3 Auto-Adjustable Self-Training Semi-Supervised Algorithm  
In this section, we present the proposed SSL algorithm which is based on the self-training framework. We recall that two main difficulties in self-training is the decision of which base learner to choose for a specific problem and how to find a set of high confidence predictions of unlabeled data. Therefore, in order to address these difficulties, we consider starting with an initial pool of classifiers and during the training process, to dynamically select the most promising classifier, relative to the most confident predictions. A high-level description of the proposed semi-supervised algorithm, entitled Auto-Adjustable Self-Training (AAST), is presented in Algorithm 1 which consists of two phases: in the 1 st phase, the most promising classifier is selected from a pool of classifiers based on the number of confident predictions of unlabeled data, whereas in the 2 nd phase, the most promising classifier is trained within the self-training framework. Suppose that \(C=(C_{1},C_{2},\ldots,C_{N})\) constitutes a set of \(N\) classifiers which can be used as base learners in the self-training framework. Initially, all base learners \(C_{i}\in C\) are trained using the same small amount of labeled data \(L\) and then applied on the same unlabeled data \(U\). Subsequently, the labeled set \(L_{i}\) of each classifier \(C_{i}\) is iteratively augmented gradually using its own most confident predictions. More specifically, each classified unlabeled instance that has achieved a probability value over a defined threshold \(c\), is considered sufficiently reliable in order to be added to the classifier's labeled set \(L_{i}\) for the following training phases. It is worth mentioning that the way the confidence predictions are measured, depends on the type of the used base learner (see [19; 27; 28] and the references there in). Finally, each classifier is re-trained using its own new enlarged training set. ```
Input:\(L-\) Set of labeled training instances. \(U-\) Set of unlabeled training instances. \(c-\) Confidence level. \(k-\) Iterations per cycle's. \(C=(C_{1},C_{2},\ldots,C_{N})-\) Set of \(N\) base learners. Output:\(C_{p}-\) Trained classifier. /* Phase I: Classifier Selection */
1:repeat
2:for\(i=1\)to\(N\)do
3: Set \(L_{i}=L\) and \(U_{i}=U\). 4:endfor
5:for\(j=1\)to\(k\)do
6:for each (classifier \(C_{i}\in C\))do
7: Apply \(C_{i}\) on \(L_{i}\). 8: Select instances with a predicted probability more than threshold \(c\) per iteration (\(x_{MCP}^{(i)}\)). 9: Remove \(x_{MCP}^{(i)}\) from \(U_{i}\) and add to \(L_{i}\). 10:endfor
11:endfor
12: Select classifier \(C_{m}\in C\) with the fewest labeled instances. 13: Remove the classifier \(C_{m}\) from the set \(C\). 14: Select classifier \(C_{M}\in C\) with the most labeled instances. 15: Set \(L=L_{M}\) and \(U=U_{M}\). 16: Set \(N=N-1\). 17:until one classifier remains in set \(C\). 18: Set \(C_{p}\) the only classifier in set \(C\). ```  
**Algorithm 1**Auto-Adjustable Self-Training (AAST). The proposed algorithm in order to select a base learner from set \(C\) is grounded on the following simple idea: _the most promising base learner is probably the base learner with the most confident predictions_. In other words, the base learner that is able to confidently label as many unlabeled instances as possible in order to explore them is the most promising classifier. Every \(k\) iterations (which we call a _cycle_), AAST evaluates the base learner in set \(C\) and selects the classifier \(C_{m}\) with the minimum number of most confident predictions as well as the classifier \(C_{M}\) with the maximum number of most confident predictions. Subsequently, the classifier \(C_{m}\) is removed from the set \(C\) and the classifier \(C_{M}\) will provide its labeled set \(L_{M}\) and its unlabeled set \(U_{M}\) for all the rest classifiers for the next cycle.