| { |
| "model_type": "RandomForestClassifier", |
| "framework": "sklearn", |
| "task": "classification", |
| "hyperparameters": { |
| "n_estimators": 100, |
| "max_depth": null, |
| "min_samples_split": 5, |
| "min_samples_leaf": 1, |
| "random_state": 42 |
| }, |
| "feature_descriptions": { |
| "SPC_D7": "Standard Plate Count at Day 7 (log CFU/mL)", |
| "SPC_D14": "Standard Plate Count at Day 14 (log CFU/mL)", |
| "SPC_D21": "Standard Plate Count at Day 21 (log CFU/mL)", |
| "TGN_D7": "Total Gram-Negative count at Day 7 (log CFU/mL)", |
| "TGN_D14": "Total Gram-Negative count at Day 14 (log CFU/mL)", |
| "TGN_D21": "Total Gram-Negative count at Day 21 (log CFU/mL)" |
| }, |
| "class_descriptions": { |
| "PPC": "Post-Pasteurization Contamination", |
| "no spoilage": "No spoilage detected", |
| "spore spoilage": "Spore-forming bacteria spoilage" |
| }, |
| "variants": { |
| "baseline": { |
| "name": "Baseline (All Features)", |
| "description": "Uses all 6 microbiological measurements across all time points", |
| "features": [ |
| "SPC_D7", |
| "SPC_D14", |
| "SPC_D21", |
| "TGN_D7", |
| "TGN_D14", |
| "TGN_D21" |
| ], |
| "train_accuracy": 0.9898477157360406, |
| "test_accuracy": 0.9575757575757575, |
| "n_train_samples": 197, |
| "n_test_samples": 165, |
| "classes": [ |
| "PPC", |
| "no spoilage", |
| "spore spoilage" |
| ], |
| "class_metrics": { |
| "PPC": { |
| "precision": 0.96, |
| "recall": 1.0, |
| "f1-score": 0.9795918367346939, |
| "support": 72 |
| }, |
| "no spoilage": { |
| "precision": 1.0, |
| "recall": 0.8809523809523809, |
| "f1-score": 0.9367088607594937, |
| "support": 42 |
| }, |
| "spore spoilage": { |
| "precision": 0.9245283018867925, |
| "recall": 0.9607843137254902, |
| "f1-score": 0.9423076923076923, |
| "support": 51 |
| } |
| } |
| }, |
| "scenario_1_days14_21": { |
| "name": "Days 14 & 21", |
| "description": "Uses measurements from days 14 and 21 only", |
| "features": [ |
| "SPC_D14", |
| "SPC_D21", |
| "TGN_D14", |
| "TGN_D21" |
| ], |
| "train_accuracy": 0.9700854700854701, |
| "test_accuracy": 0.9414634146341463, |
| "n_train_samples": 234, |
| "n_test_samples": 205, |
| "classes": [ |
| "PPC", |
| "no spoilage", |
| "spore spoilage" |
| ], |
| "class_metrics": { |
| "PPC": { |
| "precision": 0.9555555555555556, |
| "recall": 1.0, |
| "f1-score": 0.9772727272727273, |
| "support": 86 |
| }, |
| "no spoilage": { |
| "precision": 1.0, |
| "recall": 0.8421052631578947, |
| "f1-score": 0.9142857142857143, |
| "support": 57 |
| }, |
| "spore spoilage": { |
| "precision": 0.8805970149253731, |
| "recall": 0.9516129032258065, |
| "f1-score": 0.9147286821705426, |
| "support": 62 |
| } |
| } |
| }, |
| "scenario_2_days7_14": { |
| "name": "Days 7 & 14", |
| "description": "Uses measurements from days 7 and 14 only", |
| "features": [ |
| "SPC_D7", |
| "SPC_D14", |
| "TGN_D7", |
| "TGN_D14" |
| ], |
| "train_accuracy": 0.9666666666666667, |
| "test_accuracy": 0.8730569948186528, |
| "n_train_samples": 270, |
| "n_test_samples": 386, |
| "classes": [ |
| "PPC", |
| "no spoilage", |
| "spore spoilage" |
| ], |
| "class_metrics": { |
| "PPC": { |
| "precision": 0.9769585253456221, |
| "recall": 0.9592760180995475, |
| "f1-score": 0.9680365296803652, |
| "support": 221 |
| }, |
| "no spoilage": { |
| "precision": 0.8955223880597015, |
| "recall": 0.6741573033707865, |
| "f1-score": 0.7692307692307693, |
| "support": 89 |
| }, |
| "spore spoilage": { |
| "precision": 0.6372549019607843, |
| "recall": 0.8552631578947368, |
| "f1-score": 0.7303370786516854, |
| "support": 76 |
| } |
| } |
| }, |
| "scenario_3_day21": { |
| "name": "Day 21 Only", |
| "description": "Uses only day 21 measurements", |
| "features": [ |
| "SPC_D21", |
| "TGN_D21" |
| ], |
| "train_accuracy": 0.9663865546218487, |
| "test_accuracy": 0.9371980676328503, |
| "n_train_samples": 238, |
| "n_test_samples": 207, |
| "classes": [ |
| "PPC", |
| "no spoilage", |
| "spore spoilage" |
| ], |
| "class_metrics": { |
| "PPC": { |
| "precision": 0.945054945054945, |
| "recall": 1.0, |
| "f1-score": 0.9717514124293786, |
| "support": 86 |
| }, |
| "no spoilage": { |
| "precision": 1.0, |
| "recall": 0.8275862068965517, |
| "f1-score": 0.9056603773584906, |
| "support": 58 |
| }, |
| "spore spoilage": { |
| "precision": 0.8823529411764706, |
| "recall": 0.9523809523809523, |
| "f1-score": 0.916030534351145, |
| "support": 63 |
| } |
| } |
| }, |
| "scenario_4_day14": { |
| "name": "Day 14 Only", |
| "description": "Uses only day 14 measurements", |
| "features": [ |
| "SPC_D14", |
| "TGN_D14" |
| ], |
| "train_accuracy": 0.9308176100628931, |
| "test_accuracy": 0.8741573033707866, |
| "n_train_samples": 318, |
| "n_test_samples": 445, |
| "classes": [ |
| "PPC", |
| "no spoilage", |
| "spore spoilage" |
| ], |
| "class_metrics": { |
| "PPC": { |
| "precision": 0.983739837398374, |
| "recall": 0.9718875502008032, |
| "f1-score": 0.9777777777777777, |
| "support": 249 |
| }, |
| "no spoilage": { |
| "precision": 0.868421052631579, |
| "recall": 0.616822429906542, |
| "f1-score": 0.7213114754098361, |
| "support": 107 |
| }, |
| "spore spoilage": { |
| "precision": 0.6585365853658537, |
| "recall": 0.9101123595505618, |
| "f1-score": 0.7641509433962265, |
| "support": 89 |
| } |
| } |
| }, |
| "scenario_5_day7": { |
| "name": "Day 7 Only", |
| "description": "Uses only day 7 measurements", |
| "features": [ |
| "SPC_D7", |
| "TGN_D7" |
| ], |
| "train_accuracy": 0.8111111111111111, |
| "test_accuracy": 0.627906976744186, |
| "n_train_samples": 270, |
| "n_test_samples": 387, |
| "classes": [ |
| "PPC", |
| "no spoilage", |
| "spore spoilage" |
| ], |
| "class_metrics": { |
| "PPC": { |
| "precision": 0.8733031674208145, |
| "recall": 0.8693693693693694, |
| "f1-score": 0.871331828442438, |
| "support": 222 |
| }, |
| "no spoilage": { |
| "precision": 0.23076923076923078, |
| "recall": 0.06741573033707865, |
| "f1-score": 0.10434782608695652, |
| "support": 89 |
| }, |
| "spore spoilage": { |
| "precision": 0.3142857142857143, |
| "recall": 0.5789473684210527, |
| "f1-score": 0.4074074074074074, |
| "support": 76 |
| } |
| } |
| }, |
| "scenario_6_spc_all": { |
| "name": "SPC Only (All Days)", |
| "description": "Uses only Standard Plate Count measurements across all days", |
| "features": [ |
| "SPC_D7", |
| "SPC_D14", |
| "SPC_D21" |
| ], |
| "train_accuracy": 0.9543147208121827, |
| "test_accuracy": 0.7831325301204819, |
| "n_train_samples": 197, |
| "n_test_samples": 166, |
| "classes": [ |
| "PPC", |
| "no spoilage", |
| "spore spoilage" |
| ], |
| "class_metrics": { |
| "PPC": { |
| "precision": 0.735632183908046, |
| "recall": 0.8888888888888888, |
| "f1-score": 0.8050314465408805, |
| "support": 72 |
| }, |
| "no spoilage": { |
| "precision": 1.0, |
| "recall": 0.8571428571428571, |
| "f1-score": 0.9230769230769231, |
| "support": 42 |
| }, |
| "spore spoilage": { |
| "precision": 0.6976744186046512, |
| "recall": 0.5769230769230769, |
| "f1-score": 0.631578947368421, |
| "support": 52 |
| } |
| } |
| }, |
| "scenario_7_tgn_all": { |
| "name": "TGN Only (All Days)", |
| "description": "Uses only Total Gram-Negative measurements across all days", |
| "features": [ |
| "TGN_D7", |
| "TGN_D14", |
| "TGN_D21" |
| ], |
| "train_accuracy": 0.8781725888324873, |
| "test_accuracy": 0.6987951807228916, |
| "n_train_samples": 197, |
| "n_test_samples": 166, |
| "classes": [ |
| "PPC", |
| "no spoilage", |
| "spore spoilage" |
| ], |
| "class_metrics": { |
| "PPC": { |
| "precision": 0.9733333333333334, |
| "recall": 1.0, |
| "f1-score": 0.9864864864864865, |
| "support": 73 |
| }, |
| "no spoilage": { |
| "precision": 0.4642857142857143, |
| "recall": 0.9285714285714286, |
| "f1-score": 0.6190476190476191, |
| "support": 42 |
| }, |
| "spore spoilage": { |
| "precision": 0.5714285714285714, |
| "recall": 0.0784313725490196, |
| "f1-score": 0.13793103448275862, |
| "support": 51 |
| } |
| } |
| }, |
| "scenario_8_spc_7_14": { |
| "name": "SPC Days 7 & 14", |
| "description": "Uses only SPC measurements from days 7 and 14", |
| "features": [ |
| "SPC_D7", |
| "SPC_D14" |
| ], |
| "train_accuracy": 0.9407407407407408, |
| "test_accuracy": 0.7331606217616581, |
| "n_train_samples": 270, |
| "n_test_samples": 386, |
| "classes": [ |
| "PPC", |
| "no spoilage", |
| "spore spoilage" |
| ], |
| "class_metrics": { |
| "PPC": { |
| "precision": 0.8130081300813008, |
| "recall": 0.9049773755656109, |
| "f1-score": 0.8565310492505354, |
| "support": 221 |
| }, |
| "no spoilage": { |
| "precision": 0.8703703703703703, |
| "recall": 0.5280898876404494, |
| "f1-score": 0.6573426573426573, |
| "support": 89 |
| }, |
| "spore spoilage": { |
| "precision": 0.4186046511627907, |
| "recall": 0.47368421052631576, |
| "f1-score": 0.4444444444444444, |
| "support": 76 |
| } |
| } |
| }, |
| "scenario_9_tgn_7_14": { |
| "name": "TGN Days 7 & 14", |
| "description": "Uses only TGN measurements from days 7 and 14", |
| "features": [ |
| "TGN_D7", |
| "TGN_D14" |
| ], |
| "train_accuracy": 0.8037037037037037, |
| "test_accuracy": 0.7312661498708011, |
| "n_train_samples": 270, |
| "n_test_samples": 387, |
| "classes": [ |
| "PPC", |
| "no spoilage", |
| "spore spoilage" |
| ], |
| "class_metrics": { |
| "PPC": { |
| "precision": 0.9769585253456221, |
| "recall": 0.954954954954955, |
| "f1-score": 0.9658314350797267, |
| "support": 222 |
| }, |
| "no spoilage": { |
| "precision": 0.5, |
| "recall": 0.02247191011235955, |
| "f1-score": 0.043010752688172046, |
| "support": 89 |
| }, |
| "spore spoilage": { |
| "precision": 0.41566265060240964, |
| "recall": 0.9078947368421053, |
| "f1-score": 0.5702479338842975, |
| "support": 76 |
| } |
| } |
| } |
| } |
| } |