Skip to content

About

Amazon ML challenge for predicting price from unstructured textual data and image_links.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Multimodal_Regression_AML

Amazon ML challenge for predicting price from unstructured textual data and image_links. 📌 Overview

This project tackles price prediction using both textual and image data. We explore multiple architectures — from classical TF-IDF baselines to SBERT embeddings, image models (ResNet/EfficientNet), and powerful multimodal fusion approaches (Huber, XGBoost, RandomForest, and Ensemble methods). Integrating semantic text and visual cues with robust regression yields strong baselines for multimodal price prediction. Ensembles—especially stacked (XGB + Cat + LGB) achieve the best RMSE and lowest SMAPE, proving the strength of synergy over single-modality learning. The goal is to predict a product’s price given its description and image.

⚙️ Tech Stack

Language: Python 3.10+

Frameworks: TensorFlow, Scikit-learn, CatBoost, LightGBM, XGBoost

Embeddings: SBERT (sentence-transformers), TF-IDF (sklearn)

Pretrained Vision Models: EfficientNetB0 / ResNet50

Regression Models: Huber, RandomForest, XGBoost, Stacked Ensemble

Feature Encoders: Target Encoding, One-Hot Encoding

🏁 Conclusion

This project demonstrates:

How text and image features can be integrated for price regression.

Why non-linear ensemble models outperform linear baselines.

The power of stacked ensembling and robust encoding in real-world multimodal tasks.

Integration of textual (SBERT, TF-IDF) and visual (EfficientNet) features for regression.

Application of Huber, RandomForest, and Boosting Ensembles.

Importance of SMAPE for scale-independent error measurement.

Metric: SMAPE def smape(y_true, y_pred): y_true, y_pred = np.array(y_true), np.array(y_pred) denominator = (np.abs(y_true) + np.abs(y_pred)) / 2 diff = np.abs(y_pred - y_true) mask = denominator != 0 return np.mean(diff[mask] / denominator[mask]) * 100

About

Amazon ML challenge for predicting price from unstructured textual data and image_links.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages