L'algorithme OLS [2,3,11] transforme chaque exemple d'un jeu de données en une règle floue et sélectionne ensuite les plus importantes d'entre elles au sens des moindres carrés, par régression linéaire et orthogonalisation de Gram-Schmidt. Une fois la sélection faite, un deuxième passage de l'algorithme est réalisé au cours duquel les conclusions des règles sont optimisées au sens des moindres carrés.
Notre implémentation est motivée et décrite en détail dans [5].
Comme pour toutes les méthodes d'apprentissage de Fispro, la démarche est découpée en deux étapes distinctes : la génération des partitions si nécessaire, puis celle des règles.
Génération des partitions
La première étape consiste en la génération des partitions si aucun SIF n'est ouvert. Dans ce cas, les partitions sont générées à partir des données. L'interface propose la génération de partitions floues fortes (comme dans l'option du menu SIF“Générer un SIF sans règle”, section 1.6)).
Elle propose également l'algorithme OLS original. Il consiste à générer une fonction d'appartenance gaussienne pour chaque valeur de la distribution, ce nombre est ensuite limité à MAX_MF (999 actuellement) par regroupement. Dans ce cas, les partitions générées ne sont pas des partitions floues fortes.
Si un fichier SIF est ouvert, les partitions des entrées sont conservées.
Le seconde étape est celle de la sélection des règles (phase 1), puis de l'optimisation de leurs conclusions (phase 2). L'algorithme travaille en fonction d'une sortie (Défaut : la première sortie, ou la dernière colonne du fichier de données). Le nombre de règles sélectionnées au cours de la phase 1 est paramétré par deux critères concomitants :
L'algorithme s'arrête dès que l'un de ces deux critères est satisfait. Avec les valeurs par défaut, c'est en général le premier qui est d'abord satisfait.
La phase 2 de l'algorithme OLS optimise suivant le critère des moindres carrés les conclusions des règles sélectionnées. Dans le cas où un SIF est ouvert, une option permet de conserver les règles existantes. Dans ce cas, seule la phase d'optimisation est appliquée.
L'optimisation, qui n'affecte ni les partitions ni les prémisses des règles, mais seulement les conclusions de celles-ci, est également disponible depuis le menu Générer conclusions, section 1.8.
Réduction du vocabulaire de sortie
Enfin, comme les valeurs des conclusions des règles sont distinctes les unes des autres (il y en a autant que de règles !), cette option permet de réduire leur nombre. Il faut tout d'abord indiquer à partir de quelles valeurs la réduction doit s'opérer. Deux choix sont possibles : soit les conclusions des règles existantes, soit les valeurs de la variable de sortie dans le fichier de données. L'utilisateur peut fixer le nombre de valeurs désiré ou bien spécifier une perte de performance tolérée. En effet, cette réduction s'accompagne en général d'une perte de précision. Lorsque le vocabulaire a été réduit, il est possible de “fuzzifier” la sortie, c'est à dire construire une partition floue forte à partir des valeurs en nombre réduit.
L'option “Réduction du vocabulaire de sortie” est également disponible depuis le menu “Générer Conclusions”.