{ "version": "v1", "display": "v1.0", "description": "Classical ML models trained with cross-battery group split on 12 scalar features. Legacy baseline.", "split_strategy": "cross-battery group split (80/20 batteries)", "features": 12, "feature_set": [ "cycle_number", "ambient_temperature", "peak_voltage", "min_voltage", "voltage_range", "avg_current", "avg_temp", "temp_rise", "cycle_duration", "Re", "Rct", "delta_capacity" ], "dataset": "NASA PCoE Li-ion 18650 (30 batteries, 2678 cycles)", "default_model": "best_ensemble", "models": { "ridge": { "display_name": "Ridge Regression", "family": "classical", "algorithm": "Ridge", "version": "1.0", "r2": 0.72, "mae": 5.57, "requires_scaling": true, "file": "models/classical/ridge.joblib", "sha256": "ad1bc4a9e856ef5e0ef27367dbb73d704a2a61a22b2f79543ea9528a14539930", "bytes": 649 }, "lasso": { "display_name": "Lasso", "family": "classical", "algorithm": "Lasso", "version": "1.0", "r2": 0.52, "mae": 5.59, "requires_scaling": true, "file": "models/classical/lasso.joblib", "sha256": "eb91ca21c6dad3cee731eb50aadbf133e99db0602b1a94c31550ffc6a33205d1", "bytes": 728 }, "elasticnet": { "display_name": "ElasticNet", "family": "classical", "algorithm": "ElasticNet", "version": "1.0", "r2": 0.52, "mae": 5.59, "requires_scaling": true, "file": "models/classical/elasticnet.joblib", "sha256": "24613abf048daf5a603abd6f10e7eb00929740e30846e191fd76edc47055bfc8", "bytes": 744 }, "knn_k5": { "display_name": "KNN (k=5)", "family": "classical", "algorithm": "KNeighborsRegressor", "version": "1.0", "r2": 0.72, "mae": 2.4, "requires_scaling": true, "file": "models/classical/knn_k5.joblib", "sha256": "5225b27b7ee97fe2ddeb75d87cd6356680868eef48dd4ad6dc2c36774db9de8b", "bytes": 479686 }, "knn_k10": { "display_name": "KNN (k=10)", "family": "classical", "algorithm": "KNeighborsRegressor", "version": "1.0", "r2": 0.724, "mae": 2.69, "requires_scaling": true, "file": "models/classical/knn_k10.joblib", "sha256": "f2e7b020bddac3139111abaf338a72e491c6522c8ae7b222866a80c8c3d7c5e1", "bytes": 479686 }, "knn_k20": { "display_name": "KNN (k=20)", "family": "classical", "algorithm": "KNeighborsRegressor", "version": "1.0", "r2": 0.717, "mae": 3.19, "requires_scaling": true, "file": "models/classical/knn_k20.joblib", "sha256": "4d1a2f797b1ab0f89e68898595ac3c5407e3afa84b8c56a107800da7ce7ee0d8", "bytes": 479686 }, "svr": { "display_name": "SVR (RBF)", "family": "classical", "algorithm": "SVR", "version": "1.0", "r2": 0.805, "mae": 7.56, "requires_scaling": true, "file": "models/classical/svr.joblib", "sha256": "698b977e9112e961e2421b7ce0161e7cad1c8a8f8e576c2a418ef0345086c6de", "bytes": 210644 }, "random_forest": { "display_name": "Random Forest", "family": "classical", "algorithm": "RandomForestRegressor", "version": "1.0", "r2": 0.957, "mae": 4.78, "requires_scaling": false, "file": "models/classical/random_forest.joblib", "sha256": "9b48c7892b77a9e32232b1358df71207277702afa2ffd4a34f90b41dccc270f4", "bytes": 98519665 }, "xgboost": { "display_name": "XGBoost", "family": "classical", "algorithm": "XGBRegressor", "version": "1.0", "r2": 0.847, "mae": 8.06, "requires_scaling": false, "file": "models/classical/xgboost.joblib", "sha256": "e17c175e213b7d92789f63c02a96a0d65aecc66ef07d1406a78aef5afbaf392d", "bytes": 1309971 }, "lightgbm": { "display_name": "LightGBM", "family": "classical", "algorithm": "LGBMRegressor", "version": "1.0", "r2": 0.928, "mae": 5.53, "requires_scaling": false, "file": "models/classical/lightgbm.joblib", "sha256": "7e292179a2c5e62cdacb21e754ade346342394c9adb1d76be3430c091068d252", "bytes": 552489 }, "best_ensemble": { "display_name": "Best Ensemble (RF+XGB+LGB)", "family": "ensemble", "algorithm": "WeightedAverage", "version": "1.0", "r2": 0.886, "mae": 3.89, "requires_scaling": false, "components": [ "random_forest", "xgboost", "lightgbm" ], "file": null } }, "scalers": { "linear_scaler": "scalers/linear_scaler.joblib", "sequence_scaler": "scalers/sequence_scaler.joblib" }, "champion": "random_forest", "training_date": "2025-12-01", "framework": [ "scikit-learn", "xgboost", "lightgbm" ], "scaler_checksums": { "linear_scaler": "070d6b4565d669c50aec414a8e37f38b85409e81c171f71fb23cb3a93de43378", "sequence_scaler": "1fb23b358b2ee1746ecaca97539be6282dcd9209d0265b886b9fb9a578455c1e" }, "checksums": { "models": { "models/classical/elasticnet.joblib": "24613abf048daf5a603abd6f10e7eb00929740e30846e191fd76edc47055bfc8", "models/classical/knn_k10.joblib": "f2e7b020bddac3139111abaf338a72e491c6522c8ae7b222866a80c8c3d7c5e1", "models/classical/knn_k20.joblib": "4d1a2f797b1ab0f89e68898595ac3c5407e3afa84b8c56a107800da7ce7ee0d8", "models/classical/knn_k5.joblib": "5225b27b7ee97fe2ddeb75d87cd6356680868eef48dd4ad6dc2c36774db9de8b", "models/classical/lasso.joblib": "eb91ca21c6dad3cee731eb50aadbf133e99db0602b1a94c31550ffc6a33205d1", "models/classical/lightgbm.joblib": "7e292179a2c5e62cdacb21e754ade346342394c9adb1d76be3430c091068d252", "models/classical/lightgbm_best_params.joblib": "95c4ce7b35f4c2e82dfbee7c915334438e7b5a599b301a0e9ce01f234af6a138", "models/classical/random_forest.joblib": "9b48c7892b77a9e32232b1358df71207277702afa2ffd4a34f90b41dccc270f4", "models/classical/rf_classifier.joblib": "387b0fd81f5492f3721b9ea234e59b54e0775365aa422a032a88beb829c3e7b2", "models/classical/ridge.joblib": "ad1bc4a9e856ef5e0ef27367dbb73d704a2a61a22b2f79543ea9528a14539930", "models/classical/svr.joblib": "698b977e9112e961e2421b7ce0161e7cad1c8a8f8e576c2a418ef0345086c6de", "models/classical/xgb_classifier.joblib": "d42de5f5f491271ea8155cffa82c72cbd7eb17df154fdd4fdaeb413fa8fb9ee2", "models/classical/xgboost.joblib": "e17c175e213b7d92789f63c02a96a0d65aecc66ef07d1406a78aef5afbaf392d", "models/classical/xgboost_best_params.joblib": "140456f00362a7b88bb8fd4de8f68f1e5d52b844eb94aae6da13ddae6e38b601", "models/deep/attention_lstm.pt": "6f9f6b8e2b9d4794ad1a1452e33c5ec81a917472a6a98cb131d0523c22a82f8a", "models/deep/batterygpt.pt": "16dd869d04bf7ef126489dfa3dc386b65dcaa0dc7823051139d6df8ed1ca8343", "models/deep/bidirectional_lstm.pt": "3466feebff37d8c671bdeb4d4cf248fdbc04e7a10648f0d847e987ceb459b57a", "models/deep/dynamic_graph_itransformer.keras": "6bbca626faeaa1472966659e9908be1ed4db0889c8668602be1fe2c4b143a338", "models/deep/gru.pt": "2733aa85767d37fe22eb88989cdddf51de204b131f8b3a7feee5aa7c5af42024", "models/deep/itransformer.keras": "5d47f6d088b4a7f453863188a05d77a8e1cc88326b88180e3f5831ee2da0dee6", "models/deep/physics_itransformer.keras": "ebbeb7de88cec4bc8080ca03c76b0a0e74b0d9411f908bd58c4d924a044bb05c", "models/deep/tft.pt": "ba2f16c8096cf19a0b03aec877fa86d8e63d4b47a292cf46dac8427157f3175d", "models/deep/vae_lstm.pt": "01ca8499d57f012f5c903a52d780afacbe34195141cb752a6b77f64bf6c2dd55", "models/deep/vanilla_lstm.pt": "59fcd7ed8c3d67705e1915e2948c450a6f368fbec078b5c77b06047dc19763f8" }, "scalers": { "scalers/features_minmax.joblib": "b3f81de4e3f3253eefc5779fbc49f0350f261c303a6a7af68ee3a426199cc406", "scalers/features_standard.joblib": "c150d07ade0a82aa151f906dae135ff7f9d96055667cf471d7f767d17b8d4555", "scalers/linear_scaler.joblib": "070d6b4565d669c50aec414a8e37f38b85409e81c171f71fb23cb3a93de43378", "scalers/sequence_scaler.joblib": "1fb23b358b2ee1746ecaca97539be6282dcd9209d0265b886b9fb9a578455c1e" }, "results": { "results/classical_rul_results.csv": "8648784b058d52f1fc4877a43b4b6b4d0d88f852c2c22d9c83a06aa8e492c23d", "results/classical_soh_results.csv": "1476ab4c0fd5320d54506664286ab7b87bb039bfe4c2ffbe0f86823633ec8041", "results/dg_itransformer_results.json": "ec251c746c58329625ea51a50185ec2470e46476496e2819be55ddfdf0eb3ff2", "results/ensemble_results.csv": "c2dbd24ac5b20b43e03312bef5aecb3efe0f9ef7dc276178ce619b25d6acae89", "results/final_rankings.csv": "4384593f4435a7f99c5e9319fb0b7539f0e9816e83f7d63cb52ef97134ef0dd9", "results/lstm_soh_results.csv": "bcec1411f1f3e5fe386e786f16cd640b94944f46091b0ca35a930108bb3b7e82", "results/transformer_soh_results.csv": "6a203f57e83c4a1ae2086b132104c89b8c268a12ecfe436ea07094aacd9a6c39", "results/unified_results.csv": "4384593f4435a7f99c5e9319fb0b7539f0e9816e83f7d63cb52ef97134ef0dd9", "results/vae_lstm_results.json": "42718f18989aa7ccdee1ce136c3022c69843eed85e5a6265f4161c0995fafc51" }, "features": {}, "figures": { "figures/best_ensemble_prediction.png": "50796de89087cfdce1107659a3a7c2eb0afa64c27360db85954e8aec7cf9d626", "figures/capacity_and_rul.png": "7f959be7175d1ec327791043e21b458e85704efdcd28b4367c85af8189f2464f", "figures/capacity_distribution_by_temp.png": "330cef1f780e60781022b4de5df6c436a00cb273d34f468044d4e25dc0eafa14", "figures/capacity_fade_all_batteries.png": "6648ac3c4fd69c353aff3193b2d033d8f2e4310e0294d373c05bfb887529c77c", "figures/capacity_fade_by_temperature.png": "155954a71d58101924abe2d80bff60a56b4469643db016d0711176209be9b5b2", "figures/capacity_fade_interactive.html": "e2abd1b2d8cf54e171313a5b9a5171024504fda5f3d2e9acf0f7dc51d6945a75", "figures/ced_curves.png": "844eb2bb56fc9ff1cb1f83c16e7b26887b2877a7440ed557c866f6be0ebc2724", "figures/classical_best_actual_vs_pred.png": "0cc3c98e2bdbedc59358f9279bb829e087fe617360c81b0f0bbccfec15372e47", "figures/classical_best_residuals.png": "c870d1ad4bcb992de61934d6aa13c29a01bc2e878a499b21bf18d3ce73ade1e9", "figures/classical_soh_comparison.png": "eb003dcfb2187f2f2b4b27150ec05ee5f5bf6c510c17b452001a2067bf57c8c8", "figures/classification_confusion_matrices.png": "aa273d9a278bdd46776a8198771d089b813e441de0bcae5ca35d413e6cb9bd0b", "figures/degradation_state_distribution.png": "cd56c91bee68ac8af3fae38fa3d66191fa1c12c41893792e0c0e7314026d95aa", "figures/dg_itransformer_predictions.png": "2ed3c023d54631f410114715776e2aef1f4ef3596618b78417e24de87bd9314f", "figures/dg_itransformer_training.png": "8493eb29923f7b90fd5e58076b628d53ae2ee97e004888b4bbd91534825c7843", "figures/ensemble_comparison.png": "47848850e19011f3bcfefd812d241ad975da9adb70d920b178321e6eb545c0d4", "figures/ensemble_weights.png": "a1b9e1be1855553f5f20b39ab97e0676859faea32140e8eec40af9346fe28ac1", "figures/feature_correlation_heatmap.png": "4fca110021d7535da1c6d69853f2fd4e9ed3cdcc360cfb60917d28bfd4107fa2", "figures/impedance_evolution.png": "b2589289d921fada36d10532fb1f91d3d1264142af4b21fb948f9823d7a584bf", "figures/lstm_actual_vs_predicted.png": "54734cb01f1bd09160f86b3651b3a6880f5bd1d317baef0ad9301be6912d43fb", "figures/lstm_training_curves.png": "66d0102d02409b59ec2c0bb8b9ad79fadc3860960278b75fa567905e6069ce74", "figures/mc_dropout_uncertainty_lstm.png": "8ead85736e2ea8e8fa30d9463d4afd5c1dfefaa124c03f7e9b1ef603c5563e31", "figures/radar_top6.png": "773072825ec89a283436abac3d49752702844ecd8c80b054584e74e52175c67f", "figures/re_vs_rct_scatter.png": "3dd5a2c0ef78484a08fcc051236699106c148bdfb6a7d3aa0aac58d2ac3a6839", "figures/shap_xgboost_soh.png": "46df87d18cfc5e95b939b18a779c446dc897a999f8ec58c3eb8b891796e66915", "figures/soc_coulomb_counting_demo.png": "c63c6baca51effb37a89a7a84bf3faa81f52002ff032d1ec7cf0bcdf45bfd15e", "figures/soh_degradation_trends.png": "56c131fbf98676e8f6611e30bf16a4f6065a311605235c442322a8f71d0fad8e", "figures/soh_distribution.png": "7e3418411e17f22828d23127eb36f40fd19f633d9885950903c006f835db6003", "figures/transformer_pt_training_curves.png": "57428057bf771dc5add14f335a018b206a383da5211a48b7423308c10880cae6", "figures/transformer_tf_training_curves.png": "d210a17b965c2e013ab17dcb735c8ccc81c19db72aff11c2a0bce1189f471a3f", "figures/unified_model_comparison.png": "d0aa5bc15e65da35fbdcc643478c8f3d813752407d77509951ad5a2ba13840e0", "figures/vae_anomaly_detection.png": "7440d1088afd027ef81b7ef73f64b9d878b41a2369224ba27ed636a1906845f8", "figures/vae_latent_umap.png": "5b5a86ba677705ac20aefa665bb78421a8201d8367fe5735946c1d33510a399b", "figures/vae_lstm_prediction.png": "898b57fd9a7c57bd155056c3d6f72cce7a519b2550f8bd5c6e28675d0db36d14", "figures/voltage_surface_3d.png": "2fc0d7449c0ab7dfa5599f96b3106100ef2c32c71230098d3fe101a133be94b3", "figures/voltage_surface_3d_interactive.html": "7b354ed40d5962768dd7a5ba5d8f3453bcc197705bf2b3a4980ef80fa80603c7" }, "generated_at_utc": "2026-03-10T18:10:43.027870+00:00" }, "verification": { "hash_algorithm": "sha256", "required": true, "last_verified_utc": "2026-03-10T18:10:43.027870+00:00" } }