Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi @rasbt,
This Pull Request addresses the issue reported in #759, where the bias_variance_decomp function fails when using Keras models built with the Functional API or in certain TensorFlow versions where the class name is not strictly 'Sequential'.
Key Changes:
Broadened Class Check: Added 'Model' to the list of recognized Keras-like classes (Sequential, Functional, Model) to ensure proper handling of Functional API models.
Improved Logic: Refined the if-else block to decouple the .fit() and .predict() calls. This prevents AttributeError on estimators that return a History object (like Keras) instead of the estimator itself.
Dimensions Preserved: Maintained the original Scikit-learn logic in the else block to ensure that existing unit tests for non-Keras estimators continue to pass without dimension issues.
Verification:
Manual Test: Verified with a Keras Functional API model (it now executes without errors).
Unit Tests: Ran pytest mlxtend/evaluate/tests/test_bias_variance_decomp.py and all tests passed.
Linting: Formatted the code using isort, black, and flake8 (or ruff) to comply with the project's style guide.
Fixes #759