hsilvosa/open-food-facts
Preview • Updated • 16
This model estimates Nutri-Score grades (A, B, C, D, E) and continuous numerical scores when nutritional values are partially or fully missing.
Trained on hsilvosa/open-food-facts.
Nutri-Score is a front-of-pack nutritional rating system ranging from A (highest nutritional quality) to E (lowest). When product labels have missing macronutrient values (e.g., missing fiber or sodium content), standard rule-based calculators fail.
This multi-modal ensemble combines:
| Metric | Score |
|---|---|
| Grade Top-1 Accuracy | 83.33% |
| Grade Top-2 Accuracy | 93.40% |
| Numeric Score R² | 0.9051 (90.5% Variance Explained) |
| Mean Absolute Error (MAE) | 1.95 points |
| Median Absolute Error | 0.95 points |
| Weighted F1-Score | 0.8353 |
from src.models.nutriscore_predictor import NutriScorePredictor
import pandas as pd
predictor = NutriScorePredictor.from_pretrained("your-username/nutriscore-predictor")
sample_product = pd.DataFrame([{
"product_name": "Organic Oat Drink",
"categories": "Plant-based beverages",
"ingredients_text": "Water, oats (12%), sunflower oil, sea salt.",
"energy-kcal_100g": 45.0,
"fat_100g": 1.5,
"sugars_100g": 4.0,
"proteins_100g": 0.8,
}])
prediction = predictor.predict(sample_product)[0]
print(f"Predicted Grade: {prediction['predicted_grade']}")
print(f"Predicted Score: {prediction['predicted_score']:.2f}")