Paper · 2020-12-10 · cs.LG, cs.AI
An IoT Framework for Heart Disease Prediction based on MDCNN Classifier
Proposes an IoT heart-disease classifier. Features are picked by a modified cuttlefish search (MCFA), and a fully connected network (MDCNN) has its weights set by elephant-herd optimization (AEHO). Author-reported: 98.2% accuracy on a 4000-record Framingham set, against 88.3% for logistic regression and 83.8% for a plain deep network. No official code.
Feature selectionMetaheuristic optimizationheart-diseaseclinical-predictioniotfeature-selectionmetaheuristic
AI-compiled by claude-haiku-5-5 on 2026-11-01, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
In plain words
The paper proposes a system for spotting heart disease from patient records. Body sensors such as a smartwatch and a heart monitor feed readings to a cloud server, and a classifier sorts each patient into normal or abnormal. The classifier is a small neural network. Two search procedures inspired by animal behaviour do the tuning: one picks which patient attributes to keep, and the other sets the network's weights.
The authors compare the result with logistic regression and a plain deep network on public heart-disease datasets. On their own reported numbers, the proposed method scores highest on every dataset they test. These are the authors' results, and the paper releases no code.
TL;DR
A pipeline of pre-processing, feature selection and classification. Feature selection uses a modified cuttlefish search (MCFA) §II-B. The classifier, MDCNN, is a fully connected network whose weights are tuned by elephant-herd optimization (AEHO) §II-C §II-D. Author-reported accuracy is 98.2% on the Framingham data with 4000 records tab. 8. The paper does not state the network's layers or sizes, the train/test split, or the search settings, so the results cannot be reproduced from the text alone.
Problem
Heart disease is the leading cause of death, and early diagnosis is hard §I. The authors argue that accuracy of existing diagnosis methods is low §I, abstract. Their stated concern is that a classifier trained on sensor data can give an erroneous outcome if the sensor values are tested directly, which motivates a trained model §II, para. 2. The experiments compare the method with logistic regression and a plain deep network on the authors' datasets §IV. The literature accuracies in tab. 10 are quoted, not re-run.
Method
The pipeline has three stages fig. 1 §II.
- Pre-processing §II-A. Fill missing attributes from matching patients, remove redundant attributes, and separate patients by chest-pain type. The rule for "most attribute values match" is not stated.
- Feature selection with the modified cuttlefish algorithm (MCFA) §II-B. The search starts from a chaos-mapped population eq. 1 eq. 2. Each candidate solution is updated by one of four categories, each built from one or two of six cases eq. 4 to eq. 10. The new solution is the sum of a reflection term and a visibility term eq. 3.
- Classification with the MDCNN §II-C. The selected features are passed through a layer of weighted sums, a Gaussian term eq. 15, and an output unit whose error is back-propagated eq. 18 eq. 19 eq. 20. The weights are then optimized with AEHO §II-D §II-E.
The pseudocode below combines §II-B and §II-E. Only the structure is reproduced; the parameter values are not stated.
# MCFA candidate update, one of four categories [§II-B] [eq. 1-10]
# Input: candidate position, category, best points, reference group
# Output: new candidate position
def mcfa_update(candidate, category, best, group):
# Chaos values from the logistic-map recurrences [eq. 1] [eq. 2]
chaos_r = logistic_step(chaos_r) # Cr; delta not stated
chaos_b = logistic_step(chaos_b) # Br; delta not stated
# Reflection term depends on the category case [eq. 4] [eq. 6] [eq. 8]
reflection = category_reflection(category, chaos_r, group)
# Visibility term depends on the same case [eq. 5] [eq. 7] [eq. 9]
visibility = category_visibility(category, chaos_b, best, group)
# New solution is the sum of the two terms [eq. 3]
return reflection + visibility# AEHO weight search [§II-E] [eq. 21-26]
# Input: weight vectors X_1..X_n; maximum generation M_G (not stated)
# Output: best weight vector found
def aeho(population, max_generation):
# Start at generation 1 [§II-E]
generation = 1
while generation < max_generation:
# Rank elephants by fitness; the fitness function is not stated
sort_by_fitness(population)
for clan in clans(population):
for elephant in clan:
# Move towards the clan's matriarch [eq. 21]
candidate = move_towards_matriarch(elephant, clan)
# The best elephant is pulled to the clan centre [eq. 22-23]
if elephant is clan.best:
candidate = beta * clan_centre(clan)
# Worst elephants are reinitialised [eq. 24]
replace_worst_elephants(clans)
# Two-point crossover and gene-swap mutation [eq. 25-26]
crossover_and_mutate(population)
generation = generation + 1
return best_of(population)The MDCNN forward pass and error signal are as follows §II-C eq. 11-19.
# MDCNN forward pass, one hidden layer [§II-C] [eq. 13-19]
# Input: selected features F (n,); weights W (n,); bias B; target D
# Output: error signal E_r and delta
def mdcnn_step(features, weights, bias, target):
# Weighted sum of the inputs [eq. 13]
summed = sum(features * weights)
# Gaussian term per input [eq. 15]
gauss = exp(-features ** 2) # C_i, as printed
# Activation, as printed [eq. 14]
activation = gauss * summed
# Hidden-layer output [eq. 16]
hidden = bias + sum(gauss * weights)
# Output unit from the previous layer's outputs [eq. 17]
output = bias + sum(hidden * weights)
# Error between target and output [eq. 18]
error = target - output
# Error signal; f() is not defined in the paper [eq. 19]
delta = error * f(output)
return deltaKey equations, as printed (the paper's notation is kept):
P_{new,E_m,u} = P_{E_m,u} + \alpha\,(P_{best,E_m} - P_{E_m,v})\,\times Rd eq. 21
x_1 = \frac{|P_{new,E_m}|}{3}, \qquad x_2 = x_1 + \frac{|P_{new,E_m}|}{2} eq. 25 eq. 26
Hyperparameters
Most values are not stated. The table lists everything the paper gives and marks what is missing.
| Name | Value | Where | Notes |
|---|---|---|---|
| chaos initial value δ | not stated | eq. 1 eq. 2 | the text says δ is "the function's initial value"; the printed range is 0 < δ ≤ 4 |
| Cr, Br initial values | not stated | §II-B | chaos random numbers; logistic-map style update |
| AEHO α (influence of matriarch) | in [0, 1] | eq. 21 | the paper gives only the range |
| AEHO β (clan-centre influence) | in [0, 1] | eq. 22 | the paper gives only the range |
| rand in worst-elephant replacement | in [0, 1] | eq. 24 | uniform random |
| Rd | not stated | eq. 21 | random number; range not given |
| crossover points | x1 = |P|/3, x2 = x1 + |P|/2 | eq. 25 eq. 26 | two-point crossover |
| number of clans | not stated | §II-D | |
| elephants per clan | not stated | §II-D | |
| maximum generation M_G | not stated | §II-E | |
| population size | not stated | §II-E | |
| fitness function | not stated | §II-E | the paper does not say what is optimized |
| momentum α (back-propagation) | not stated | eq. 20 | the same symbol α as the AEHO parameter |
| MDCNN hidden layers and width | not stated | §II-C | the text describes one hidden layer |
| activation | Gaussian term e^{-F²} | eq. 15 | output activation f() not defined |
| learning rate | not stated | ||
| epochs | not stated | ||
| train/test split | not stated | §IV-B | |
| number of features kept | 7 (MCFA on UCI) | tab. 6 | per dataset, see Results |
| input attributes | 13 of 14 UCI attributes | tab. 3 §IV-B | the 14th is the target |
| target | num, 0 vs 1–4 | tab. 3 | the binarization is implied by tab. 4, not stated |
Results
Author-reported. The datasets are UCI (Cleveland subset, 303 records), Framingham (4000 records), Public Health (1025 records) and a "Sensor Data" set (900 records) that the paper does not describe. Hardware is a Raspberry Pi with a LoRa transceiver and a smartwatch tab. 2. The baselines are logistic regression (LR) and a "DLNN", a deep learning network whose architecture is not stated. Comparison uses the same datasets for all three methods tab. 8.
Accuracy by dataset tab. 8:
| Dataset | # Records | DLNN | LR | MDCNN (this paper) |
|---|---|---|---|---|
| UCI | 303 | 81.8 | 87.8 | 93.3 |
| Framingham | 4000 | 83.8 | 88.3 | 98.2 |
| Public Health | 1025 | 81.6 | 84.6 | 97.6 |
| Sensor Data | 900 | 82.4 | 83.6 | 96.30 |
Feature selection on UCI, with the selected features reported by each method tab. 6. MDCNN selected 7 features; CFS selected 8; the genetic algorithm and the filtered-subset method selected 6; consistency-based selection kept 10; the remaining methods kept all 13. Accuracy with the selected features per dataset tab. 7: UCI 93.3, Framingham 98.2, Public Health 97.6, Sensor Data 96.30.
Performance metrics tab. 9. The table does not name its dataset, but the values match the Framingham row of tab. 8.
| Model | ACC | Error | Precision | F1 | Recall | Specificity |
|---|---|---|---|---|---|---|
| DLNN | 83.8 | 16.2 | 89.6 | 90.2 | 91.1 | 60.2 |
| LR | 88.3 | 11.7 | 90.1 | 90 | 92.8 | 74.2 |
| MDCNN | 98.2 | 1.8 | 95.1 | 95 | 97.8 | 92.6 |
Positive and negative predictive values by disease prevalence tab. 11:
| Prevalence (DP) | # Records | PPV DLNN | PPV LR | PPV MDCNN | NPV DLNN | NPV LR | NPV MDCNN |
|---|---|---|---|---|---|---|---|
| 85 | 303 | 87.1 | 90.1 | 97.1 | 82.5 | 89.2 | 98.1 |
| 89 | 900 | 87.5 | 91.2 | 97.8 | 87.3 | 90.1 | 98.8 |
| 95 | 1025 | 88.1 | 92.1 | 98.1 | 88.1 | 92.3 | 99.2 |
| 98 | 4000 | 89.2 | 92.5 | 98.4 | 89.2 | 93.6 | 99.3 |
Literature comparison tab. 10. The paper lists accuracies of 88.7 (HRFLM), 92.59 (RFRS), 97 (LSTM) and 98.2 (MDCNN). The table does not give the dataset for each row, so the numbers are not like-for-like. fig. 3 shows the accuracy bars for all four datasets; the paper's text describes MDCNN as highest on each.
Paper vs code
No official code. The paper gives no repository, project page or code link; the arXiv metadata lists no comments with a link. Searches for "mdcnn heart" and "cuttlefish elephant heart" on GitHub returned zero repositories.
Pitfalls
- Name collision in the model. The paper calls MDCNN a "modified deep convolutional" network, but the text describes only weighted sums and a Gaussian term per input §II-C. No convolution, kernel, pooling or spatial structure is described, so implement it as a fully connected network.
- Two different roles for the weights. §II-C says the weights are "optimized using the AEHO algorithm" §II-C, and step 8 applies a back-propagation correction eq. 20. The paper does not say whether both apply, in which order, or how Wc is added to W.
- Symbol clash for α. AEHO uses α as an influence parameter in [0, 1] eq. 21. Step 8 calls α the momentum for back-propagation eq. 20. The value and role of each are not stated.
- Undefined index. Eq. 21 uses P_{E_m,v} but v is not defined. Eq. 19 uses f(R_i) but f is not defined.
- Ambiguous worst-elephant formula. Eq. 24 is typeset as P(P_min_max × rand)_min. The text defines P_min, P_max and rand but not the operator. The paper uses a uniform form in §II-C eq. 10; do not assume it applies here.
- Case-to-category assignment. The text says Category 3 covers Cases 5 and 6 §II-B. The equation list labels eq. 10 as Case 6 for Category 4 §II-B d. Eq. 10 is a uniform random position within the bounds, but the text describes Case 6 as a reflection of incoming light. Treat the case definitions as unclear.
- Index bases. Table 6 indexes features 1 to 13, while Table 3 uses attribute numbers such as #3, #9 and #58. The base of the feature indices is not stated, so the selected subsets cannot be mapped to attributes with certainty.
- Feature counts disagree. Table 7 lists 16 total features for UCI and 7 selected. Table 3 lists 14 attributes and §IV-B says 13 are used. Table 5 lists six predictor attributes plus the target, while Table 6 gives MDCNN seven features.
- Section numbering. The methodology is headed "II", the same number as Related Work. The introduction calls it Section III §I. This card cites the subsection letters as printed (§II-A to §II-E).
- Input is tabular, not raw signals. The classifier input is the clinical attribute table in tab. 3 and tab. 5, not ECG waveforms. The abstract's ECG and blood-pressure monitoring is the sensing setup, not the classifier input.
- Some data is generated. §IV-A says cholesterol, glucose and chest-pain values were generated with pseudo-random numbers because the devices were not available. The end-to-end IoT pipeline was therefore not evaluated on real patient data.
- Evaluation protocol unstated. The train/test split, cross-validation, random seeds and whether feature selection used the test data are not stated.
- Dataset provenance. §II says UCI, Framingham and Public Health; §IV-B adds a Hungarian dataset. The reference list cites a Kaggle dataset [48]. The 900-record "Sensor Data" set is not described anywhere.
- Metric definitions are inconsistent. tab. 4 labels the NPV cell as b_n/(a_n+b_n), while eq. 30 prints a_n/(a_n+b_n). The sensitivity formula cites eq. 30 but is printed as eq. 31 eq. 31. The specificity formula eq. 32 uses a_n and b_p, which need the table's cell labels to read. Check the arithmetic before reusing the metrics.
- Reference errors. The comparison in tab. 10 names Senthilkumar et al. for the 88.7 result, but the citation [53] points to Mohan et al. The same Mohan et al. paper also appears as [26]. §II and tab. 10 should be checked against the reference list.
- Baseline details. The DLNN baseline has no stated architecture or training settings, so the size of the reported gap cannot be attributed to the method rather than to tuning.
- Costs the abstract hides. Two sequential population searches (over features and over weights) with unstated population, generation and clan counts. Runtime and memory are not reported.
- Unverified conclusions. The paper concludes that MDCNN is more accurate for "the maximum number of records" [abstract]. The 98.2% figure comes from one 4000-record dataset tab. 8. No variance across runs or splits is reported.
Lineage
- Builds on: the cuttlefish algorithm, cited as [36] with its authors §II-B. Elephant-herd optimization (AEHO) is used without a citation in the paper §II-D.
- Compared against: logistic regression and a "DLNN" tab. 8 tab. 9; HRFLM [53], RFRS [43] and LSTM [45] in tab. 10.
- Superseded by: none known from this wiki.
Source and license
Adapted from “An IoT Framework for Heart Disease Prediction based on MDCNN Classifier” by Mohammad Ayoub Khan (arXiv:2012.05999), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors.