réponses à vos questions:
1 - C'est un algorithme perceptron binaire, travaillant sur un lot hors ligne.
2 - comme vous l'avez écrit - Y est le vecteur des étiquettes. chaque étiquette peut être soit 1 soit -1.
3 - La raison du test si y * a < = 0 est de vérifier si le perceptron a correctement classé un échantillon. Sinon - les poids du perceptron sont modifiés.
Un peu plus sur la 3ème question
L'idée derrière l'algorithme perceptron est la suivante:
a. nous itérons sur les échantillons MaxIter fois.
b. Le perceptron classe chaque échantillon en le multipliant avec le vecteur de poids W et en ajoutant un biais b. Le résultat est affecté à la variable a.
c. La prédiction pour chaque échantillon peut être 1 ou -1. Il est calculé par le signe (a). A ce stade, nous vérifions l'exactitude de la classification.
si y * a> 0 cela signifie que y = signe (a). En d'autres termes, la classification prédite est correcte, et nous passons à l'échantillon suivant.
Si toutefois y * a < = 0, cela signifie que le perceptron n'a pas pu prédire l'étiquette correcte. Dans ce cas, l'algorithme modifie les poids du perceptron de manière à ce qu'ils soient plus compatibles avec l'échantillon que nous n'avons pas réussi à classer.
Vous continuez d'étendre la portée de la question, rendant obsolètes les anciennes réponses. Ne pas dire que ce n'est pas autorisé, mais vous feriez mieux de poser plusieurs questions. Par exemple, votre quatrième question, que vous avez ajoutée un peu après avoir posté une réponse, pourrait être une question autonome. – ilim
Cette question appartient à http://stats.stackexchange.com/ aka cross validated. – Oleg
Ne pas vandaliser votre message. – excaza