Skip to content

AdaTSK

Article: G. Xue, Q. Chang, J. Wang, K. Zhang and N. R. Pal, "An adaptive neuro-fuzzy system with integrated feature selection and rule extraction for high-dimensional classification problems", IEEE Transactions on Fuzzy Systems, vol. 31, no. 7, pp. 2167-2181, 2023.

Script: examples/reproductions/adatsk_2022.py

The same article proposes FSRE-AdaTSK, the version with feature selection and rule extraction, which has its own reproduction.

Protocol of the Article

Section IV of the article, for the classifier without feature selection (its Table III).

Point Article In the script
Fuzzy sets three per feature, centres evenly placed between the minimum and the maximum of the training part defaults (mf_init="grid", n_mfs=3)
Membership \(e^{-(x - m)^2}\): no spread to train (Eq. 3) default (ADATSKGaussianMF, spreads fixed at 1)
Firing strength Ada-softmin, index \(\lceil 690 / \ln \min_d \mu \rceil\), not below \(-1000\) (Eqs. 15 and 16) default
Consequents start at zero default
Loss squared error summed over the classes and halved (Eq. 8) default
Optimizer gradient descent on the whole training set default
Learning rate and iterations not stated learning_rate=0.05, epochs=1000
Normalization of the consequent inputs none consequent_batch_norm=False
Inputs not stated scaled to \([0, 1]\) with the range of the training part
Evaluation ten-fold cross-validation, repeated five times the same, stratified folds

Result

Output of the script, on one thread:

Table III: AdaTSK (mean test accuracy in percent)
std: over the runs, and over the means of the repetitions
dataset   article  highFIS          std
Iris         95.5    94.67  5.33 / 0.42
Wine         98.7    96.52  4.18 / 0.67
Wdbc         94.3    94.13  3.11 / 0.14

Summary of the last model fitted
ADATSKClassifier
  task               classification, 2 classes
  features           30 seen in fit, 30 used by the model
  rules              3 (rule base: coco)
  fuzzy sets         3 per feature, ADATSKGaussianMF
  firing strength    AdaSoftminRuleLayer
  defuzzifier        SumBasedDefuzzifier
  consequents        ClassificationConsequentLayer
  parameters         276 trainable (90 antecedent, 186 consequent)
Training
  batch size         full batch
  epochs             1000 epochs, learning rate 0.05, training loss 0.5000 -> 0.0677, training accuracy 0.9435

Iris and Wdbc are reproduced within one point. Wine is 2.2 points below, with a learning rate and a number of iterations that the article does not state: with a learning rate of 0.1 and 3000 iterations highFIS gives 97.33, 98.33 and 95.96 on the three datasets (ten folds).

Differences from the Article

  • Learning rate and iterations. Not stated in the article; chosen here.
  • Defaults of the estimator. ADATSKClassifier defaults to a learning rate that falls with the number of features (learning_rate="auto"), 300 epochs and normalization of the consequent inputs, a setting that is stable in low and in high dimension. With the defaults the three datasets give 94.7, 99.4 and 96.8 with seed 0.
  • Datasets. The article uses nineteen datasets. Iris, Wine and Wdbc ship with scikit-learn.

Reproducibility

The script fixes the seeds, uses deterministic algorithms and one thread, and ends by printing the versions of the libraries and the processor. Another processor or another version of the numerical libraries can change the last digits.

Run It

python examples/reproductions/adatsk_2022.py

No download is needed. A run takes about five minutes.