| <!DOCTYPE html> |
| <html lang="fr"> |
| <head> |
| <meta charset="UTF-8"> |
| <title>Cours de Machine Learning - ML Academy</title> |
| <link rel="preconnect" href="https://fonts.googleapis.com"> |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> |
| <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet"> |
| <script> |
| window.MathJax = { |
| tex: { inlineMath: [['$', '$']], displayMath: [['$$', '$$']] }, |
| options: { skipHtmlTags: ['script','noscript','style','textarea','pre'] } |
| }; |
| </script> |
| <script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> |
| <style> |
| |
| * { box-sizing: border-box; margin: 0; padding: 0; } |
| body { margin: 0; padding: 0; font-family: 'Inter', -apple-system, sans-serif; } |
| |
| |
| @page { |
| size: A4; |
| margin: 2.5cm 2cm; |
| @bottom-center { |
| content: "Imad Maalouf — ML Academy"; |
| font-size: 9pt; |
| color: #666; |
| } |
| @bottom-right { |
| content: counter(page); |
| font-size: 9pt; |
| color: #666; |
| } |
| } |
| |
| @page :first { |
| margin: 0; |
| @bottom-center { content: none; } |
| @bottom-right { content: none; } |
| } |
| |
| |
| .cover { |
| width: 210mm; |
| height: 297mm; |
| margin: 0; |
| position: relative; |
| overflow: hidden; |
| page-break-after: always; |
| background: linear-gradient(135deg, #0f0f1a 0%, #1a1a2e 50%, #252542 100%); |
| } |
| |
| .cover-decoration { |
| position: absolute; |
| top: 0; |
| left: 0; |
| right: 0; |
| bottom: 0; |
| overflow: hidden; |
| } |
| |
| .cover-circle { |
| position: absolute; |
| border-radius: 50%; |
| opacity: 0.1; |
| } |
| |
| .cover-circle-1 { |
| width: 400px; |
| height: 400px; |
| background: #6366f1; |
| top: -100px; |
| right: -100px; |
| } |
| |
| .cover-circle-2 { |
| width: 300px; |
| height: 300px; |
| background: #06b6d4; |
| bottom: 10%; |
| left: -80px; |
| } |
| |
| .cover-circle-3 { |
| width: 200px; |
| height: 200px; |
| background: #f59e0b; |
| top: 40%; |
| right: 15%; |
| } |
| |
| .cover-content { |
| position: absolute; |
| top: 50%; |
| left: 50%; |
| transform: translate(-50%, -50%); |
| text-align: center; |
| width: 80%; |
| z-index: 1; |
| } |
| |
| .cover-badge { |
| display: inline-block; |
| padding: 8px 16px; |
| background: rgba(99, 102, 241, 0.2); |
| border: 1px solid rgba(99, 102, 241, 0.4); |
| border-radius: 20px; |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 10pt; |
| color: #818cf8; |
| text-transform: uppercase; |
| letter-spacing: 2px; |
| margin-bottom: 30px; |
| } |
| |
| .cover-title { |
| font-size: 36pt; |
| font-weight: 700; |
| color: #f8fafc; |
| margin-bottom: 15px; |
| line-height: 1.2; |
| } |
| |
| .cover-subtitle { |
| font-size: 14pt; |
| color: #94a3b8; |
| margin-bottom: 60px; |
| } |
| |
| .cover-author { |
| font-size: 12pt; |
| color: #818cf8; |
| margin-bottom: 10px; |
| } |
| |
| .cover-info { |
| font-size: 10pt; |
| color: #64748b; |
| } |
| |
| |
| .content { |
| padding: 0; |
| } |
| |
| h1 { |
| font-size: 20pt; |
| font-weight: 700; |
| color: #1a1a2e; |
| margin: 30pt 0 15pt 0; |
| padding-bottom: 8pt; |
| border-bottom: 2px solid #6366f1; |
| page-break-after: avoid; |
| } |
| |
| h2 { |
| font-size: 14pt; |
| font-weight: 600; |
| color: #1a1a2e; |
| margin: 20pt 0 10pt 0; |
| page-break-after: avoid; |
| } |
| |
| h3 { |
| font-size: 12pt; |
| font-weight: 600; |
| color: #333; |
| margin: 15pt 0 8pt 0; |
| page-break-after: avoid; |
| } |
| |
| p { |
| font-size: 11pt; |
| line-height: 1.7; |
| color: #333; |
| margin-bottom: 10pt; |
| text-align: justify; |
| text-align-last: left; |
| } |
| |
| strong { |
| font-weight: 600; |
| color: #1a1a2e; |
| } |
| |
| em { |
| font-style: italic; |
| color: #444; |
| } |
| |
| |
| .info-box { |
| background: #f8f9fa; |
| border-left: 4px solid #6366f1; |
| padding: 12pt 15pt; |
| margin: 15pt 0; |
| page-break-inside: avoid; |
| } |
| |
| .info-box-title { |
| font-weight: 600; |
| color: #6366f1; |
| margin-bottom: 5pt; |
| font-size: 10pt; |
| } |
| |
| .info-box p { |
| margin: 0; |
| font-size: 10pt; |
| } |
| |
| |
| .equation-block { |
| background: #f8f9fa; |
| border: 1px solid #e2e8f0; |
| border-left: 3px solid #6366f1; |
| border-radius: 4px; |
| padding: 15pt; |
| margin: 15pt 0; |
| text-align: center; |
| page-break-inside: avoid; |
| } |
| |
| .equation-label { |
| display: block; |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 8pt; |
| color: #64748b; |
| text-align: right; |
| margin-top: 8pt; |
| } |
| |
| |
| .cards-grid { |
| display: grid; |
| grid-template-columns: repeat(3, 1fr); |
| gap: 12pt; |
| margin: 15pt 0; |
| } |
| |
| .card { |
| background: #f8f9fa; |
| border: 1px solid #e2e8f0; |
| border-radius: 6px; |
| padding: 12pt; |
| page-break-inside: avoid; |
| } |
| |
| .card-icon { |
| width: 32px; |
| height: 32px; |
| background: linear-gradient(135deg, #6366f1, #06b6d4); |
| border-radius: 6px; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| font-size: 12pt; |
| font-weight: 700; |
| color: white; |
| margin-bottom: 8pt; |
| } |
| |
| .card-title { |
| font-size: 10pt; |
| font-weight: 600; |
| color: #1a1a2e; |
| margin-bottom: 5pt; |
| } |
| |
| .card-text { |
| font-size: 9pt; |
| color: #555; |
| line-height: 1.5; |
| } |
| |
| |
| .pipeline { |
| display: flex; |
| gap: 8pt; |
| margin: 15pt 0; |
| padding: 12pt; |
| background: #f8f9fa; |
| border: 1px solid #e2e8f0; |
| border-radius: 6px; |
| } |
| |
| .pipeline-step { |
| flex: 1; |
| text-align: center; |
| position: relative; |
| } |
| |
| .pipeline-step:not(:last-child)::after { |
| content: '->'; |
| position: absolute; |
| right: -10pt; |
| top: 50%; |
| transform: translateY(-50%); |
| color: #6366f1; |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 10pt; |
| } |
| |
| .pipeline-num { |
| width: 24pt; |
| height: 24pt; |
| background: linear-gradient(135deg, #6366f1, #06b6d4); |
| border-radius: 50%; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 9pt; |
| font-weight: 700; |
| color: white; |
| margin: 0 auto 5pt; |
| } |
| |
| .pipeline-label { |
| font-size: 8pt; |
| font-weight: 600; |
| color: #1a1a2e; |
| } |
| |
| .pipeline-desc { |
| font-size: 7pt; |
| color: #64748b; |
| } |
| |
| |
| .comparison-grid { |
| display: grid; |
| grid-template-columns: 1fr 1fr; |
| gap: 12pt; |
| margin: 15pt 0; |
| } |
| |
| .comparison-box { |
| background: #f8f9fa; |
| border: 1px solid #e2e8f0; |
| border-radius: 6px; |
| padding: 12pt; |
| page-break-inside: avoid; |
| } |
| |
| .comparison-box h4 { |
| font-size: 10pt; |
| font-weight: 600; |
| color: #1a1a2e; |
| margin-bottom: 8pt; |
| padding-bottom: 5pt; |
| border-bottom: 1px solid #e2e8f0; |
| } |
| |
| .comparison-box ul { |
| list-style: none; |
| padding: 0; |
| margin: 0; |
| } |
| |
| .comparison-box li { |
| padding: 3pt 0; |
| font-size: 9pt; |
| color: #444; |
| } |
| |
| .comparison-box li::before { |
| content: '>'; |
| color: #6366f1; |
| margin-right: 6pt; |
| font-family: 'JetBrains Mono', monospace; |
| } |
| |
| |
| .metric-row { |
| display: grid; |
| grid-template-columns: repeat(3, 1fr); |
| gap: 12pt; |
| margin: 15pt 0; |
| } |
| |
| .metric-card { |
| background: #f8f9fa; |
| border: 1px solid #e2e8f0; |
| border-radius: 6px; |
| padding: 12pt; |
| text-align: center; |
| page-break-inside: avoid; |
| } |
| |
| .metric-name { |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 7pt; |
| color: #64748b; |
| text-transform: uppercase; |
| letter-spacing: 1px; |
| margin-bottom: 5pt; |
| } |
| |
| .metric-formula { |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 9pt; |
| color: #6366f1; |
| font-weight: 600; |
| margin-bottom: 3pt; |
| } |
| |
| .metric-desc { |
| font-size: 7pt; |
| color: #64748b; |
| } |
| |
| |
| table { |
| width: 100%; |
| border-collapse: collapse; |
| margin: 15pt 0; |
| font-size: 9pt; |
| page-break-inside: avoid; |
| } |
| |
| thead { |
| display: table-header-group; |
| } |
| |
| th { |
| background: #f1f5f9; |
| color: #475569; |
| font-family: 'JetBrains Mono', monospace; |
| font-size: 8pt; |
| font-weight: 600; |
| text-transform: uppercase; |
| letter-spacing: 0.5px; |
| padding: 8pt 10pt; |
| text-align: left; |
| border-top: 2px solid #333; |
| border-bottom: 1px solid #333; |
| } |
| |
| td { |
| padding: 8pt 10pt; |
| border-bottom: 1px solid #e2e8f0; |
| color: #333; |
| } |
| |
| tbody tr:last-child td { |
| border-bottom: 2px solid #333; |
| } |
| |
| |
| .page-break { |
| page-break-after: always; |
| } |
| |
| |
| pre, table, figure, img, svg, blockquote { |
| max-width: 100%; |
| box-sizing: border-box; |
| } |
| |
| a { word-break: break-all; } |
| |
| |
| .author-footer { |
| margin-top: 30pt; |
| padding-top: 15pt; |
| border-top: 1px solid #e2e8f0; |
| text-align: center; |
| } |
| |
| .author-name { |
| font-size: 10pt; |
| font-weight: 600; |
| color: #6366f1; |
| } |
| |
| .author-contact { |
| font-size: 8pt; |
| color: #64748b; |
| margin-top: 3pt; |
| } |
| </style> |
| </head> |
| <body> |
| |
| <div class="cover"> |
| <div class="cover-decoration"> |
| <div class="cover-circle cover-circle-1"></div> |
| <div class="cover-circle cover-circle-2"></div> |
| <div class="cover-circle cover-circle-3"></div> |
| </div> |
| <div class="cover-content"> |
| <div class="cover-badge">Formation 2025/2026</div> |
| <h1 class="cover-title">Cours de<br>Machine Learning</h1> |
| <p class="cover-subtitle">De la theorie a la pratique — Algorithmes fondamentaux et techniques avancees</p> |
| <p class="cover-author">Formateur : Imad Maalouf</p> |
| <p class="cover-info">ML Academy — GE-MCI 4A</p> |
| </div> |
| </div> |
|
|
| |
| <div class="content"> |
| <h1>1. Introduction au Machine Learning</h1> |
| |
| <p> |
| Le <strong>Machine Learning (ML)</strong> est une branche de l'intelligence artificielle |
| qui permet aux machines d'apprendre a partir de donnees <em>sans etre explicitement programmees</em> |
| pour chaque tache. Au lieu de coder des regles a la main, on montre des exemples au modele |
| et il decouvre lui-meme les patterns. |
| </p> |
|
|
| <div class="info-box"> |
| <div class="info-box-title">Idee fondamentale</div> |
| <p> |
| On cherche a approximer une fonction inconnue $f$ telle que $\hat{y} = f(x_1, x_2, \ldots, x_n)$. |
| Le modele ML apprend cette fonction a partir d'exemples $(x, y)$ connus. |
| </p> |
| </div> |
|
|
| <h2>1.1 Types d'apprentissage</h2> |
|
|
| <div class="cards-grid"> |
| <div class="card"> |
| <div class="card-icon">S</div> |
| <div class="card-title">Supervise</div> |
| <div class="card-text">Donnees labellisees $(x, y)$ : regression et classification.</div> |
| </div> |
| <div class="card"> |
| <div class="card-icon">N</div> |
| <div class="card-title">Non supervise</div> |
| <div class="card-text">Pas de labels : clustering, reduction de dimension.</div> |
| </div> |
| <div class="card"> |
| <div class="card-icon">R</div> |
| <div class="card-title">Par renforcement</div> |
| <div class="card-text">Agent apprend via actions-recompenses.</div> |
| </div> |
| </div> |
|
|
| <h2>1.2 Pipeline ML typique</h2> |
|
|
| <div class="pipeline"> |
| <div class="pipeline-step"> |
| <div class="pipeline-num">1</div> |
| <div class="pipeline-label">Donnees</div> |
| <div class="pipeline-desc">Collecte & nettoyage</div> |
| </div> |
| <div class="pipeline-step"> |
| <div class="pipeline-num">2</div> |
| <div class="pipeline-label">Features</div> |
| <div class="pipeline-desc">Engineering</div> |
| </div> |
| <div class="pipeline-step"> |
| <div class="pipeline-num">3</div> |
| <div class="pipeline-label">Split</div> |
| <div class="pipeline-desc">Train / Test</div> |
| </div> |
| <div class="pipeline-step"> |
| <div class="pipeline-num">4</div> |
| <div class="pipeline-label">Modele</div> |
| <div class="pipeline-desc">Entrainement</div> |
| </div> |
| <div class="pipeline-step"> |
| <div class="pipeline-num">5</div> |
| <div class="pipeline-label">Evaluation</div> |
| <div class="pipeline-desc">Metriques</div> |
| </div> |
| <div class="pipeline-step"> |
| <div class="pipeline-num">6</div> |
| <div class="pipeline-label">Production</div> |
| <div class="pipeline-desc">Deploiement</div> |
| </div> |
| </div> |
|
|
| <div class="page-break"></div> |
|
|
| <h1>2. Regression Lineaire</h1> |
| |
| <p> |
| La <strong>regression lineaire</strong> modelise la relation entre les features et la cible |
| par une fonction affine. C'est l'algorithme le plus simple mais souvent tres efficace |
| comme baseline. |
| </p> |
|
|
| <div class="equation-block"> |
| $$\hat{y} = w_0 + w_1 x_1 + w_2 x_2 + \cdots + w_n x_n = \mathbf{w}^T \mathbf{x}$$ |
| <span class="equation-label">Modele lineaire avec coefficients $\mathbf{w}$</span> |
| </div> |
|
|
| <p> |
| L'objectif est de minimiser l'erreur quadratique moyenne (MSE) : |
| </p> |
|
|
| <div class="equation-block"> |
| $$\text{MSE} = \frac{1}{m} \sum_{i=1}^{m} (y_i - \hat{y}_i)^2$$ |
| <span class="equation-label">Fonction de cout : moyenne des erreurs quadratiques</span> |
| </div> |
|
|
| <div class="info-box"> |
| <div class="info-box-title">Solution analytique</div> |
| <p> |
| La regression lineaire admet une solution fermee : |
| $\mathbf{w}^* = (X^T X)^{-1} X^T Y$. Pas besoin d'iterations ! |
| </p> |
| </div> |
|
|
| <h2>2.1 Avantages et limitations</h2> |
|
|
| <div class="comparison-grid"> |
| <div class="comparison-box"> |
| <h4>[+] Avantages</h4> |
| <ul> |
| <li>Tres rapide a entrainer</li> |
| <li>Interpretable (coefficients)</li> |
| <li>Pas d'hyperparametres</li> |
| <li>Excellent baseline</li> |
| </ul> |
| </div> |
| <div class="comparison-box"> |
| <h4>[-] Limitations</h4> |
| <ul> |
| <li>Relation lineaire uniquement</li> |
| <li>Sensible aux outliers</li> |
| <li>Performance decroit en haute dimension</li> |
| </ul> |
| </div> |
| </div> |
|
|
| <div class="page-break"></div> |
|
|
| <h1>3. Regression Logistique</h1> |
| |
| <p> |
| Malgre son nom, la <strong>regression logistique</strong> est un algorithme de <em>classification</em>. |
| Elle predit la probabilite d'appartenance a une classe en utilisant la fonction sigmoide. |
| </p> |
|
|
| <div class="equation-block"> |
| $$P(y=1|\mathbf{x}) = \sigma(\mathbf{w}^T \mathbf{x}) = \frac{1}{1 + e^{-\mathbf{w}^T \mathbf{x}}}$$ |
| <span class="equation-label">Fonction sigmoide pour la classification binaire</span> |
| </div> |
|
|
| <div class="info-box"> |
| <div class="info-box-title">Cas d'usage : Dataset Titanic</div> |
| <p> |
| Predire la survie des passagers du Titanic a partir de leur age, sexe, |
| classe de billet, etc. Un classique du ML pour debuter ! |
| </p> |
| </div> |
|
|
| <div class="page-break"></div> |
|
|
| <h1>4. Random Forest</h1> |
| |
| <p> |
| <strong>Random Forest</strong> est un ensemble d'arbres de decision qui votent pour predire. |
| C'est l'un des algorithmes les plus populaires en ML applique : performant, robuste, |
| peu sensible au tuning. |
| </p> |
|
|
| <h2>4.1 Algorithme : Bagging + Random Splits</h2> |
|
|
| <div class="pipeline"> |
| <div class="pipeline-step"> |
| <div class="pipeline-num">1</div> |
| <div class="pipeline-label">Bootstrap</div> |
| <div class="pipeline-desc">Echantillons aleatoires</div> |
| </div> |
| <div class="pipeline-step"> |
| <div class="pipeline-num">2</div> |
| <div class="pipeline-label">Splits</div> |
| <div class="pipeline-desc">Features aleatoires</div> |
| </div> |
| <div class="pipeline-step"> |
| <div class="pipeline-num">3</div> |
| <div class="pipeline-label">Arbres</div> |
| <div class="pipeline-desc">N arbres independants</div> |
| </div> |
| <div class="pipeline-step"> |
| <div class="pipeline-num">4</div> |
| <div class="pipeline-label">Vote</div> |
| <div class="pipeline-desc">Moyenne ou mode</div> |
| </div> |
| </div> |
|
|
| <h2>4.2 Hyperparametres cles</h2> |
|
|
| <div class="metric-row"> |
| <div class="metric-card"> |
| <div class="metric-name">n_estimators</div> |
| <div class="metric-formula">100 - 500</div> |
| <div class="metric-desc">Nombre d'arbres</div> |
| </div> |
| <div class="metric-card"> |
| <div class="metric-name">max_depth</div> |
| <div class="metric-formula">10 - 30</div> |
| <div class="metric-desc">Profondeur max</div> |
| </div> |
| <div class="metric-card"> |
| <div class="metric-name">min_samples_split</div> |
| <div class="metric-formula">2 - 10</div> |
| <div class="metric-desc">Min pour splitter</div> |
| </div> |
| </div> |
|
|
| <div class="info-box"> |
| <div class="info-box-title">Feature Importance</div> |
| <p> |
| Random Forest fournit automatiquement l'importance de chaque feature, |
| ce qui aide a comprendre quelles variables influencent le plus les predictions. |
| </p> |
| </div> |
|
|
| <div class="page-break"></div> |
|
|
| <h1>5. Reseaux de Neurones</h1> |
| |
| <p> |
| Les <strong>reseaux de neurones</strong> sont inspires du cerveau humain : des couches de neurones |
| interconnectes executent des transformations non-lineaires. Ils excellent pour les patterns complexes. |
| </p> |
|
|
| <h2>5.1 Fonctionnement : Forward + Backprop</h2> |
|
|
| <div class="cards-grid"> |
| <div class="card"> |
| <div class="card-icon">F</div> |
| <div class="card-title">Forward Pass</div> |
| <div class="card-text">Donnees traversent les couches : $\mathbf{h}_1 = \sigma(W_1 \mathbf{x} + b_1)$</div> |
| </div> |
| <div class="card"> |
| <div class="card-icon">L</div> |
| <div class="card-title">Loss Computation</div> |
| <div class="card-text">Compare prediction vs realite : $L = \frac{1}{m} \sum (y - \hat{y})^2$</div> |
| </div> |
| <div class="card"> |
| <div class="card-icon">B</div> |
| <div class="card-title">Backpropagation</div> |
| <div class="card-text">Calcule les gradients via la chaine de derivation</div> |
| </div> |
| </div> |
|
|
| <h2>5.2 Fonctions d'activation</h2> |
|
|
| <div class="metric-row"> |
| <div class="metric-card"> |
| <div class="metric-name">ReLU</div> |
| <div class="metric-formula">$f(x) = \max(0, x)$</div> |
| <div class="metric-desc">Couches cachees</div> |
| </div> |
| <div class="metric-card"> |
| <div class="metric-name">Sigmoid</div> |
| <div class="metric-formula">$f(x) = \frac{1}{1 + e^{-x}}$</div> |
| <div class="metric-desc">Classification binaire</div> |
| </div> |
| <div class="metric-card"> |
| <div class="metric-name">Softmax</div> |
| <div class="metric-formula">$f(x_i) = \frac{e^{x_i}}{\sum_j e^{x_j}}$</div> |
| <div class="metric-desc">Classification multi-classe</div> |
| </div> |
| </div> |
|
|
| <div class="page-break"></div> |
|
|
| <h1>6. LSTM et Series Temporelles</h1> |
| |
| <p> |
| <strong>LSTM (Long Short-Term Memory)</strong> est un type de reseau neuronal pour series temporelles. |
| Il peut "retenir" l'information sur de longues periodes — crucial pour les predictions temporelles. |
| </p> |
|
|
| <div class="info-box"> |
| <div class="info-box-title">Probleme des RNN vanilla</div> |
| <p> |
| Les gradients disparaissent (vanishing) ou explosent (exploding) sur de longues sequences. |
| Le LSTM resout ce probleme avec son <strong>cell state</strong>. |
| </p> |
| </div> |
|
|
| <h2>6.1 Les trois portes du LSTM</h2> |
|
|
| <div class="metric-row"> |
| <div class="metric-card"> |
| <div class="metric-name">Forget Gate</div> |
| <div class="metric-formula">$f_t = \sigma(W_f [h_{t-1}, x_t] + b_f)$</div> |
| <div class="metric-desc">Quoi oublier ?</div> |
| </div> |
| <div class="metric-card"> |
| <div class="metric-name">Input Gate</div> |
| <div class="metric-formula">$i_t = \sigma(W_i [h_{t-1}, x_t] + b_i)$</div> |
| <div class="metric-desc">Quoi ajouter ?</div> |
| </div> |
| <div class="metric-card"> |
| <div class="metric-name">Output Gate</div> |
| <div class="metric-formula">$o_t = \sigma(W_o [h_{t-1}, x_t] + b_o)$</div> |
| <div class="metric-desc">Quoi exposer ?</div> |
| </div> |
| </div> |
|
|
| <div class="info-box"> |
| <div class="info-box-title">Cas d'usage</div> |
| <p> |
| Prediction de prix boursiers, meteo, consommation energetique, |
| traitement du langage naturel (NLP)... |
| </p> |
| </div> |
|
|
| <div class="page-break"></div> |
|
|
| <h1>7. Metriques de Performance</h1> |
| |
| <p> |
| Evaluer correctement un modele est crucial. Les bonnes metriques dependent du type de probleme |
| (regression vs classification) et des objectifs metier. |
| </p> |
|
|
| <h2>7.1 Regression</h2> |
|
|
| <div class="metric-row"> |
| <div class="metric-card"> |
| <div class="metric-name">MAE</div> |
| <div class="metric-formula">$\frac{1}{n}\sum|y_i - \hat{y}_i|$</div> |
| <div class="metric-desc">Robuste aux outliers</div> |
| </div> |
| <div class="metric-card"> |
| <div class="metric-name">RMSE</div> |
| <div class="metric-formula">$\sqrt{\frac{1}{n}\sum(y_i - \hat{y}_i)^2}$</div> |
| <div class="metric-desc">Penalise les grandes erreurs</div> |
| </div> |
| <div class="metric-card"> |
| <div class="metric-name">R2</div> |
| <div class="metric-formula">$1 - \frac{SS_{res}}{SS_{tot}}$</div> |
| <div class="metric-desc">% variance expliquee</div> |
| </div> |
| </div> |
|
|
| <h2>7.2 Classification</h2> |
|
|
| <table> |
| <thead> |
| <tr> |
| <th>Metrique</th> |
| <th>Formule</th> |
| <th>Usage</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td><strong>Accuracy</strong></td> |
| <td>$(TP + TN) / Total$</td> |
| <td>Classes equilibrees</td> |
| </tr> |
| <tr> |
| <td><strong>Precision</strong></td> |
| <td>$TP / (TP + FP)$</td> |
| <td>Minimiser faux positifs</td> |
| </tr> |
| <tr> |
| <td><strong>Recall</strong></td> |
| <td>$TP / (TP + FN)$</td> |
| <td>Minimiser faux negatifs</td> |
| </tr> |
| <tr> |
| <td><strong>F1-Score</strong></td> |
| <td>$2 \cdot \frac{P \cdot R}{P + R}$</td> |
| <td>Classes desequilibrees</td> |
| </tr> |
| </tbody> |
| </table> |
|
|
| <div class="page-break"></div> |
|
|
| <h1>8. Optimisation et Regularisation</h1> |
| |
| <p> |
| Pour eviter le <strong>surapprentissage (overfitting)</strong> et ameliorer la generalisation, |
| plusieurs techniques existent. |
| </p> |
|
|
| <div class="cards-grid"> |
| <div class="card"> |
| <div class="card-icon">D</div> |
| <div class="card-title">Dropout</div> |
| <div class="card-text">Desactive aleatoirement des neurones pendant l'entrainement.</div> |
| </div> |
| <div class="card"> |
| <div class="card-icon">E</div> |
| <div class="card-title">Early Stopping</div> |
| <div class="card-text">Arrete l'entrainement quand la validation stagne.</div> |
| </div> |
| <div class="card"> |
| <div class="card-icon">L</div> |
| <div class="card-title">L2 Regularization</div> |
| <div class="card-text">Penalise les grands poids : $L_{total} = L_{data} + \lambda \sum w^2$</div> |
| </div> |
| </div> |
|
|
| <div class="info-box"> |
| <div class="info-box-title">Regle d'or</div> |
| <p> |
| Toujours comparer les metriques sur <strong>train</strong> ET <strong>test</strong>. |
| Un grand ecart = overfitting. Objectif : R2 train ≈ R2 test. |
| </p> |
| </div> |
|
|
| <div class="author-footer"> |
| <div class="author-name">Imad Maalouf</div> |
| <div class="author-contact"> |
| imadmaalouf02@gmail.com | github.com/imadmaalouf02 | huggingface.co/spaces/MAALOOUF/ML_Training |
| </div> |
| </div> |
| </div> |
| </body> |
| </html> |
|
|