{"name": "dzetsaka : AI-Powered Remote Sensing Classification", "package_name": "dzetsaka", "version": "5.0.11", "experimental": false, "qgis_min": "3.0.0", "qgis_max": "4.99.0", "downloads": 14757, "uploaded_by": "lennepkade", "upload_datetime": "2026-04-01T12:40:38.437424", "changelog": "5.0.11\n* FIX: Fix confusion matrix CSV transposed relative to HTML report (issue #53)\n* REFACTOR: Convert optional-dependencies to PEP 735 dependency-groups\n5.0.10\n* FIX: Fix UnboundLocalError on 'xt' with separate validation vector (issue #52)\n* TEST: Add regression tests for vector_test_path code path\n5.0.9\n* FIX: Fix split rounding crash with odd sample counts and hardcoded shapefile driver\n* FIX: Fix training failures from undefined SVM variable and missing relative import\n* FIX: Fix duplicate dock widget on plugin reload\n* REFACTOR: Extract constants, remove ~4200 lines of dead code\n* TEST: Add unit tests for classifier_config, accuracy_index, validation_metrics, label_encoders\n5.0.8\n* FIX: Replace all sync dependency installer calls with async QgsTask to prevent macOS ARM64 crash (issue #48)\n* FIX: Fix StratifiedKFold not iterable with scikit-learn 1.x (issue #51)\n* CI: Gate release on cross-platform tests (Ubuntu, macOS ARM64, macOS Intel)\n5.0.7\n* FIX: Fix UnboundLocalError for cvDistance when using Polygon Group CV mode (issue #49)\n* FIX: QGIS 4.x / PyQt6 compatibility - scoped enum fixes, exec() migration\n* ADD: Declare QGIS 4.x support (qgisMaximumVersion=4.99)\n5.0.6\n* FIX: Defer all GUI calls from QgsTask callbacks via QTimer.singleShot to prevent macOS ARM64 SIGABRT crash (issue #48)\n* FIX: Add thread-identity diagnostic logging for dependency install task debugging\n5.0.5\n* FIX: Prevent QGIS crash on macOS ARM64 during dependency auto-install \u2014 use main-thread callback instead of cross-thread signals (issue #48)\n* FIX: Handle missing legacy GDT_* constants in GDAL 4.x to prevent AttributeError at import time\n* FIX: Remove pkexec apt fallback that requested admin password on Linux\n* FIX: Add --break-system-packages for PEP 668 compatibility (Debian 13+, Ubuntu 24+)\n5.0.4\n* CHORE: Bump plugin metadata version to provide a unique QGIS Plugin Repository release number\n5.0.3\n* FIX: Prefer QGIS bundled Python on macOS arm64 in dependency autoinstaller to avoid selecting Xcode/system Python (issue #47)\n5.0.2\n* FIX: Harden dependency installer runtime constraints to avoid NumPy conflicts with QGIS bundled stack (issue #46)\n5.0.1\n* FIX: QAction imported from wrong Qt module (QtGui \u2192 QtWidgets) \u2014 fixes crash on QGIS 3.28+ startup (issue #45)\n* FIX: Qt5/Qt6 compatibility audit \u2014 exec_() fallback, enum aliases, matplotlib backend detection\n5.0.0\n* MAJOR: Milestone release with substantial architecture, performance, and UX upgrades\n* NEW: 12 production-ready ML algorithms with optimization and explainability workflows\n* NEW: Guided wizard + compact dashboard UX, smart defaults, algorithm comparison, and recipe-driven setup\n* NEW: Integrated reporting and diagnostics pipeline for clearer, reproducible results\n* ENHANCED: Faster training/inference paths, stronger validation workflows, and broader optional dependency support\n4.6.0\n* NEW: ui/classification_workflow_ui.py - 5-page QWizard with DataInput, Algorithm, AdvancedOptions, OutputConfig, Review pages\n* NEW: ui/comparison_panel.py - AlgorithmComparisonPanel QDialog with dependency-aware colouring\n* NEW: Standalone helper functions (check_dependency_availability, build_smart_defaults, build_review_summary)\n4.5.0\n*  NEW: SMOTE oversampling for imbalanced datasets (automatic ratio detection)\n*  NEW: Class weight computation (balanced, uniform, custom strategies)\n*  NEW: Nested cross-validation for unbiased model evaluation\n*  NEW: Enhanced metrics (per-class F1, ROC curves, learning curves)\n*  NEW: \"Nested Cross-Validation\" processing algorithm for batch evaluation\n*  NEW: 8 new extraParam keys for imbalance handling and validation\n*  ENHANCED: Automatic imbalance ratio detection and strategy recommendations\n*  ENHANCED: Cost-sensitive learning for all supported algorithms\n*  ENHANCED: Comprehensive unit and integration tests for imbalance handling\n4.4.0\n*  NEW: SHAP explainability - feature importance computation for model interpretability\n*  NEW: \"Explain Model (SHAP)\" processing algorithm - generate feature importance rasters\n*  NEW: ModelExplainer class with automatic explainer selection (TreeExplainer/KernelExplainer)\n*  NEW: Feature importance raster generation - visualize which bands matter most\n*  NEW: COMPUTE_SHAP, SHAP_OUTPUT, SHAP_SAMPLE_SIZE parameters in extraParam\n*  NEW: scripts/explainability module with comprehensive SHAP integration\n*  PERFORMANCE: Fast TreeExplainer for tree-based models (RF, XGB, LGB, ET, GBC)\n*  PERFORMANCE: KernelExplainer fallback for other models (SVM, KNN, LR, NB, MLP)\n*  ENHANCED: Detailed help strings and usage examples for SHAP algorithm\n*  ENHANCED: Graceful fallback when SHAP unavailable with clear installation instructions\n4.3.0\n*  NEW: Optuna hyperparameter optimization - 2-10x faster training with Bayesian optimization (TPE algorithm)\n*  NEW: Factory pattern for classifiers - clean, extensible registry replacing 700+ line if/elif chains\n*  NEW: Custom exception hierarchy with rich context (DataLoadError, ProjectionMismatchError, etc.)\n*  NEW: Clean architecture with separated modules (optimization, domain, factories)\n*  NEW: USE_OPTUNA and OPTUNA_TRIALS parameters (fully backward compatible)\n*  ENHANCED: Comprehensive type hints and docstrings for new modules\n*  ENHANCED: Intelligent trial pruning and parallel execution for Optuna\n*  PERFORMANCE: 2-5% accuracy improvement from superior parameter combinations\n*  PERFORMANCE: Random Forest ~3x faster, SVM ~5-8x faster, MLP ~4-6x faster\n*  IMPROVED: Better error messages with actionable suggestions\n* FIX: Improved auto-install for Debian/Ubuntu systems where pip module is not available\n* FIX: Auto-install now tries multiple methods: pip module, ensurepip bootstrap, apt via pkexec\n* FIX: Installation failure dialog now shows manual installation commands directly\n* COMPAT: Full QGIS 4.0 forward compatibility - migrated all PyQt5 imports to qgis.PyQt\n* PERF: Vectorized scale() functions - ~60% CPU reduction for data normalization\n* PERF: Vectorized Shannon entropy calculation - ~95% speedup (minutes to seconds)\n* PERF: Vectorized raster band reading with GDAL ReadAsArray() - ~30% I/O improvement\n* PERF: Optimized GMM prediction with NumPy einsum - ~40% CPU reduction\n* PERF: Vectorized geodesic distance matrix computation - ~50% speedup\n* PERF: Replaced repeated array concatenation with pre-allocation - ~30% memory reduction\n* PERF: Replaced if-elif chains with dict lookups for GDAL/NumPy type conversion\n* FIX: Robust layer source path extraction using QgsProviderRegistry (handles GeoPackage, etc.)\n* CODE: Added get_layer_source_path() helper for safe URI parsing\n4.2.2\n*  FIX: Fixed import errors for splitTrain and trainAlgorithm class names\n*  FIX: Fixed progress_bar.progressBar attribute error (corrected case to ProgressBar)\n*  FIX: Restored missing toolbar icons by fixing Qt resources import\n*  FIX: Fixed incorrect resource path in sieve_area.py\n*  ENHANCED: Applied ruff linting fixes and improved code quality\n*  ENHANCED: Added proper docstrings to sklearn fallback classes\n*  ENHANCED: Better exception chaining for improved debugging\n4.2.0\n*  NEW: 7 additional machine learning algorithms - XGBoost, LightGBM, Extra Trees, Gradient Boosting, Logistic Regression, Naive Bayes, MLP\n*  NEW: Automatic dependency installation system - one-click install of scikit-learn, XGBoost, LightGBM\n*  NEW: Automatic hyperparameter optimization with cross-validation grid search for all algorithms\n*  NEW: Smart sparse label handling - automatically handles missing class labels (e.g., 0,1,3)\n*  NEW: GitHub issue integration - automatic error reporting templates with system info\n*  IMPROVED: Better log levels (INFO vs WARNING) and more informative progress messages\n*  FIX: Resolved parameter delegation issues for XGBoost/LightGBM wrappers\n*  FIX: Fixed model serialization/pickling for new wrapper classes\n*  ENHANCED: Real-time pip installation progress with detailed logging\n*  ENHANCED: Comprehensive error handling with specific exception types and user guidance\n4.1.0\n* Major code refactoring and optimization of scripts/classification_pipeline.py\n* Replaced Hungarian notation prefixes (in/out) with descriptive parameter names\n* Significant memory optimizations for large multi-band image processing\n* Enhanced error handling with specific exception types and detailed error messages\n* Added comprehensive type hints and improved documentation\n* Broke down 1279-line method into focused, maintainable helper methods\n* Added configuration constants for better maintainability\n* Created parameter migration guide for transition support\n* Standardized APIs on descriptive parameter names\n4.0.0\n* Major version with comprehensive improvements\n3.70\n* Fix bug with new gdal import from osgeo\n3.64\n* add closing filter in the processing toolbox\n3.63\n* fix bug in train algorithm (split waspercent of train not of validation)\n3.62\n* fig bug when loading cursor was not removed after unsucessful learning.\n3.61\n* fix bug #19 with self.addAlgorithm(alg).\n3.6\n* Add confidence map in processing\n* Add median filter and shannon entropy\n* Fix bug with GMM confidence map\n* Move dzetsaka icons to extension toolbar", "external_deps": null, "download_url": "https://plugins.qgis.org/plugins/dzetsaka/version/5.0.11/download/"}