Dans le livre de Bishop sur l'apprentissage automatique, il traite du problème de l'ajustement d'une courbe d'une fonction polynomiale à un ensemble de points de données.
Soit M l'ordre du polynôme ajusté. Il déclare que
Nous voyons qu'à mesure que M augmente, l'amplitude des coefficients augmente généralement. En particulier pour le polynôme M = 9, les coefficients sont devenus finement ajustés aux données en développant de grandes valeurs positives et négatives de sorte que la fonction polynomiale correspondante correspond exactement à chacun des points de données, mais entre les points de données (en particulier près des extrémités des gamme) la fonction présente les grandes oscillations.
Je ne comprends pas pourquoi de grandes valeurs impliquent de mieux ajuster les points de données. Je pense que les valeurs deviendraient plus précises après la décimale pour un meilleur ajustement.
la source
Réponses:
Il s'agit d'un problème bien connu avec les polynômes d'ordre élevé, connu sous le nom de phénomène de Runge . Numériquement, il est associé à un mauvais conditionnement de la matrice de Vandermonde , ce qui rend les coefficients très sensibles aux petites variations des données et / ou à l'arrondi des calculs (ie le modèle n'est pas identifiable de manière stable ). Voir aussi cette réponse sur le SciComp SE.
Il existe de nombreuses solutions à ce problème, par exemple l' approximation de Tchebychev , le lissage des splines et la régularisation de Tikhonov . La régularisation de Tikhonov est une généralisation de la régression des crêtes , pénalisant une norme du vecteur de coefficient θ , où pour lisser la matrice de poids Λ est un opérateur dérivé. Pour pénaliser les oscillations, vous pouvez utiliser Λ θ = p ′ ′ [ x ] , où p [ x ]| | Λθ] | | θ Λ Λ θ = p′ ′[ x ] p [ x ] est le polynôme évalué au niveau des données.
EDIT: La réponse de l'utilisateur hxd1011 note que certains des problèmes de mauvais conditionnement numérique peuvent être résolus en utilisant des polynômes orthogonaux, ce qui est un bon point. Je voudrais cependant noter que les problèmes d'identification des polynômes d'ordre élevé demeurent. Autrement dit, le mauvais conditionnement numérique est associé à la sensibilité aux perturbations "infinitésimales" (par exemple arrondi), tandis que le mauvais conditionnement "statistique" concerne la sensibilité aux perturbations "finies" (par exemple les valeurs aberrantes; le problème inverse est mal posé ).
Les méthodes mentionnées dans mon deuxième paragraphe concernent cette sensibilité aberrante . Vous pouvez considérer cette sensibilité comme une violation du modèle de régression linéaire standard, qui en utilisant une inadéquation suppose implicitement que les données sont gaussiennes. Splines et régularisation de Tikhonov gèrent cette sensibilité aberrante en imposant une finesse préalable à l'ajustement. L'approximation de Chebyshev traite cela en utilisant un inadéquat L ∞ appliqué sur le domaine continu , c'est-à-dire pas seulement aux points de données. Bien que les polynômes de Chebyshev soient orthogonaux (par rapport à un certain produit intérieur pondéré), je crois que s'ils étaient utilisés avec un L 2 inadapté aux données, ils seraient toujoursL2 L∞ L2 ont une sensibilité aux valeurs aberrantes.
la source
La première chose que vous voulez vérifier, c'est si l'auteur parle de polynômes bruts par rapport à des polynômes orthogonaux .
Pour les polynômes orthogonaux. le coefficient ne devient pas "plus grand".
Voici deux exemples d'expansion polynomiale d'ordre 2 et 15. D'abord, nous montrons le coefficient d'expansion du second ordre.
Ensuite, nous montrons le 15ème ordre.
Notez que nous utilisons des polynômes orthogonaux , donc le coefficient de l'ordre inférieur est exactement le même que les termes correspondants dans les résultats de l'ordre supérieur. Par exemple, l'ordonnée à l'origine et le coefficient pour le premier ordre sont 20,09 et -29,11 pour les deux modèles.
la source
summary(lm(mpg~poly(wt,2),mtcars)); summary(lm(mpg~poly(wt,5),mtcars)); summary(lm(mpg~ wt + I(wt^2),mtcars)); summary(lm(mpg~ wt + I(wt^2) + I(wt^3) + I(wt^4) + I(wt^5),mtcars))
poly(x,2,raw=T)
summary(lm(mpg~poly(wt,15, raw=T),mtcars))
. Effet massif dans les coefficients!Abhishek, vous avez raison, l'amélioration de la précision des coefficients améliorera la précision.
Je pense que le problème de l'ampleur n'est pas pertinent pour le point de vue de Bishop - que l'utilisation d'un modèle compliqué sur des données limitées conduit à un `` sur-ajustement ''. Dans son exemple, 10 points de données sont utilisés pour estimer un polynôme à 9 dimensions (c'est-à-dire 10 variables et 10 inconnues).
Si nous ajustons une onde sinusoïdale (pas de bruit), alors l'ajustement fonctionne parfaitement, car les ondes sinusoïdales [sur un intervalle fixe] peuvent être approximées avec une précision arbitraire en utilisant des polynômes. Cependant, dans l'exemple de Bishop, nous avons une certaine quantité de «bruit» que nous ne devrions pas adapter. Pour ce faire, nous maintenons le nombre de points de données par rapport au nombre de variables de modèle (coefficients polynomiaux) ou en utilisant la régularisation.
La régularisation impose des contraintes «douces» au modèle (par exemple, dans la régression de crête), la fonction de coût que vous essayez de minimiser est une combinaison d '«erreur d'ajustement» et de complexité du modèle: par exemple, dans la régression de crête, la complexité est mesurée par la somme des coefficients carrés. cela entraîne un coût sur la réduction de l'erreur - l'augmentation des coefficients ne sera autorisée que si elle a une réduction suffisamment grande de l'erreur d'ajustement [la taille de cette erreur est suffisamment grande est spécifiée par un multiplicateur sur le terme de complexité du modèle]. Par conséquent, l'espoir est qu'en choisissant le multiplicateur approprié, nous ne nous adapterons pas à un petit terme de bruit supplémentaire, car l'amélioration de l'ajustement ne justifie pas l'augmentation des coefficients.
Vous avez demandé pourquoi des coefficients élevés améliorent la qualité de l'ajustement. Essentiellement, la raison en est que la fonction estimée (sin + bruit) n'est pas un polynôme, et les grands changements de courbure nécessaires pour approximer l'effet de bruit avec des polynômes nécessitent de grands coefficients.
Notez que l'utilisation de polynômes orthogonaux n'a aucun effet (j'ai ajouté un décalage de 0,1 juste pour que les polynômes orthogonaux et bruts ne soient pas superposés)
la source