2016-11-20 1 views
0

je le code suivant que je réussi à rassembler:Comment puis-je calculer l'erreur quadratique moyenne

private void CalcMSE(List<Point> data) 
{ 
    double sum = 0.0; 

     foreach (Point item in data) 
     { 
      double difference = item.m_x - item.m_y; 
      sum = sum + difference * difference; 
     } 
    double mse = sum/x; //<-- Don't know what x should be! 
    Console.WriteLine("The mean square error is {0}",mse) ; 
} 

les entrées sont:

point.m_x = 3; 
point.m_y = 1; 
pointList.Add(point); 

point.m_x = 4; 
point.m_y = 4; 
pointList.Add(point); 

point.m_x = 5; 
point.m_y = 6; 
pointList.Add(point); 

point.m_x = 6; 
point.m_y = 6; 
pointList.Add(point); 

point.m_x = 8; 
point.m_y = 10; 
pointList.Add(point); 

Selon ceux qui savent le MSE devrait être 0,77 et MSR 40,89

Mais je n'ai aucune idée de ce que la "formule" pour x est (voir le commentaire de code).

Quelqu'un peut-il m'aider à connaître la régression linéaire?

voici ce que les ouputs devraient être

desired ouput

+0

Qu'en est 'd.Count()'? – Kinetic

+1

data.Count() ou Length ... ou prend une variable de comptage incrémente d'une boucle for in. x sera égal à compter. –

+0

Êtes-vous sûr ...? Cela donne une valeur de 8 pour d.Count() – Eminem

Répondre

0

Tout d'abord, je pense que vous devriez toujours créer un nouveau point avant d'ajouter à la liste point = new Point(x,y), je ne pense pas que list.add crée une copie .

que pour x, je pense que data.Count() fera