## 4 Results and Discussion  
### Data Description  
The data used in this paper are from a wind farm located in China. There are 24 wind turbines on the wind farm, installed with direct-drive, variable-speed, and variable-pitch generators. The available alarm data and maintenance records are from May 2016 to October 2017. There are a total of 261 maintenance records.  
First, alarm data were preprocessed. After segmenting alarm sequences using the alarm I2, we obtained 1626 alarm sequences. An alarm sequence is given as an example and shown in Figure 6. To maintain confidentiality, the turbine number and the description have been concealed. The raw alarm sequence contains 31 alarms. The blue-font alarms are repeated alarm records. The red-font alarms are chattering alarms. After removing redundant alarms, there are still 22 alarms remaining in the alarm sequence. Afterward, the labeled alarm sequence dataset (Dataset A) and the unlabeled alarm sequence dataset (Dataset B) were built by matching the alarm sequences and maintenance records. As shown in Figure 6, the fault type that triggered the example alarm sequence is pitch motor driver failure and labeled as fault \(y_{0}\). Later, by loading pretrained alarm vectors, an individual alarm is transformed into an \(n\)-dimensional vector representation, and the alarm sequence is transformed into an \(n\times l\) matrix. Then, the transformed alarm sequence is paired with another alarm sequence as an input pair, which is fed into the S-ECNN model.  
For all the data, we obtained 261 labeled alarm sequences. For the sake of verification, we selected the fault categories that occurred more than six times to form Dataset A. The final Dataset A consists of 74 alarm sequences, and Dataset B consists of 1365 alarm sequences. For Dataset A, the fault categories and the number of each category are listed in Table 4. About 75% of the alarm sequences for each fault category form the training set, and the others form the test set.  
For the proposed S-ECNN model, the input is a pair of alarm sequences, which are selected from Dataset A. Suppose there are \(M\) alarm sequences in the training set. The number of non-repeated combinations of choosing two alarm sequences from Dataset A to form an input pair is calculated as:  
\[C_{M}^{2}=0.5M(M-1). \tag{13}\]  
Therefore, the number of constructed input pairs is 1596. Among them, 217 pairs of inputs are with the same fault category, and 1379 pairs of inputs are with different fault categories. Thus, the number of training samples is remarkably enlarged by constructing input pairs. The input pairs for the test set are constructed in the same way.  
\begin{table}
\begin{tabular}{c c c} \hline \hline
**Label** & **Fault Categories** &
\begin{tabular}{c} **Number of Alarm Sequences** \\ **(Training Set/Test Set)** \\ \end{tabular} \\ \hline F1 & Hub speed encoder fault & 8 (6/2) \\ F2 & Pitch system communication fault & 8 (6/2) \\ F3 & Vibration sensor fault & 9 (7/2) \\ F4 & Pitch motor driver fault & 10 (8/2) \\ F5 & Generator stator fault & 10 (8/2) \\ F6 & Frequency-converter communication fault & 14 (11/3) \\ F7 & Wind vane fault & 15 (11/4) \\ \hline \hline \end{tabular}
\end{table}
Table 4: The fault categories and the number of labeled alarm sequences.  
\begin{table}
\begin{tabular}{c c c c c c c c c c c c} \hline \hline
**Table** & **Designing Data** & **Amm Captions** & **Amm Captions** & **D****T**eight & **D****T**eight & **D****T**eight & **Amm Captions** & **Amm Captions** & **Amm Captions** & **Amm Captions** \\ \hline PR & 23650113.03 & 4.9 & **1.0**