You are provided with **three labeled datasets (Units A, B, C)** containing diagnostic snapshots from distinct flow-monitoring units. Each row represents a momentary reading from several sensors:

- **37–52 numerical features** per sample (depending on the unit)
- **Flow indicators** (0–20 range)
- **Pressure readings** (~1400–1500)
- **Temperature sensors** (30–40 °C and 80–150 °C ranges)
- **Stability/ratio coefficients** (~0.8–1.2)
- **Target (`fault_state`)** ∈ {1, 2, 3, 4}

You may split A, B, C however you wish—train/validation strategy is up to you. A common recommendation is:
- **Train:** Units A & B  
- **Validate:** Unit C

On Kaggle, you also receive an **unlabeled `test.csv`**, drawn from another unit. Your task is to predict the `fault_state` for every row in this file.

## Files Provided
- `unit_A.csv` – labeled  
- `unit_B.csv` – labeled  
- `unit_C.csv` – labeled  
- `test.csv` – unlabeled (features only)  
- `sample_submission.csv` – submission template

Each labeled file includes:
- numeric feature columns  
- `fault_state` as the final column
