| 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) |