{ "version": "v2", "display": "v2.0", "description": "Deep learning models (LSTM, Transformer, VAE) with intra-battery chronological split on 12 scalar features. Includes classical models retrained with bug fixes.", "split_strategy": "intra-battery chronological split (80/20 per battery)", "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" ], "sequence_length": 32, "dataset": "NASA PCoE Li-ion 18650 (30 batteries, 2678 cycles, 1734 sequences)", "default_model": "best_ensemble", "models": { "extra_trees": { "display_name": "ExtraTrees", "family": "classical", "algorithm": "ExtraTreesRegressor", "version": "2.0", "r2": 0.9673, "mae": 1.17, "within_5pct": 99.1, "requires_scaling": false, "file": "models/classical/extra_trees.joblib", "sha256": "26b9501df3d477d474a88fda3b742142f226b5d43069f2cc2c83f7d971127e48", "bytes": 129434065 }, "lightgbm": { "display_name": "LightGBM", "family": "classical", "algorithm": "LGBMRegressor", "version": "2.0", "r2": 0.9582, "mae": 1.38, "within_5pct": 98.4, "requires_scaling": false, "file": "models/classical/lightgbm.joblib", "sha256": "51d3cede8af476871036909ca69fed40d91558b25c2f7663386654d999ddb3ca", "bytes": 9016891 }, "gradient_boosting": { "display_name": "GradientBoosting", "family": "classical", "algorithm": "GradientBoostingRegressor", "version": "2.0", "r2": 0.9342, "mae": 1.46, "within_5pct": 98.4, "requires_scaling": false, "file": "models/classical/gradient_boosting.joblib", "sha256": "492e4b46dd31b485ce157182ecdec038c2c47520466831e8b8b1530d43f9b0cc", "bytes": 5329994 }, "random_forest": { "display_name": "Random Forest", "family": "classical", "algorithm": "RandomForestRegressor", "version": "2.0", "r2": 0.9417, "mae": 1.89, "within_5pct": 94.0, "requires_scaling": false, "file": "models/classical/random_forest.joblib", "sha256": "863dbf027cb78f88500ac9bd753d4148cba42e9e16b1d546a9c7858834cdfc5f", "bytes": 84496273 }, "xgboost": { "display_name": "XGBoost", "family": "classical", "algorithm": "XGBRegressor", "version": "2.0", "r2": 0.5674, "mae": 3.59, "within_5pct": 89.6, "requires_scaling": false, "file": "models/classical/xgboost.joblib", "sha256": "415e497fab79dad35648435d5d71b48eb2f0a3892c5ab32b54a33547a640e6de", "bytes": 11282160 }, "svr": { "display_name": "SVR (RBF)", "family": "classical", "algorithm": "SVR", "version": "2.0", "r2": 0.9474, "mae": 1.67, "within_5pct": 95.1, "requires_scaling": true, "file": "models/classical/svr.joblib", "sha256": "fbeacb67245b695abf56c2f98716d4829018485869823d371bec136a6904f097", "bytes": 133966 }, "ridge": { "display_name": "Ridge Regression", "family": "classical", "algorithm": "Ridge", "version": "2.0", "r2": 0.5281, "mae": 5.57, "requires_scaling": true, "file": "models/classical/ridge.joblib", "sha256": "3b2afc35f81469da28ec4620092dd955c5925689c865a57e81d2cf00fbf0f60a", "bytes": 348607297 }, "knn_k5": { "display_name": "KNN (k=5)", "family": "classical", "algorithm": "KNeighborsRegressor", "version": "2.0", "r2": 0.8995, "mae": 2.4, "within_5pct": 89.8, "requires_scaling": true, "file": "models/classical/knn_k5.joblib", "sha256": "c0a40627460b696ae0d8d949fea6fcd20c3bcb3dc1b204b7fa36a6284eab7317", "bytes": 430772 }, "vanilla_lstm": { "display_name": "Vanilla LSTM", "family": "deep_pytorch", "algorithm": "VanillaLSTM", "version": "2.0", "r2": 0.507, "mae": 11.44, "requires_scaling": true, "file": "models/deep/vanilla_lstm.pt", "sha256": "59fcd7ed8c3d67705e1915e2948c450a6f368fbec078b5c77b06047dc19763f8", "bytes": 822199 }, "bidirectional_lstm": { "display_name": "Bidirectional LSTM", "family": "deep_pytorch", "algorithm": "BidirectionalLSTM", "version": "2.0", "r2": 0.52, "mae": null, "requires_scaling": true, "file": "models/deep/bidirectional_lstm.pt", "sha256": "3466feebff37d8c671bdeb4d4cf248fdbc04e7a10648f0d847e987ceb459b57a", "bytes": 2167009 }, "gru": { "display_name": "GRU", "family": "deep_pytorch", "algorithm": "GRUModel", "version": "2.0", "r2": 0.51, "mae": null, "requires_scaling": true, "file": "models/deep/gru.pt", "sha256": "2733aa85767d37fe22eb88989cdddf51de204b131f8b3a7feee5aa7c5af42024", "bytes": 617208 }, "attention_lstm": { "display_name": "Attention LSTM", "family": "deep_pytorch", "algorithm": "AttentionLSTM", "version": "2.0", "r2": 0.54, "mae": null, "requires_scaling": true, "file": "models/deep/attention_lstm.pt", "sha256": "6f9f6b8e2b9d4794ad1a1452e33c5ec81a917472a6a98cb131d0523c22a82f8a", "bytes": 1451025 }, "batterygpt": { "display_name": "BatteryGPT", "family": "deep_pytorch", "algorithm": "BatteryGPT", "version": "2.0", "r2": 0.881, "mae": 10.71, "requires_scaling": true, "file": "models/deep/batterygpt.pt", "sha256": "16dd869d04bf7ef126489dfa3dc386b65dcaa0dc7823051139d6df8ed1ca8343", "bytes": 430498 }, "tft": { "display_name": "Temporal Fusion Transformer", "family": "deep_pytorch", "algorithm": "TemporalFusionTransformer", "version": "2.0", "r2": 0.881, "mae": 3.93, "requires_scaling": true, "file": "models/deep/tft.pt", "sha256": "ba2f16c8096cf19a0b03aec877fa86d8e63d4b47a292cf46dac8427157f3175d", "bytes": 3743692 }, "vae_lstm": { "display_name": "VAE-LSTM", "family": "deep_pytorch", "algorithm": "VAE_LSTM", "version": "2.0", "r2": 0.73, "mae": 7.82, "requires_scaling": true, "file": "models/deep/vae_lstm.pt", "sha256": "01ca8499d57f012f5c903a52d780afacbe34195141cb752a6b77f64bf6c2dd55", "bytes": 3288250 }, "itransformer": { "display_name": "iTransformer", "family": "deep_keras", "algorithm": "iTransformer", "version": "2.0", "r2": 0.551, "mae": 11.1, "requires_scaling": true, "file": "models/deep/itransformer.keras", "sha256": "5d47f6d088b4a7f453863188a05d77a8e1cc88326b88180e3f5831ee2da0dee6", "bytes": 1703636 }, "physics_itransformer": { "display_name": "Physics iTransformer", "family": "deep_keras", "algorithm": "PhysicsITransformer", "version": "2.0", "r2": 0.6, "mae": null, "requires_scaling": true, "file": "models/deep/physics_itransformer.keras", "sha256": "ebbeb7de88cec4bc8080ca03c76b0a0e74b0d9411f908bd58c4d924a044bb05c", "bytes": 1750974 }, "dynamic_graph_itransformer": { "display_name": "DG-iTransformer", "family": "deep_keras", "algorithm": "DynamicGraphITransformer", "version": "2.0", "r2": 0.595, "mae": 9.38, "requires_scaling": true, "file": "models/deep/dynamic_graph_itransformer.keras", "sha256": "6bbca626faeaa1472966659e9908be1ed4db0889c8668602be1fe2c4b143a338", "bytes": 1716519 }, "best_ensemble": { "display_name": "Best Ensemble (RF+XGB+LGB)", "family": "ensemble", "algorithm": "WeightedAverage", "version": "2.0", "r2": 0.886, "mae": 3.89, "requires_scaling": false, "components": [ "random_forest", "xgboost", "lightgbm" ], "file": null } }, "scalers": { "standard_scaler": "scalers/standard_scaler.joblib", "sequence_scaler": "scalers/sequence_scaler.joblib" }, "champion": "extra_trees", "training_date": "2026-01-15", "framework": [ "scikit-learn", "xgboost", "lightgbm", "pytorch", "tensorflow" ], "scaler_checksums": { "standard_scaler": "f1cf42692e735612a9afe241b2623dd46f28c04fccb3945a6082cae22eb8847c", "sequence_scaler": "1fb23b358b2ee1746ecaca97539be6282dcd9209d0265b886b9fb9a578455c1e" }, "checksums": { "models": { "models/classical/best_rul_model.joblib": "12ea21f09889fbdf1638a4eecbb789588cfdc81a4202f24708fa40c9ef90cba9", "models/classical/elasticnet.joblib": "394afde1b6ec00af22c37a917a22fe6a505d290f6a2ef91d35d2bdb8795ea83c", "models/classical/extra_trees.joblib": "26b9501df3d477d474a88fda3b742142f226b5d43069f2cc2c83f7d971127e48", "models/classical/gradient_boosting.joblib": "492e4b46dd31b485ce157182ecdec038c2c47520466831e8b8b1530d43f9b0cc", "models/classical/knn_k10.joblib": "bb5ac2f3e1ab77528731f03e0cb4485906be454d19e8f699090ae2487b37a56c", "models/classical/knn_k20.joblib": "0c89537e6b72b228bf209b299069285f2d784d92554c3016c50075223ab41915", "models/classical/knn_k5.joblib": "c0a40627460b696ae0d8d949fea6fcd20c3bcb3dc1b204b7fa36a6284eab7317", "models/classical/lasso.joblib": "7514dce7a63ac41873fed2e7c09ff5a999845231b9fc354f5c38949cd74f9f38", "models/classical/lightgbm.joblib": "51d3cede8af476871036909ca69fed40d91558b25c2f7663386654d999ddb3ca", "models/classical/lightgbm_best_params.joblib": "95c4ce7b35f4c2e82dfbee7c915334438e7b5a599b301a0e9ce01f234af6a138", "models/classical/random_forest.joblib": "863dbf027cb78f88500ac9bd753d4148cba42e9e16b1d546a9c7858834cdfc5f", "models/classical/rf_classifier.joblib": "576f3e348aba1eeeab545be52cd41a371eb6c99cad2856f180712838557979c3", "models/classical/ridge.joblib": "3b2afc35f81469da28ec4620092dd955c5925689c865a57e81d2cf00fbf0f60a", "models/classical/svr.joblib": "fbeacb67245b695abf56c2f98716d4829018485869823d371bec136a6904f097", "models/classical/xgb_classifier.joblib": "f8a4854d0dc4253490a317cf18f1253ab23111c343d91b7fa6fa2b9683d698dd", "models/classical/xgboost.joblib": "415e497fab79dad35648435d5d71b48eb2f0a3892c5ab32b54a33547a640e6de", "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": "f1cf42692e735612a9afe241b2623dd46f28c04fccb3945a6082cae22eb8847c", "scalers/sequence_scaler.joblib": "1fb23b358b2ee1746ecaca97539be6282dcd9209d0265b886b9fb9a578455c1e", "scalers/standard_scaler.joblib": "f1cf42692e735612a9afe241b2623dd46f28c04fccb3945a6082cae22eb8847c" }, "results": { "results/battery_features.csv": "5df4aff7d420a05d38215df5d840689bfaca27eea80e337dadf8a6882172e897", "results/battery_sequences.npz": "678993299c19a38ecc682c9d74d35eeae7b8678e6bbe4dad8a831ab160cb3b0b", "results/best_model_analysis.png": "82226ec881c24c7b9a4e203860179adba2e7b1147fd2d111423ac1a26d458146", "results/classical_results.csv": "a5a401c558bb3859386a6d1c7a7db26e60ee724111b32a577b805d165888c217", "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/intra_battery.json": "cc1a80b3922532377b72d5d6229f3d154024ccddb8c9984f973f121ba916a880", "results/lstm_soh_results.csv": "bcec1411f1f3e5fe386e786f16cd640b94944f46091b0ca35a930108bb3b7e82", "results/model_validation.csv": "bb55b774a35f81ada3cb1f829bcb765d4b9ad1e2fdfc37cff62c80d253ad83c8", "results/per_battery_accuracy.png": "bdaf8a7e305790081be928da97af30e506aa277a51d8342051d1630c2e20a99d", "results/r2_vs_accuracy.png": "d24044551405226692fe75f7fe2af0daaee9186d42a0a6aa0dbca56af89724b4", "results/training_summary.json": "6b317795c471ff4a5791ff7a26b4ce9f6ab26b77e5128db6ec29fc7ce1e80d6e", "results/transformer_soh_results.csv": "6a203f57e83c4a1ae2086b132104c89b8c268a12ecfe436ea07094aacd9a6c39", "results/unified_results.csv": "4384593f4435a7f99c5e9319fb0b7539f0e9816e83f7d63cb52ef97134ef0dd9", "results/vae_lstm_results.json": "42718f18989aa7ccdee1ce136c3022c69843eed85e5a6265f4161c0995fafc51", "results/validation_accuracy_bars.png": "5ee67a1ed3b8c3a4c6c34a2b035c0c85b1b4802f44910f83841a113a44bcab5e", "results/validation_report.html": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "results/validation_summary.json": "a42fc7d4ad5ac5b388360c70849a3938ee957c78e521928432312ed9e5e5c926" }, "features": {}, "figures": { "figures/best_actual_vs_pred.png": "532c0c65980696fc47414b6b97417d8ba10ba37ed71f3b115bcaa9076b9926cf", "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_actual_vs_pred_v2.png": "8bdd0a9e70df7997338c86a5ab967b749f4b84df1f4f960726ced07554a33ffe", "figures/classical_best_residuals.png": "c870d1ad4bcb992de61934d6aa13c29a01bc2e878a499b21bf18d3ce73ade1e9", "figures/classical_best_residuals_v2.png": "2af3670aff7df066ba73e92a427165d89b113605fc30083d7858493431bdddf9", "figures/classical_soh_comparison.png": "eb003dcfb2187f2f2b4b27150ec05ee5f5bf6c510c17b452001a2067bf57c8c8", "figures/classical_soh_comparison_v2.png": "1e58922ab4265aa9156e1e7afd5c000a897c1b69d049c058a6d5fb75f54c7790", "figures/classical_top8.png": "9bea4f378061b56f5c3a38ae31d01a66890986a1a80c9b0b68748e9093636b7d", "figures/classification_confusion_matrices.png": "aa273d9a278bdd46776a8198771d089b813e441de0bcae5ca35d413e6cb9bd0b", "figures/classification_confusion_matrices_v2.png": "21e23b236d6875878f1c6be37445c59db196cd45302727537638f00da95edf75", "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/per_battery_mae_heatmap_v2.png": "77bee8b0a28c97149dec3dfc836d9467163b82320493e5902b9efb72aa962f6d", "figures/radar_top6.png": "773072825ec89a283436abac3d49752702844ecd8c80b054584e74e52175c67f", "figures/re_vs_rct_scatter.png": "3dd5a2c0ef78484a08fcc051236699106c148bdfb6a7d3aa0aac58d2ac3a6839", "figures/shap_rf_soh_v2.png": "504a723d55722fb79f9234e7002cb91823da562ea8996afc24b673f49709d9fa", "figures/shap_xgboost_soh.png": "46df87d18cfc5e95b939b18a779c446dc897a999f8ec58c3eb8b891796e66915", "figures/shap_xgboost_soh_v2.png": "e2135a497b8c16daa6eef84f43ac27c03122cbc55da2c3f3e7810a86541257cc", "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:44.185547+00:00" }, "verification": { "hash_algorithm": "sha256", "required": true, "last_verified_utc": "2026-03-10T18:10:44.185547+00:00" } }