📦 Livrables
:::{.livrable-title}📋 Livrable 1 — Synthèse Solvabilité II::: :::{.livrable-status .required}Obligatoire:::
Document de synthèse expliquant les 3 piliers et leur impact sur le travail d’un data scientist en assurance. Inclure un schéma des interactions entre piliers et activités techniques.
:::{.livrable-title}🐍 Livrable 2 — API FastAPI de scoring::: :::{.livrable-status .required}Obligatoire:::
API complète avec :
- Endpoint POST
/predictacceptant un profil d’assuré - Validation Pydantic des entrées
- Modèle de scoring (même simple : relativités en dur)
- Dockerfile pour conteneuriser l’API
- Documentation Swagger accessible à
/docs
:::{.livrable-title}📊 Livrable 3 — Bilan mi-parcours::: :::{.livrable-status .required}Obligatoire:::
La semaine 12 marque la moitié du parcours. Rédige un bilan :
- Compétences acquises (métier + technique)
- Points forts et axes d’amélioration
- Objectifs pour les semaines 13-24 (projet central)
🏋️ Exercices
📝 Exercice M1 — Ratio de solvabilité
Un assureur a des fonds propres de 150 M€, un SCR de 120 M€ et un MCR de 40 M€. Calcule les ratios de solvabilité et interprète.
- Ratio SCR = 150 / 120 = 125% → Solvable (> 100%), marge confortable
- Ratio MCR = 150 / 40 = 375% → Très au-dessus du minimum
L’assureur est solvable mais avec une marge de 25% seulement sur le SCR. Un sinistre catastrophique ou une baisse des marchés financiers pourrait rapidement dégrader ce ratio. À surveiller.
🐍 Exercice T1 — Première API FastAPI
Crée une API avec :
- GET
/health→ retourne{"status": "ok"} - POST
/quote→ accepte{"age": int, "zone": str}et retourne une prime calculée
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class QuoteRequest(BaseModel):
age: int
zone: str
@app.get("/health")
def health():
return {"status": "ok"}
@app.post("/quote")
def quote(req: QuoteRequest):
base = 300
rel_age = 1.8 if req.age < 26 else 1.0 if req.age < 65 else 1.2
rel_zone = {"paris": 1.4, "lyon": 1.2, "rural": 0.8}.get(req.zone, 1.0)
prime = base * rel_age * rel_zone
return {"prime": round(prime, 2), "profil": req.dict()}🐍 Exercice T2 — Dockeriser l’API
Écris un Dockerfile et un docker-compose.yml pour déployer l’API FastAPI du projet.
# Dockerfile
FROM python:3.10-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]# docker-compose.yml
version: "3.8"
services:
api:
build: .
ports:
- "8000:8000"
environment:
- MODEL_PATH=/app/models/glm.pkl🔗 Pont métier-technique
🤔 Réflexion
- Comment ton API de scoring s’intègre-t-elle dans le cadre Solvabilité II ? (traçabilité des décisions, audit trail)
- Quels KPIs de l’API faut-il monitorer pour le Pilier 2 ? (latence, erreurs, volume)
- Comment documenter ton modèle pour satisfaire la fonction actuarielle (Pilier 2) ? (MLflow + rapport technique)
✅ Checklist
- Module Métier 12 terminé (Solvabilité II, 3 piliers, ORSA)
- Module Technique 12 terminé (FastAPI, Pydantic, Docker)
- Livrable 1 (synthèse Solvabilité II)
- Livrable 2 (API FastAPI de scoring)
- Livrable 3 (bilan mi-parcours)
- Exercices réalisés
- Mi-parcours atteinte — prêt pour le projet central !