File size: 1,205 Bytes
e323466
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
"""Train and evaluate the TF-IDF + Logistic Regression baseline model."""

import sys
from pathlib import Path

import yaml
from loguru import logger

sys.path.insert(0, str(Path(__file__).resolve().parent.parent))

from src.data.dataset import load_splits
from src.data.preprocessing import set_global_seeds
from src.models.baseline import train, evaluate


def main() -> None:
    """Run baseline training and evaluation pipeline."""
    Path("logs").mkdir(exist_ok=True)
    logger.add("logs/train_baseline.log", rotation="10 MB")

    with open("config/config.yaml") as f:
        cfg = yaml.safe_load(f)

    set_global_seeds(cfg["data"]["seed"])

    processed_dir = cfg["paths"]["data_processed"]
    train_df, val_df, test_df = load_splits(processed_dir)

    pipeline = train(
        train_df=train_df,
        val_df=val_df,
        cfg=cfg,
        save_dir=cfg["paths"]["models_baseline"],
    )

    report = evaluate(
        pipeline=pipeline,
        test_df=test_df,
        results_dir=cfg["paths"]["results"],
    )

    weighted_f1 = report["weighted avg"]["f1-score"]
    logger.info(f"Baseline complete. Test weighted F1: {weighted_f1:.4f}")


if __name__ == "__main__":
    main()