[PYTHON] Raccord Bayes

Vérification de l'exactitude de la régression linéaire bayésienne

introduction

J'ai étudié la régression linéaire bayésienne à PRML.

La régression linéaire ordinaire surapprend en choisissant des paramètres complexes

Il est difficile d'ajuster les paramètres si vous incluez le terme de régularisation ...

Donc régression linéaire bayésienne! !!

Il semble que même si le modèle est compliqué, il ne se surapprendra pas ...

Vraiment? ??

Expérimentez là-bas! !!

Conditions expérimentales

Courbe idéale (verte): fonction sin, échantillonnage avec bruit ajouté

Régression linéaire bayésienne (rouge): alpha = 0,005, bêta = 10,0

Régression linéaire (bleu)

Régression linéaire + régularisation L2: λ = 0,001

Il existe deux modèles de fonctions de base [1, x, x ^ 2, x ^ 3] et [1, x, x ^ 2,…, x ^ 20](M = 3 et M = 20).

Le code est donné ci-dessous. https://github.com/kenchin110100/machine_learning/blob/master/sampleBAYES.py

résultat

Fonction de base M = 3

Premièrement, avec la fonction de base M = 3 et le nombre d'échantillons de données de 10. m3sample10.png

Ensuite, avec 100 échantillons m3sample100.png

Si la fonction de base M = 3, il n'y a pas beaucoup de différence ...

Fonction de base M = 20

Si la fonction de base M = 20 et le modèle est compliqué ...

Tout d'abord, le nombre d'échantillons est de 10 m20sample10.png

Ensuite, le nombre d'échantillons est de 100 m20sample100.png

Oh ~~ (La régularisation est assez ...)

Conclusion

Certes, la différence est évidente lorsqu'elle est appliquée à des modèles complexes! !!

Considérant que vous devez définir des paramètres pour la régularisation L2,

M. Bayes.

Recommended Posts

Raccord Bayes
Mise à jour Bayes
Raccord gaussien