Hey everyone,
Iβm working on a small ML project (~1200 samples) where Iβm trying to predict:
- Emotional state (classification β 6 classes)
- Intensity (1β5) of that emotion
The dataset contains:
journal_text(short, noisy reflections)- metadata like:
- stress_level
- energy_level
- sleep_hours
- time_of_day
- previous_day_mood
- ambience_type
- face_emotion_hint
- duration_min
- reflection_quality
π§ What Iβve done so far
1. Text processing
Using TF-IDF
2. Metadata
- Converted categorical (
face_emotion_hint) to numeric - Kept others as numerical
- Handled missing values (NaN left for XGBoost / simple filling)
Scaled metadata usingStandardScaler
3. Models
Emotional State (Classification)
Using XGBClassifier:
- accuracy β 66β67%
Classification report looks decent, confusion mostly between neighboring classes.
Intensity (Initially Classification)
- accuracy β 21% (very poor)
4. Switched Intensity β Regression
Used XGBRegressor:
- predictions rounded to 1β5
Evaluation: - MAE β 1.22
Current Issues
1. Intensity is not improving much
- Even after feature engineering + tuning
- MAE stuck around 1.2
- Small improvements only (~0.05β0.1)
2. TF-IDF tuning confusion
- Reducing features (500) β accuracy dropped
- Increasing (1000β1500) β slightly better
Not sure how to find optimal balance
3. Feature engineering impact is small
- Added multiple features but no major improvement
- Unsure what kind of features actually help intensity
Questions
- Are there better approaches for ordinal prediction (instead of plain regression)?
- Any ideas for better features specifically for emotional intensity?
- Should I try different models (LightGBM, linear models, etc.)?
- Any better way to combine text + metadata?
Would really appreciate any suggestions or insights π