Can machine learning identify fractal clustering in seismicity ?
Résumé fourni par la source
Software’s: MATLAB 2022b and MATLAB 2025b, and Python 3.12.2 (Anaconda distribution). The Python code depends on numpy 1.26.4, pandas 2.2.2, scikit-learn 1.8.0, imbalanced-learn 0.14.1, xgboost 2.1.3, tensorflow 2.17.0 (used with TF_USE_LEGACY_KERAS=True), hyperopt 0.2.7, matplotlib 3.10.1, openpyxl 3.1.2 and h5py 3.11.0. License: A commercial MATLAB license is required to execute the provided code. The code has not been tested with open-source alternatives (e.g., GNU Octave) and compatibility is not guaranteed. Platform: The code is platform-independent and should run on Windows, macOS, and Linux operating systems supported by MATLAB R2022b and above. The Python code was developed and tested on macOS with Python 3.12.2 and depends only on platform-independent packages, so it is expected to run without modification on Windows and Linux. Note that tensorflow 2.17.0 requires protobuf below version 5; a newer protobuf in the same environment prevents it from importing. The digital artifacts for this study are organized as follows: The input features are created using eq_distance_calculation.m and interdistance_class.m. The output (Dc classes) is generated using dc_class_calculation.m. The ML algorithms are implemented in Python as Jupyter notebooks (MAIN.ipynb), one per configuration, under ml_experiments/. Three general-purpose supervised learning algorithms, each configured for three-class classification, are used: an Artificial Neural Network (ANN), a fully connected feed-forward network terminating in a three-unit softmax layer trained under categorical cross-entropy; a Support Vector Machine (SVM), trained as a C-support vector classifier with a radial basis function kernel, with posterior probabilities obtained by Platt scaling and pairwise coupling; and a Decision Tree (DT), grown by recursive partitioning under a Gini or entropy impurity criterion. A fourth model, the Ensemble, combines the posteriors of these three by an unweighted arithmetic mean (soft voting), the predicted class being the class that maximises the combined posterior; the three members are weighted equally, and no meta-learner, stacking or per-class threshold tuning is applied. Separate models are provided for California (CAL), Turkey-Syria (TUR), and California together with Turkey-Syria (CAL_TUR). The configurations reported in the manuscript are those grouping 30 events per set at a 10 km bin width (CAL_30_EVENTS_10KM, TUR_30_EVENTS_10KM and CAL_TUR_30_EVENTS_10KM); the remaining set sizes (50, 100 and 200 events) are also included. Prior to training, Principal Component Analysis (10 components) followed by feature scaling is applied, both fitted on the training partition only, and class imbalance in the training partition is addressed using SMOTE. Two further analyses are provided under additional_analyses/. smote_validation.py evaluates whether the synthetic samples generated by SMOTE remained consistent with the Dc distributions of the corresponding real classes, by recovering Dc from each synthetic inter-earthquake distance histogram and comparing it against the real samples of the same class. balancing_comparison.py compares model performance under different class-balancing strategies, namely SMOTE, bootstrap oversampling, random undersampling, and no resampling.
Ce résumé expose les affirmations des auteurs. BNTIC ne l’interprète pas comme une validation indépendante des résultats.
Contrôle bibliographique ouvert
Institutions déclarées
Une affiliation ne permet pas de déduire la nationalité d’un auteur.