## 5 Results and Analysis
### Experimental Setup  
The experiments were implemented on a commercial computer, which was equipped with 3.6 GHz processors and 16 GB main memory. The models were implemented in Python 3.8, using TensorFlow 2.4.0 [30], Keras 2.4.3 [31], and Scikit-learn libraries [32]. The disk SMART data were from Backblaze [33], which is one of the biggest data centers in the world, and we chose two models' data (ST4000 DM000 and ST12000 NM0007) from 2020-01 to 2020-12 to evaluate our methods. To simplify the presentation, DM000 and NM0007  
Figure 5: Training and validation loss with increasing epochs for a disk type: (a) CNN; (b) LSTM. were used to represent the two types, respectively, in the latter description, and the specific information of the used datasets is shown in Table 2. Each disk was classified either as \"Healthy\" or \"Failed\". In this table, the number of healthy disks and failed disks are shown in the 4 th and 5 th columns, respectively, \"Total\" means the total number of disks, which is equal to the sum of the number of healthy and failed disks. \"Sample\" indicates the SMART records. Each healthy disk or failed disk has many SMART records, and they were the input for training models. \"Attr.\" is the original number of SMART attributes in the two datasets. The model quality was evaluated using the precision, recall, and F1-score, and they were calculated using Equations (6), (7) and (8), respectively. Precision indicates the proportion of true positive samples (TP) among all predicted failures and reflects the accuracy of the classifier in identifying failures. Recall represents the proportion of TP within all actually failed disks, and this reflects the classifier's ability to recognize failures. F1-Score is the harmonic average of precision and recall. They all range from 0 to 1, and the higher, the better. Furthermore, the modeling latency was recorded, to evaluate the timeliness of the schemes, where this consisted of training and prediction latency. \[Precision=\frac{TP}{TP+FP} \tag{6}\]  
\[Recall=\frac{TP}{TP+FN} \tag{7}\]  
\[F1-Score=\frac{2\times Precision\times Recall}{Precision+Recall} \tag{8}\]  
To evaluate the performance of the proposed methods, two groups of schemes were evaluated. The first group was for the attribute filtering which was the first layer of feature selection, and the schemes were as follows:  
* _Original_ is the baseline, which uses all attributes for modeling;
* _Pearson_ is the scheme that selects features based on [PERSON]'s correlation coefficient, as used in [9];
* _Spearman_ is the scheme that selects features based on Spearman's correlation coefficient. * _J-Index_ is a feature selection method based on J-index, as used in [8];
* _Entropy_ is the proposed scheme that uses entropy to select features without further attribute reduction;
* _Gini_ is the proposed scheme without further attributes reduction, which selects features based on the Gini index. The second group was used to evaluate the performance of our attribute reduction scheme which was the second layer of feature selection. In this paper, two methods were used to determine the correlation between attributes: Pearson's correlation coefficient and Spearman's correlation coefficient as described in Section 4.3. Thus, the selection results in the first group were reduced using two methods. When using [PERSON]'s correlation coefficient, the evaluated schemes were named _Org_Prs_, _Prs_, _Sprn_Prs_, _Jidx_Prs_, _Ent_Prs_, and _Gini_Prs_. _Org_Prs_ used Pearson's correlation coefficient for attribute reduction based on _Original_; _Prs_Prs_ is the scheme that applied the _Pearson_ method for the first layer feature selection (feature filtering) and also used [PERSON]'s correlation coefficient to determine the correlation between the selected attributes for attribute reduction. Using the same logic, the other methods, including _Sprn_Prs_, _Jidx_Prs_, _Ent_Prs_, and _Gini_Prs_, used [PERSON]'s