hoàn thành chức năng tính ndvi analysys 2 màn hình

This commit is contained in:
Victor Phan
2025-12-24 13:57:08 +07:00
parent 389c7c141f
commit e86709df85
25 changed files with 4755 additions and 460 deletions
+37 -3
View File
@@ -224,12 +224,46 @@ def train_with_rf(X_train, X_val, y_train, y_val):
return grid_search
def save_model(name_file, grid_search):
def save_model(name_file, model, metadata=None, label_encoder=None):
"""
Save model với metadata để tương thích với ModelManager
Args:
name_file: Tên file model
model: Model object
metadata: Dict chứa thông tin về model (optional)
label_encoder: Label encoder (optional)
"""
from model_manager import get_model_manager
dir_save_model = "model_train"
if not os.path.exists(dir_save_model):
os.mkdir(dir_save_model)
joblib.dump(grid_search, os.path.join(dir_save_model, name_file))
print("Done!")
# Nếu có metadata, sử dụng ModelManager
if metadata is not None:
model_manager = get_model_manager()
model_manager.save_model(
model=model,
metadata=metadata,
model_filename=name_file,
label_encoder=label_encoder
)
else:
# Legacy mode: save trực tiếp (backward compatibility)
model_data = {
'model': model,
'label_encoder': label_encoder
} if label_encoder is not None else model
joblib.dump(model_data, os.path.join(dir_save_model, name_file))
print(f"✅ Model saved: {name_file}")
if metadata:
print(f" - Type: {metadata.get('model_type', 'N/A')}")
print(f" - Features: {metadata.get('n_features', 'N/A')}")
print(f" - Accuracy: {metadata.get('test_accuracy', 'N/A')}")
def predict(model, data_crs, ndvi, vh, vv):