Programmation pour l’IA
Florent Capelli
Université d’Artois, CRIL
Données : texte.
Données : images.
Données : liste de points.
| Âge | Métier | Revenus | Crédit initial | Taux | Durée | Accorder un crédit ? |
|---|---|---|---|---|---|---|
| 32 | Agent immobilier | 45k€ | 100k€ | 2.5% | 15 | non |
| 45 | Enseignant | 30k€ | 150k€ | 1.5% | 15 | oui |
| 52 | Électricien | 40k€ | 100k€ | 2.5% | 25 | oui |
Données : table.
On veut classer des objets \(o \in \mathcal{O}\) dans des classes \(\mathcal{C}= \{c_1,\dots,c_k\}\).
Par défaut : on cherche à associer chaque objet \(o\) à une unique classe \(f(o) = c_i\).
On suppose donc l’existence (théorique) des distributions de probabilité suivantes :
On note \(P(c | o) = P(o,c)/P(o)\) la probabilité de classer l’objet \(o\) dans la classe \(c\). Comment définir \(f(o)\) qui classe “idéalement” ?
La règle de Bayes semble être la plus raisonnable (on verra que c’est le cas).
Nous n’accédons qu’à une représentation \(r(o)\) des objets \(o \in \mathcal{O}\) à classer.
On a une erreur incompressible due au choix de la représentation. Deux objets peuvent avoir la même représentation mais pas la même classe :
| Âge | Métier | Revenus | Crédit initial | Taux | Durée | A remboursé son crédit ? |
|---|---|---|---|---|---|---|
| 32 | Agent immobilier | 45k€ | 100k€ | 2.5% | 15 | oui |
| 32 | Agent immobilier | 45k€ | 100k€ | 2.5% | 15 | non |
{"couleur": "jaune", "poids": "200g", "taille": "17cm"}
{"couleur": "vert", "poids": "750g", "taille": "20cm"}
Quelle est la meilleure question ?
On note \(D_c \subseteq D\) est l’ensemble des exemples de classe \(c \in C\):
Dans le cas où on a juste deux classes:
Si \(F\) est une fonction de mélange et Q une question séparant l’ensemble de données en \(D^Q_0\) (où \(Q\) est fausse) et \(D^Q_1\) (où \(Q\) est vraie) alors le gain est :
\[gain(D,Q) = F(D) - (|D^Q_0|/|D|) F(D^Q_0) - (|D^Q_1|/|D|) F(D^Q_1)\]
\(gini(D) = 1/2\)
| x | y | classe |
|---|---|---|
| 1 | 6 | oui |
| 1 | 4 | non |
| 2 | 5 | oui |
| 4 | 8 | non |
| 6 | 5 | oui |
| 7 | 2 | non |
Question: \(x < 4\).
Question: \(y< 5\).
\(Q_2\) a un meilleur gain que \(Q_1\), on la choisit.
On fait une récursion sur chaque enfant :
Comment classifier ?
On a une représentation \(x=r(o)\) de nos objects et on cherche une fonction \(f\) telle que \(f(x)\) est la classe la plus probable de \(o\). Comment implémenter \(f\)?
Classification des plantes :
On utilise une connaissance experte.
$1-classifier (voir TP1): hard-code une heuristique suffisamment performante.
On apprend un modèle permettant à partir d’exemples :