EIA - Idees de projets suggerees
Comment choisir votre projet
Selectionner le bon projet est crucial. Choisissez-en un qui correspond a votre niveau de competence et a vos interets. Utilisez l'organigramme de decision ci-dessous pour vous aider a decider.
Organigramme de decision
Criteres de selection
| Facteur | Questions a vous poser |
|---|---|
| Interet | Suis-je reellement curieux(se) a propos de ce probleme ? |
| Disponibilite des donnees | Le jeu de donnees est-il facile d'acces et bien documente ? |
| Complexite | Puis-je realistement terminer ceci en 15 heures ? |
| Explicabilite | LIME/SHAP produiront-ils des resultats significatifs pour ce modele ? |
| Demonstrabilite | Puis-je construire une demo en direct convaincante ? |
Vous ne pouvez pas changer de projet apres la semaine 13. Assurez-vous d'avoir acces au jeu de donnees et de comprendre le probleme avant de vous engager.
Tableau comparatif des projets
| # | Projet | Type | Difficulte | Taille du jeu de donnees | Ideal pour |
|---|---|---|---|---|---|
| 1 | Predicteur de prix immobilier | Regression | ⭐ Debutant | ~1 500 lignes | a l'aise avec les chiffres |
| 2 | Analyseur de sentiment | Classification | ⭐⭐ Intermediaire | ~50 000 lignes | Interet pour le NLP |
| 3 | Classificateur de spam | Classification | ⭐ Debutant | ~5 500 lignes | Premier projet ML |
| 4 | Predicteur d'attrition client | Classification | ⭐⭐ Intermediaire | ~7 000 lignes | Interet metier |
| 5 | Classificateur d'images | Classification | ⭐⭐⭐ Avance | ~70 000 images | Interet pour la vision par ordinateur |
| 6 | evaluation du risque medical | Classification | ⭐⭐ Intermediaire | ~300 lignes | Interet pour la sante |
| 7 | Recommandeur de films | Classification | ⭐⭐⭐ Avance | ~100 000 evaluations | Systemes de recommandation |
| 8 | Credit scoring | Classification | ⭐⭐ Intermediaire | ~30 000 lignes | Interet pour la finance |
| 9 | Predicteur de couts d'assurance | Regression | ⭐ Debutant | ~1 300 lignes | Demarrage rapide, donnees propres |
| 10 | Predicteur d'attrition d'employes | Classification | ⭐⭐ Intermediaire | ~1 400 lignes | RH / analytique des personnes |
1. Predicteur de prix immobilier
Predire les prix des logements en fonction des caracteristiques de la propriete.
| Aspect | Details |
|---|---|
| Type | Regression |
| Difficulte | ⭐ Debutant |
| Jeu de donnees | Boston Housing ou Ames Housing |
| echantillons | ~1 460 (Ames) / ~506 (Boston) |
| Caracteristiques | Superficie, chambres, quartier, annee de construction, etc. |
| Cible | Prix de vente (continu) |
Modeles suggeres
- Regression lineaire (reference de base)
- Random Forest Regressor
- Gradient Boosting (XGBoost ou LightGBM)
Endpoints API
| Endpoint | Methode | Entree | Sortie |
|---|---|---|---|
/predict | POST | [ sqft, bedrooms, bathrooms, year_built, neighborhood ] | [ predicted_price, confidence_interval ] |
/health | GET | — | [ status, timestamp ] |
/model-info | GET | — | [ model, r2_score, mae, features ] |
Metriques d'evaluation
- MAE (Mean Absolute Error)
- RMSE (Root Mean Square Error)
- R² Score
- MAPE (Mean Absolute Percentage Error)
Focus explicabilite
SHAP est ideal ici — les graphiques en cascade montrent clairement comment chaque caracteristique pousse le prix predit vers le haut ou vers le bas (par ex., une plus grande superficie augmente le prix, une annee de construction plus ancienne le diminue).
Exemple de requete predict
{
"square_feet": 1500,
"bedrooms": 3,
"bathrooms": 2,
"year_built": 2005,
"neighborhood": "CollgCr",
"garage_cars": 2,
"overall_quality": 7
}
Reponse :
{
"predicted_price": 215400.50,
"model_version": "1.0.0",
"confidence": "Prediction based on Random Forest with R²=0.89"
}
2. Analyseur de sentiment
Classifier les avis textuels comme positifs, negatifs ou neutres.
| Aspect | Details |
|---|---|
| Type | Classification de texte (NLP) |
| Difficulte | ⭐⭐ Intermediaire |
| Jeu de donnees | IMDB Reviews ou Amazon Reviews |
| echantillons | ~50 000 |
| Caracteristiques | Texte brut (necessite TF-IDF ou CountVectorizer) |
| Cible | Sentiment (positif / negatif) |
Modeles suggeres
- Regression logistique avec TF-IDF (reference de base)
- Naive Bayes (MultinomialNB)
- Random Forest avec caracteristiques TF-IDF
Endpoints API
| Endpoint | Methode | Entree | Sortie |
|---|---|---|---|
/predict | POST | [ text: "This movie was fantastic!" ] | [ sentiment, confidence, keywords ] |
/health | GET | — | [ status, timestamp ] |
/model-info | GET | — | [ model, accuracy, vocabulary_size ] |
Metriques d'evaluation
- Accuracy
- Precision / Recall par classe
- F1-Score
- Matrice de confusion
Focus explicabilite
LIME excelle pour le texte — il met en evidence les mots qui contribuent le plus a la prediction (par ex., « fantastic » → positif, « terrible » → negatif).
N'oubliez pas : minuscules, suppression de la ponctuation, suppression des mots vides et application de TF-IDF avant l'entrainement. Documentez soigneusement votre pipeline de pretraitement — il doit etre reproduit au moment de la prediction.
Exemple de requete predict
{
"text": "The product arrived quickly and works perfectly. Very satisfied with my purchase!"
}
Reponse :
{
"sentiment": "positive",
"confidence": 0.94,
"model_version": "1.0.0"
}
3. Classificateur de spam
Classifier les messages SMS ou courriels comme spam ou non-spam (ham).
| Aspect | Details |
|---|---|
| Type | Classification binaire (NLP) |
| Difficulte | ⭐ Debutant |
| Jeu de donnees | SMS Spam Collection |
| echantillons | ~5 574 |
| Caracteristiques | Texte SMS brut |
| Cible | Spam / Ham |
Modeles suggeres
- Naive Bayes avec CountVectorizer (reference de base — filtre anti-spam classique)
- Regression logistique avec TF-IDF
- Machine a vecteurs de support (SVM)
Endpoints API
| Endpoint | Methode | Entree | Sortie |
|---|---|---|---|
/predict | POST | [ message: "You won a free iPhone!" ] | [ label, spam_probability ] |
/health | GET | — | [ status, timestamp ] |
/model-info | GET | — | [ model, accuracy, f1_score ] |
Metriques d'evaluation
- Accuracy
- Precision (critique — eviter les faux positifs marquant de vrais messages comme spam)
- Recall
- F1-Score
Focus explicabilite
LIME met en evidence les mots « spammeurs » qui declenchent le classificateur (par ex., « free », « winner », « click », « prize »).
Le jeu de donnees SMS Spam est petit, propre et bien documente. Le probleme est intuitif (tout le monde sait a quoi ressemble le spam), et les resultats sont faciles a demontrer et a expliquer.
Exemple de requete predict
{
"message": "CONGRATULATIONS! You've been selected to receive a $1000 Walmart gift card. Click here to claim now!"
}
Reponse :
{
"label": "spam",
"spam_probability": 0.97,
"model_version": "1.0.0"
}
4. Predicteur d'attrition client
Predire si un client va quitter (attrition) un service.
| Aspect | Details |
|---|---|
| Type | Classification binaire |
| Difficulte | ⭐⭐ Intermediaire |
| Jeu de donnees | Telco Customer Churn |
| echantillons | ~7 043 |
| Caracteristiques | Anciennete, frais mensuels, type de contrat, service Internet, mode de paiement, etc. |
| Cible | Attrition (Oui / Non) |
Modeles suggeres
- Regression logistique (reference de base)
- Random Forest Classifier
- Gradient Boosting (XGBoost)
Endpoints API
| Endpoint | Methode | Entree | Sortie |
|---|---|---|---|
/predict | POST | [ tenure, monthly_charges, contract, internet_service, ... ] | [ churn_prediction, churn_probability, risk_level ] |
/health | GET | — | [ status, timestamp ] |
/model-info | GET | — | [ model, auc_roc, features ] |
Metriques d'evaluation
- Accuracy
- AUC-ROC (metrique principale pour les classes desequilibrees)
- Precision / Recall
- F1-Score
Focus explicabilite
Les graphiques de dependance SHAP revelent quels facteurs conduisent le plus a l'attrition (par ex., contrats mensuels, frais mensuels eleves). Les perspectives pertinentes pour le metier rendent cela excellent pour votre presentation.
Exemple de requete predict
{
"tenure": 3,
"monthly_charges": 85.50,
"total_charges": 256.50,
"contract": "Month-to-month",
"internet_service": "Fiber optic",
"payment_method": "Electronic check",
"senior_citizen": 0
}
Reponse :
{
"churn_prediction": "Yes",
"churn_probability": 0.82,
"risk_level": "High",
"model_version": "1.0.0"
}
5. Classificateur d'images (simple)
Classifier des images en categories en utilisant des caracteristiques de pixels ou des caracteristiques pre-extraites.
| Aspect | Details |
|---|---|
| Type | Classification multiclasse |
| Difficulte | ⭐⭐⭐ Avance |
| Jeu de donnees | Fashion MNIST ou CIFAR-10 |
| echantillons | ~70 000 (Fashion MNIST) |
| Caracteristiques | Valeurs de pixels 28×28 (aplaties en 784 caracteristiques) |
| Cible | Categorie (T-shirt, Pantalon, Pull, etc.) |
Modeles suggeres
- Regression logistique sur pixels aplatis (reference de base)
- Random Forest sur pixels aplatis
- SVM avec reduction de dimensionnalite (PCA)
Endpoints API
| Endpoint | Methode | Entree | Sortie |
|---|---|---|---|
/predict | POST | [ pixels: [0.0, 0.0, ..., 0.5, ...] ] (784 valeurs) | [ category, confidence, top_3_predictions ] |
/health | GET | — | [ status, timestamp ] |
/model-info | GET | — | [ model, accuracy, classes ] |
Metriques d'evaluation
- Accuracy
- Precision et Recall par classe
- Matrice de confusion (10×10)
- Macro F1-Score
Focus explicabilite
LIME pour les images met en evidence quelles regions de pixels ont le plus contribue a la classification. SHAP peut montrer l'importance des caracteristiques a travers les positions de pixels.
Ce projet necessite la gestion d'entrees de haute dimension (784 caracteristiques). Envisagez PCA pour la reduction de dimensionnalite. La charge utile de l'API sera plus grande — prevoyez la validation de la longueur du tableau et des plages de valeurs.
Exemple de requete predict
{
"pixels": [0.0, 0.0, 0.0, 0.0, 0.12, 0.45, 0.78, "... (784 values total)"]
}
Reponse :
{
"category": "Ankle boot",
"confidence": 0.91,
"top_3_predictions": [
{"category": "Ankle boot", "confidence": 0.91},
{"category": "Sneaker", "confidence": 0.06},
{"category": "Sandal", "confidence": 0.02}
],
"model_version": "1.0.0"
}
6. evaluation du risque medical
Predire le risque d'une condition medicale en fonction des caracteristiques du patient.
| Aspect | Details |
|---|---|
| Type | Classification binaire |
| Difficulte | ⭐⭐ Intermediaire |
| Jeu de donnees | Heart Disease UCI ou Diabetes |
| echantillons | ~303 (Cœur) / ~768 (Diabete) |
| Caracteristiques | age, pression arterielle, cholesterol, glucose, IMC, etc. |
| Cible | Presence de maladie (Oui / Non) |
Modeles suggeres
- Regression logistique (reference de base — interpretable en sante)
- Random Forest Classifier
- Machine a vecteurs de support
Endpoints API
| Endpoint | Methode | Entree | Sortie |
|---|---|---|---|
/predict | POST | [ age, blood_pressure, cholesterol, glucose, bmi, ... ] | [ risk_level, probability, contributing_factors ] |
/health | GET | — | [ status, timestamp ] |
/model-info | GET | — | [ model, recall, precision, features ] |
Metriques d'evaluation
- Recall (principal — minimiser les faux negatifs est critique en sante)
- Precision
- F1-Score
- AUC-ROC
Focus explicabilite
L'explicabilite est essentielle en sante. Les graphiques de force SHAP et les explications LIME montrent exactement quels facteurs du patient contribuent a l'evaluation du risque. Cela rend votre analyse tres pertinente pour votre presentation.
Dans votre rapport, discutez des implications ethiques du deploiement d'un systeme IA pour l'evaluation du risque medical. Abordez des sujets comme : le biais du modele, l'importance du recall par rapport a la precision, et pourquoi le modele devrait assister (et non remplacer) les professionnels de la sante.
Exemple de requete predict
{
"age": 55,
"sex": 1,
"blood_pressure": 140,
"cholesterol": 250,
"fasting_blood_sugar": 1,
"max_heart_rate": 150,
"exercise_angina": 0
}
Reponse :
{
"risk_level": "High",
"probability": 0.78,
"contributing_factors": ["high cholesterol", "elevated blood pressure", "age"],
"model_version": "1.0.0"
}
7. Recommandeur de films
Predire si un utilisateur aimera un film en fonction de ses preferences.
| Aspect | Details |
|---|---|
| Type | Classification / Recommandation |
| Difficulte | ⭐⭐⭐ Avance |
| Jeu de donnees | MovieLens 100K |
| echantillons | ~100 000 evaluations |
| Caracteristiques | Donnees demographiques utilisateur, genres de films, historique d'evaluations |
| Cible | Prediction de note ou binaire aime/n'aime pas |
Modeles suggeres
- Regression logistique sur caracteristiques construites (reference de base)
- Random Forest sur la matrice de caracteristiques utilisateur-film
- K-Nearest Neighbors (base sur le contenu)
Endpoints API
| Endpoint | Methode | Entree | Sortie |
|---|---|---|---|
/predict | POST | [ user_age, genres: ["Action", "Sci-Fi"], avg_rating ] | [ will_like, confidence, similar_movies ] |
/health | GET | — | [ status, timestamp ] |
/model-info | GET | — | [ model, accuracy, genres_supported ] |
Metriques d'evaluation
- Accuracy
- Precision@K
- F1-Score
- Mean Absolute Error (pour la prediction de notes)
Focus explicabilite
SHAP peut reveler quels genres, donnees demographiques utilisateur ou habitudes de visionnage influencent le plus les recommandations. Les graphiques d'interaction des caracteristiques montrent comment la preference de genre interagit avec l'age ou l'historique de visionnage.
Ce projet necessite un feature engineering significatif — vous devrez creer une matrice de caracteristiques utilisateur-film a partir des donnees d'evaluation brutes. Prevoyez du temps supplementaire pour le pretraitement des donnees.
Exemple de requete predict
{
"user_age": 28,
"preferred_genres": ["Action", "Sci-Fi", "Thriller"],
"average_rating": 3.8,
"movie_genre": "Action",
"movie_year": 2020
}
Reponse :
{
"will_like": true,
"confidence": 0.85,
"predicted_rating": 4.2,
"model_version": "1.0.0"
}
8. Credit scoring
Predire si un demandeur de pret est susceptible de faire defaut.
| Aspect | Details |
|---|---|
| Type | Classification binaire |
| Difficulte | ⭐⭐ Intermediaire |
| Jeu de donnees | German Credit Data ou Give Me Some Credit |
| echantillons | ~1 000 (German) / ~150 000 (Give Me Some Credit) |
| Caracteristiques | Revenu, age, nombre de personnes a charge, historique de credit, montant du pret, etc. |
| Cible | Defaut (Oui / Non) |
Modeles suggeres
- Regression logistique (reference de base — standard en finance)
- Random Forest
- Gradient Boosting (XGBoost)
Endpoints API
| Endpoint | Methode | Entree | Sortie |
|---|---|---|---|
/predict | POST | [ income, age, debt_ratio, credit_lines, loan_amount ] | [ default_risk, probability, risk_category ] |
/health | GET | — | [ status, timestamp ] |
/model-info | GET | — | [ model, auc_roc, features ] |
Metriques d'evaluation
- AUC-ROC (metrique principale en credit scoring)
- Precision / Recall
- F1-Score
- KS Statistic (bonus — standard de l'industrie)
Focus explicabilite
L'explicabilite est legalement requise dans plusieurs juridictions pour les decisions de credit. Les graphiques de force SHAP peuvent expliquer les decisions individuelles de pret, ce qui rend ce projet tres pertinent pour les discussions de conformite reglementaire.
Dans l'UE (RGPD) et au Canada, les individus ont le « droit a l'explication » pour les decisions automatisees. Les modeles de credit scoring doivent etre explicables. Discutez-en dans votre rapport.
Exemple de requete predict
{
"annual_income": 52000,
"age": 35,
"debt_ratio": 0.35,
"number_of_open_credit_lines": 5,
"number_of_dependents": 2,
"months_employed": 48
}
Reponse :
{
"default_risk": "Low",
"default_probability": 0.12,
"risk_category": "A",
"model_version": "1.0.0"
}
9. Predicteur de couts d'assurance
Predire les couts d'assurance medicale individuels en fonction d'attributs personnels.
| Aspect | Details |
|---|---|
| Type | Regression |
| Difficulte | ⭐ Debutant |
| Jeu de donnees | Medical Cost Personal Dataset |
| echantillons | ~1 338 |
| Caracteristiques | age, sexe, IMC, enfants, fumeur, region |
| Cible | Frais d'assurance (continu) |
Modeles suggeres
- Regression lineaire (reference de base)
- Random Forest Regressor
- Gradient Boosting Regressor
Endpoints API
| Endpoint | Methode | Entree | Sortie |
|---|---|---|---|
/predict | POST | [ age, sex, bmi, children, smoker, region ] | [ predicted_cost, model_version ] |
/health | GET | — | [ status, timestamp ] |
/model-info | GET | — | [ model, r2_score, mae ] |
Metriques d'evaluation
- MAE
- RMSE
- R² Score
- MAPE
Focus explicabilite
SHAP montre clairement que le statut de fumeur a un impact massif sur le cout predit. Cela permet une demo excellente et visuellement percutante. Les graphiques en cascade pour les predictions individuelles sont tres intuitifs.
Ce jeu de donnees est petit, propre, necessite un pretraitement minimal et produit des resultats SHAP tres interpretables. Si vous etes nouveau(elle) en ML et preferez la regression, commencez ici.
Exemple de requete predict
{
"age": 32,
"sex": "female",
"bmi": 27.5,
"children": 1,
"smoker": "no",
"region": "northwest"
}
Reponse :
{
"predicted_cost": 5765.30,
"model_version": "1.0.0"
}
10. Predicteur d'attrition d'employes
Predire si un employe est susceptible de quitter l'entreprise.
| Aspect | Details |
|---|---|
| Type | Classification binaire |
| Difficulte | ⭐⭐ Intermediaire |
| Jeu de donnees | IBM HR Analytics Employee Attrition |
| echantillons | ~1 470 |
| Caracteristiques | age, satisfaction au travail, revenu mensuel, heures supplementaires, annees dans l'entreprise, etc. |
| Cible | Attrition (Oui / Non) |
Modeles suggeres
- Regression logistique (reference de base)
- Random Forest Classifier
- Gradient Boosting (XGBoost)
Endpoints API
| Endpoint | Methode | Entree | Sortie |
|---|---|---|---|
/predict | POST | [ age, job_satisfaction, monthly_income, overtime, years_at_company ] | [ attrition_risk, probability, key_factors ] |
/health | GET | — | [ status, timestamp ] |
/model-info | GET | — | [ model, f1_score, features ] |
Metriques d'evaluation
- Accuracy
- F1-Score (important en raison du desequilibre des classes)
- AUC-ROC
- Recall
Focus explicabilite
SHAP revele quels facteurs du milieu de travail conduisent le plus a l'attrition (heures supplementaires, satisfaction, remuneration). Les perspectives pertinentes pour les RH rendent la presentation convaincante.
Exemple de requete predict
{
"age": 30,
"job_satisfaction": 2,
"monthly_income": 3500,
"overtime": "Yes",
"years_at_company": 2,
"distance_from_home": 25,
"work_life_balance": 2
}
Reponse :
{
"attrition_risk": "High",
"attrition_probability": 0.73,
"key_factors": ["low job satisfaction", "overtime", "short tenure"],
"model_version": "1.0.0"
}
Resume de la difficulte des projets
Voir les projets par niveau de difficulte
S'il s'agit de votre premier projet ML de bout en bout, choisissez le Classificateur de spam, le Predicteur de couts d'assurance ou le Predicteur de prix immobilier. Ces jeux de donnees sont propres, petits et bien documentes — vous permettant de vous concentrer sur le pipeline de deploiement plutot que sur le nettoyage des donnees. Si vous voulez un defi, Attrition client ou Credit scoring offrent d'excellents problemes pertinents pour le monde des affaires avec des resultats d'explicabilite interessants.
Puis-je choisir mon propre projet ?
Oui ! Vous pouvez proposer votre propre projet, a condition qu'il respecte ces exigences minimales :
| Exigence | Minimum |
|---|---|
| Taille du jeu de donnees | ≥ 500 echantillons |
| Nombre de caracteristiques | ≥ 5 |
| Type de probleme | Classification ou regression |
| Accessibilite des donnees | Publiquement disponible ou approuve par l'enseignant |
| Explicabilite | LIME et/ou SHAP doit etre applicable |
Soumettez votre proposition de projet personnalise a votre enseignant avant la fin de la semaine 12 pour approbation.