## 3 Construction of Tower Mechanical Failure Dataset Based on SMOTE Algorithm  
In the process of the long-term monitoring of towers, it was found that the original dataset composed of fault information has the following characteristics: the number of samples generated by normal operation of towers is much larger than the number of samples where faults occur, the frequency of occurrence of various types of mechanical faults is different, and it is impossible to artificially control the number of samples generated by each type of fault, resulting in a poorly balanced dataset which is difficult to use directly in the machine learning process. Thus, the SMOTE algorithm was chosen to process the original dataset [22]. There are three steps in the process of implementing the SMOTE algorithm. First, the known sample points were edited to remove the points that do not play a significant role in the classification process to avoid computational overload during the subsequent process. Then, the KNN algorithm was used to select the K similar sample points that are closest to the sample point \(\mathrm{x_{i}}\). Last, M sample points \(\mathrm{x_{jn}(n=[1,2,\ldots\mathrm{M}])}\) were randomly selected among the K similar sample points. In practice, the value of M was usually taken as 5, which ensured that the operation was not too large while at the same time making the sample points grow quickly. M sample points were linked to the original sample point \(\mathrm{x_{i}}\), and any point during the period was taken as the new sample point \(\mathrm{x_{N}}\). The new sample points were constructed according to the SMOTE random formula, where \(\xi\), is a random number from 0 to 1 [23]. Repeating this process under this condition, any number of sample points corresponding to the category can be obtained. \[\mathrm{x_{N}}=\mathrm{x_{i}}+\xi\big{(}\mathrm{x_{jn}-x_{i}}\big{)}\ \xi\in(0,1), \tag{7}\]  
The SmoteOverSampling function was required for processing the dataset using the SMOTE algorithm, and the Vienna development method (VDM) algorithm was referenced in this function to calculate the nominal attribute distances [24]. In the SmoteOverSampling function, the parameters that can be adjusted are C, k, and type. The parameter C is the cost vector, which refers to the size of the cost of a sample being misclassified to another class in the classification problem. Adjusting the parameter C controls the proportion of each class in the new dataset processed with the SMOTE algorithm. In this paper, the ratio of positive class to negative class samples should be controlled as 1:1, thus the parameter C should take the value of [1; 1]. The introduced KNN algorithm must introduce the  
Figure 4: Equivalent force analysis results. parameter k, which indicates that the value is taken for the k proximity sample points around each known sample point. In the general case, the parameter k value was taken as 5. In the parameter type, two options, nominal or numeric, are available. Under nominal, the SMOTE algorithm uses VDM to process the nominal attributes to calculate the distance, and under numeric, the SMOTE algorithm uses Euclidean distance to process the nominal attributes. Thus, the nominal option was chosen as the value of the parameter type [25]. Processing the dataset with the SMOTE algorithm helped to improve classification accuracy. Figure 5 shows the comparison results of some data in the fault sample data under two-dimensional characteristics before and after processing. In the preprocessing dataset, each sample contained two features, and the ratio of positive to negative samples is 20:100. The new dataset increased the number of positive samples with the same number of negative samples, making the ratio of positive to negative samples achieve 100:100. The original dataset and the new dataset were validated separately using LibSVM.