Skip to main content
. 2024 Mar 4;14(5):543. doi: 10.3390/diagnostics14050543
Algorithm 2: Ensemble Machine Learning Model
Step 1: Data Preparation
Step 2: Base Model Training
           base_models = {
                  ‘Logistic Regression’: LogisticRegression(),
                  ‘KNN’: KNeighborsClassifier(),
                  ‘SVM’: SVC(),
                  ‘Decision Tree’: DecisionTreeClassifier(),
                  ‘Random Forest’: RandomForestClassifier()
           }
base_model_predictions = {}
           for model_name, model in base_models.items():
                  model.fit(X_train, y_train)
                  base_model_predictions[model_name] = model.predict(X_test)
Step 3: Base Model Predictions
           base_model_predictions_array = np.array(list(base_model_predictions.values())).T
Step 4: Meta-Model Training
           meta_model = Ensemble()
           meta_model.fit(base_model_predictions_array, y_test)
Step 5: Final Prediction
           final_predictions_array = np.array(list(base_model_predictions.values())).T
           stacked_predictions = meta_model.predict(final_predictions_array)
Step 6: Evaluation
           accuracy = accuracy_score(y_test, stacked_predictions)
           print(f”Stacking Ensemble Model Accuracy: {accuracy}”)
Step 7: Explainability with LIME
           def lime_explanation(model, instance, features):
Step 8: Explainability with SHAP
           explainer = shap.Explainer(meta_model)
           shap_values = explainer.shap_values(X_test)