Régression linéaire (pour un informaticien)

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
kakaluto
Messages: 6
Enregistré le: 14 Mai 2010, 09:27

Régression linéaire (pour un informaticien)

par kakaluto » 14 Mai 2010, 09:33

Bonjour à tous
je suis informaticien, et j'ai besoin de l'aide de Matheux :D

en fait, j'ai des informations dans une base de données que je dois récupérer, et ensuite traiter.

Ces informations sont les suivantes :
- le temps (que je mettrai en abscisse)
- et la valeur du CPU utilisé en % (que je mettrai en ordonné)

donc, j'ai un espèce de nuage de points, et j'aimerais savoir
comment tracer cette droite de régression linéaire.

(le temps n'est pas forcément uniforme : ce n'est pas toutes les 2min par exemple)
j'ai trouvé certains articles, notamment celui de wikipedia
http://fr.wikipedia.org/wiki/R%C3%A9gression_lin%C3%A9aire
mais je vous avoue que c'est trop technique pour moi ...
donc si vous pourriez m'expliquer cela, je vous en serai reconnaissant

merci bien :)



Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 14 Mai 2010, 10:40

salut,

tu cherches a tracer la droite dequation y =ax+b
il s'agit de trouver a et b

On se donne un ptit jeu de données style
x = [2 3 5 6]
y = [1 2 3 4]
(on a les points (2,1),(3,2),(5,3),(6,4))
On note N la taille de l'echantillon, ici donc 4 (longueur du 'vecteur' x)
Calculer a :

On cherche donc Sxy et Sx^2
Calcul de

On cherche donc
Calcul de

Calcul de

Calcul de


On remonte a
Calcul de


Voila, t'as déterminé a.

Calcul de b :

Tu connais aussi donc c'est bon.

Te reste plus qu'as tracer.
Aux erreurs de calculs...
la vie est une fête :)

kakaluto
Messages: 6
Enregistré le: 14 Mai 2010, 09:27

par kakaluto » 17 Mai 2010, 09:43

bonjour
et merci beaucoup pour cette réponse bien détaillée
je comprends beaucoup mieux le principe maintenant

juste pour être sur, quelques confirmations :

donc a = 1.75/2.5 ??

par contre, pour le calcul de b,
je ne vois pas comment faire ...
je prends un point (x;y) quelconque pour le déterminer ... ? :hein:

Benjamin
Membre Complexe
Messages: 2337
Enregistré le: 14 Avr 2008, 10:00

par Benjamin » 17 Mai 2010, 10:25

Bonjour,

Si le langage de code que tu utilises supporte le calcul matriciel (avec éventuellement les bibliothèques qui vont bien), il y a une méthode très simple pour faire une régression polynomiale d'ordre p sur une série de données de taille n.

Soit et . On calcule . Le t indique la transposée, et le -1 qu'on inverse la matrice. La matrice A est un vecteur colonne du type . Alors, ta fonction de régression est .



Dans le cas d'une régression linéaire, p=1. Je reprends l'exemple de fatal_error. Si je le fais à la mano (à ne pas faire bien sûr, c'est pour le principe),
et .

Alors, donc .

De plus, .

Finalement, .

On peut alors dire que ta droite de régression a pour équation .


Si tu peux réussir à coder ça en dur, tu es tranquille après. Si tu vois que la droite, ce n'est pas le mieux et que tu as besoin d'une parabole par exemple, il suffit de faire p=2.

kakaluto
Messages: 6
Enregistré le: 14 Mai 2010, 09:27

par kakaluto » 18 Mai 2010, 03:26

bonjour, merci pour cette nouvelle méthode
il existe des bibliothèques permettant le calcul matriciel
mais pour le moment, j'ai besoin de quelque chose de simple
que je puisse mettre en place assez rapidement
Donc, je retiens cette nouvelle solution : peut-être pour un avenir proche :)
merci encore :)


par contre, saurais-tu me répondre pour le calcul de b
en utilisant la méthode de fatal_error stp ?

par contre, pour le calcul de b,
je ne vois pas comment faire ...
je prends un point (x;y) quelconque pour le déterminer ... ?

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 18 Mai 2010, 06:45

salut,
je prends un point (x;y) quelconque pour le déterminer ... ?

ben non tu prends pas deux points x et y, c'est la moyenne des valeurs que prends ta composante x.

t'as
Or tu as déjà calculé
, a et , ya qu'a remplacer.

Dans lexemple du dessus :
la vie est une fête :)

kakaluto
Messages: 6
Enregistré le: 14 Mai 2010, 09:27

par kakaluto » 18 Mai 2010, 09:45

certes ... j'avais la tête ailleurs !! :mur:

merci INFINIMENT pour cette aide bien détaillée avec l'exemple :++: :++:

kakaluto
Messages: 6
Enregistré le: 14 Mai 2010, 09:27

par kakaluto » 18 Mai 2010, 09:58

une toute petite question pour être sur de ne pas faire de bêtises

a est donc égal à = 1.75/2.5 ?

Benjamin
Membre Complexe
Messages: 2337
Enregistré le: 14 Avr 2008, 10:00

par Benjamin » 18 Mai 2010, 10:22

kakaluto a écrit:une toute petite question pour être sur de ne pas faire de bêtises

a est donc égal à = 1.75/2.5 ?

Oui, tout à fait, ce qui vaut 0.7 soit encore 7/10 comme je l'ai écrit dans mon premier post ;)

kakaluto
Messages: 6
Enregistré le: 14 Mai 2010, 09:27

par kakaluto » 18 Mai 2010, 13:21

parfait !!

merci encore les Matheux :) :) :)

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 88 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite