Fix/hpo with one-hot encoder and score system#656
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Bug fixes and reliability improvements for hyperparameter optimization scoring with one-hot encoding, the scoring profile system, and the model comparison UI.
Changes:
ScoringService.get_available_profilesnow fetchesSCORING_PROFILESdirectly from the requested task class via injectedComponentRegistry, eliminating profile-ID collisions across tasks.DashAIDataset.get_splitnow propagatesself._typesto the new subset, preserving column type metadata;SklearnLikeClassifier.predictdrops a silentValueErrorfallback so prediction input preparation failures surface.ModelComparisonTablere-fetches scores via a stablerunStatusSignaturedep and readsrun.status(matching the backend serialized field) instead of the non-existentstatusCode.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| DashAI/back/services/scoring_service.py | Inject ComponentRegistry and resolve profiles via task class to avoid ID collisions. |
| DashAI/back/dataloaders/classes/dashai_dataset.py | Preserve types when constructing a single-split subset. |
| DashAI/back/models/scikit_learn/sklearn_like_classifier.py | Remove silent ValueError fallback in predict input preparation. |
| DashAI/front/src/components/models/ModelComparisonTable.jsx | Add runStatusSignature dep for score fetching; use status instead of statusCode. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
cristian-tamblay
approved these changes
May 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This pull request introduces several improvements and bug fixes across both backend and frontend components, primarily focusing on enhancing the robustness and accuracy of model scoring, profile selection, and dataset handling. The most significant changes include more reliable profile fetching for tasks, improved dataset splitting, and ensuring UI updates when model run statuses change.
Backend improvements:
ScoringService:get_available_profilesmethod now uses dependency injection to access theComponentRegistry, allowing it to fetch profiles directly from the relevant task class. This avoids profile ID collisions and ensures accurate profile retrieval for each task. It also gracefully handles missing or faulty task lookups. [1] [2]DashAIDataset, the split now correctly preserves thetypesattribute, ensuring that type information is not lost in the subset.Frontend improvements:
ModelComparisonTablenow uses a stable string signature of run statuses as a dependency for fetching scores. This ensures that scores are re-fetched only when relevant run statuses change (such as after training), preventing unnecessary fetches and stale data. [1] [2]statusproperty (instead ofstatusCode) to determine if a run is in progress, improving cell rendering accuracy.