feat: implement comprehensive land cover classification pipeline with model benchmarking and experiment logging
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
🚀 CHIẾN LƯỢC TOÀN DIỆN ĐẠT >95% ACCURACY
|
||||
============================================================
|
||||
Loaded data: X=(706, 24, 16, 16), y=(706,)
|
||||
Labels unique: [-1 0 1 2 3 4 5 6]
|
||||
After cleanup: X=(652, 24, 16, 16), y=(652,) (removed 54 bad samples)
|
||||
Remapped labels: [0 1 2 3 4 5 6]
|
||||
Class 0: 65 samples
|
||||
Class 1: 52 samples
|
||||
Class 2: 48 samples
|
||||
Class 3: 72 samples
|
||||
Class 4: 108 samples
|
||||
Class 5: 219 samples
|
||||
Class 6: 88 samples
|
||||
|
||||
============================================================
|
||||
STRATEGY 5: Flat pixel features + XGBoost (sanity check)
|
||||
============================================================
|
||||
Flat features: (652, 6144)
|
||||
✅ Flat XGBoost acc: 0.7328
|
||||
|
||||
============================================================
|
||||
STRATEGY 1: Lightweight CNN (no upsampling)
|
||||
============================================================
|
||||
Device: cuda
|
||||
Epoch 1/300 Loss=1.8379 Acc=0.0763 🌟
|
||||
Epoch 2/300 Loss=1.5825 Acc=0.2824 🌟
|
||||
Epoch 3/300 Loss=1.4412 Acc=0.5649 🌟
|
||||
Epoch 4/300 Loss=1.3274 Acc=0.6336 🌟
|
||||
Epoch 5/300 Loss=1.2893 Acc=0.6870 🌟
|
||||
Epoch 8/300 Loss=1.2140 Acc=0.7099 🌟
|
||||
Epoch 11/300 Loss=1.2224 Acc=0.7252 🌟
|
||||
Epoch 14/300 Loss=1.1087 Acc=0.7328 🌟
|
||||
Epoch 16/300 Loss=1.1081 Acc=0.7710 🌟
|
||||
Epoch 18/300 Loss=1.1847 Acc=0.7939 🌟
|
||||
Epoch 20/300 Loss=1.0316 Acc=0.7786 (patience=2)
|
||||
Epoch 24/300 Loss=1.0465 Acc=0.8092 🌟
|
||||
Epoch 26/300 Loss=0.9583 Acc=0.8397 🌟
|
||||
Epoch 40/300 Loss=0.9361 Acc=0.8626 🌟
|
||||
Epoch 60/300 Loss=0.9807 Acc=0.8092 (patience=20)
|
||||
Epoch 80/300 Loss=0.9459 Acc=0.8015 (patience=40)
|
||||
Epoch 100/300 Loss=0.8443 Acc=0.7939 (patience=60)
|
||||
Early stop at epoch 100
|
||||
✅ LightCNN best acc: 0.8626
|
||||
|
||||
============================================================
|
||||
STRATEGY 2: Hybrid CNN embeddings + XGBoost
|
||||
============================================================
|
||||
CNN embeddings: (652, 256)
|
||||
Extracted 316 rich features per sample
|
||||
Combined features: (652, 572)
|
||||
✅ Hybrid XGBoost acc: 0.8244
|
||||
|
||||
============================================================
|
||||
STRATEGY 3: Rich Features + Stacking Ensemble
|
||||
============================================================
|
||||
Extracted 316 rich features per sample
|
||||
XGBoost: 0.7939
|
||||
LightGBM: 0.7786
|
||||
ExtraTrees: 0.7863
|
||||
RandomForest: 0.7710
|
||||
GBM: 0.7710
|
||||
[06:55:44] WARNING: /__w/xgboost/xgboost/src/learner.cc:782:
|
||||
Parameters: { "use_label_encoder" } are not used.
|
||||
[06:55:44] WARNING: /__w/xgboost/xgboost/src/learner.cc:782:
|
||||
Parameters: { "use_label_encoder" } are not used.
|
||||
|
||||
|
||||
[06:55:44] WARNING: /__w/xgboost/xgboost/src/learner.cc:782:
|
||||
Parameters: { "use_label_encoder" } are not used.
|
||||
[06:55:44] WARNING: /__w/xgboost/xgboost/src/learner.cc:782:
|
||||
Parameters: { "use_label_encoder" } are not used.
|
||||
|
||||
|
||||
[06:55:44] WARNING: /__w/xgboost/xgboost/src/learner.cc:782:
|
||||
Parameters: { "use_label_encoder" } are not used.
|
||||
|
||||
[06:56:17] WARNING: /__w/xgboost/xgboost/src/common/error_msg.cc:62: Falling back to prediction using DMatrix due to mismatched devices. This might lead to higher memory usage and slower performance. XGBoost is running on: cuda:0, while the input data is on: cpu.
|
||||
Potential solutions:
|
||||
- Use a data structure that matches the device ordinal in the booster.
|
||||
- Set the device for booster before call to inplace_predict.
|
||||
|
||||
This warning will only be shown once.
|
||||
|
||||
Stacking Ensemble: 0.7710
|
||||
Voting Ensemble: 0.7786
|
||||
✅ Best ensemble: XGBoost = 0.7939
|
||||
Extracted 316 rich features per sample
|
||||
|
||||
============================================================
|
||||
STRATEGY 4: 5-Fold Stratified Cross-Validation
|
||||
============================================================
|
||||
Fold 1: 0.7939
|
||||
Fold 2: 0.8244
|
||||
Fold 3: 0.7769
|
||||
Fold 4: 0.8154
|
||||
Fold 5: 0.7615
|
||||
✅ CV Mean: 0.7944 ± 0.0234
|
||||
|
||||
============================================================
|
||||
📊 TỔNG KẾT KẾT QUẢ
|
||||
============================================================
|
||||
📈 LightCNN: 0.8626
|
||||
📈 Hybrid CNN+XGBoost: 0.8244
|
||||
📈 CV Mean (XGBoost rich): 0.7944
|
||||
📈 Ensemble XGBoost: 0.7939
|
||||
📈 Ensemble ExtraTrees: 0.7863
|
||||
📈 Ensemble LightGBM: 0.7786
|
||||
📈 Ensemble Voting: 0.7786
|
||||
📈 Ensemble RandomForest: 0.7710
|
||||
📈 Ensemble GBM: 0.7710
|
||||
📈 Ensemble Stacking: 0.7710
|
||||
📈 Flat XGBoost (baseline): 0.7328
|
||||
|
||||
🏆 BEST: LightCNN = 0.8626
|
||||
|
||||
✅ Kết quả đã được lưu vào model_train/ultimate_results.json
|
||||
⚠️ Chưa đạt 95%. Best = 0.8626. Cần thêm dữ liệu hoặc feature engineering.
|
||||
Reference in New Issue
Block a user